Forum: Mikrocontroller und Digitale Elektronik XY-Schreiber mit Schrittmotoren, möglichst multikompatibel


von Theo (Gast)


Lesenswert?

Hallo,

möchte demnächst einen XY-Schreiber in Angriff nehmen und bin noch nicht 
so ganz sicher, was von der Elektronik- und Steuerungsseite her der 
beste Weg ist. Das Gerät soll mit Schrittmotoren betrieben werden und 
die sollen vom PC gesteuert werden.

In der Hauptsache möchte ich damit am Computer entworfenen 
"Schnittmuster" auf Sperrholzbretter übertragen (zum Aussägen).

Ausserdem hab ich mir überlegt wäre es ganz gut, wenn man damit Platinen 
bohren könnte. Mit einer Kleinbohrmaschine sozusagen als aufbaubare 
Z-Achse.

Die mechanische Seite ist nicht so das Problem, hab sowas schon mal 
gebaut.

Die Frage ist eher, welche Software es gibt, um
a) Zeichnungen aufs Holz zu bringen
b) Platinen zu bohren

und natürlich, welche Steuerungselektronik von dieser Software 
angesteuert werden kann. Es macht ja keinen Sinn, die Stepper über 
Treibertransistoren direkt über den Parallelport zu steuern und keine 
Software kann damit was anfangen.

Leider bin ich in beiden Punkten a) und b) bisher recht unbedarft, habe 
bis jetzt immer Holz zum Sägen mit der Hand angerissen und Platinen 
ebenfalls von Hand gebohrt.

Also vielleicht mal vorne anfangen:

Womit würdet Ihr einen Entwurf (z.B. Wände für ne kleinere LS-Box o.ä.) 
mit o.g. Aufbau aufs Holz bringen, schätze mal mit Autocad, gibts auch 
noch was anderes?

Und mit welcher Software werden üblicherweise Platinen gebohrt?

von micha (Gast)


Lesenswert?


von oha (Gast)


Lesenswert?

Das Bisschen Software sollte kein Problem sein. Ein paar Schrittchen 
zaehlen... Print bohren mit NCDrill-files.

von ARM-Fan (Gast)


Lesenswert?

Der Quasi-Standard bei Echtzeit-Schrittmotorsteuerungen am 
PC-Parallelport ist das Step/Direction-Interface. Wenn du deine Hardware 
so aufbaust, solltest du genug Software finden zum 
Fräsen/Bohren/Plotten.

von Theo (Gast)


Lesenswert?

Hallo, das klingt ja schon mal gut!

Wo findet man denn einen (möglichst bewährten) Schaltplan für das 
Step/Direction-Interface?
Da kämen doch bestimmt mehrere Treiber-ICs in Frage...

von Theo (Gast)


Lesenswert?

Ich habe hier von einem älteren Projekt noch zwei unipolare 
Schrittmotoren samt Treiberschaltung (mit bipolaren Transistoren), die 
auf TTL-Pegel ansprechen.

Die könnte man ja eigentlich noch verwenden. Dann würde nur noch ein 
Schrittmotorcontroller fehlen. Vielleicht den L297!? Oder ich beauftrage 
einen µC mit dieser Aufgabe (was mir fast lieber wäre).

Dann stellt sich nur noch die Frage, wie die Daten bei so einem 
Step-Direction-Interface vom Parallelport übertragen werden. Kann jemand 
ein paar Worte dazu schreiben?
Schätze mal, es gibt für jeden Motor jeweils eine Leitung "Puls" und 
"Direction" und dann noch eine zum Stift oder Bohrer absetzen. Das wären 
dann fünf Leitungen (wenn noch eine Z-Achse dazukäme, wären wir bei 7 
Leitungen). Ist das so?

(bei µC-Benutzung könnte man ja praktischerweise die Daten auch seriell 
von der Software übermitteln lassen fällt mir grade ein, das wäre 
weniger Kabelaufwand)

von E. B. (roquema) Benutzerseite


Lesenswert?

Theo wrote:
> Ich habe hier von einem älteren Projekt noch zwei unipolare
> Schrittmotoren samt Treiberschaltung (mit bipolaren Transistoren), die
> auf TTL-Pegel ansprechen.
Wunderbar, kannst Du verwenden.
> Die könnte man ja eigentlich noch verwenden. Dann würde nur noch ein
> Schrittmotorcontroller fehlen. Vielleicht den L297!? Oder ich beauftrage
> einen µC mit dieser Aufgabe (was mir fast lieber wäre).
L297 ist für bipolaren Schrittmotor...
Schrittmotortreiber und Mikrocontroller schließen sich nicht aus, es ist 
meist angenehmer die Motorsteuerung dem Spezial-IC zu überlassen, so 
kann der Controller sich um den Rest kümmern...
> Dann stellt sich nur noch die Frage, wie die Daten bei so einem
> Step-Direction-Interface vom Parallelport übertragen werden. Kann jemand
> ein paar Worte dazu schreiben?
Schau Dir die entsp. Programme und deren Hilfe an, dann klären sich 
Deine Fragen. Evtl. Parallelportsteckerbelegung ansehen.

> Schätze mal, es gibt für jeden Motor jeweils eine Leitung "Puls" und
> "Direction" und dann noch eine zum Stift oder Bohrer absetzen. Das wären
> dann fünf Leitungen (wenn noch eine Z-Achse dazukäme, wären wir bei 7
> Leitungen). Ist das so?
Richtig, meinst für 3 (oder 4) Achsen. Zusätzlich evtl. Kühlwasserpumpe 
einschalten, usw.
Allerdings, diese direktsteuernden Programme laufen meist nicht (oder 
schlecht) mit aktuellen Betriebssystemen, da die Leitungen der 
Parallelschnittstelle direkt zeitgenau geschaltet werden müssen.
> (bei µC-Benutzung könnte man ja praktischerweise die Daten auch seriell
> von der Software übermitteln lassen fällt mir grade ein, das wäre
> weniger Kabelaufwand)
Richtig, je nachdem wie gut Du Dich mit Mikrocontrollerprogrammierung 
auskennst ist das der bessere Weg.
Platinenbohren ist relativ einfach, da ja nur x-y-Koordinaten angefahren 
werden müssen, der Weg dorthin interressiert nicht.
Also kann der MC die entsprechenden x- und y-Schritte unabhängig 
voneinander an die Motoren ausgeben, er muss keine Weg- 
,Kreisberechnungen durchführen...
Die meisten Platinenlayoutprogramme können Bohrdateien ausgeben. 
(Excelleron)
Das sind dann einfach die Koordinaten der Bohrungen.
Ich hab mal einen Bohrplotter aus alten Druckermechaniken gebaut.
http://freenet-homepage.de/ematronik/Bohrplotter/Bohrplotter.html
Ein PC-Programm berechnet die Schritte, ein einfaches serielles 
Protokoll überträgt diese an einen Mikrocontroller. Dieser fährt die 
Motoren an die passende Position und bohrt das Loch...

Anders sieht die Sache aus mit Deinen Schnittmustern aus. Hierfür würd 
ich mir einen alten Zeichnungsplotter besorgen (ebay). Der versteht 
HPGL-Befehle...

von Theo (Gast)


Lesenswert?

Hallo Ema,

Danke für die ausführliche Antwort!

Ich glaube, ich lass das mit dem Spezial-IC und nehme als 
Steppersteuerung einen µC.

Hm, ich habe jetzt für die Schnittmustergeschichte noch kein Programm 
vor Augen, das hier Verwendung finden soll. Gibt es irgendwelche 
"2-D-Cad"-Freeware-Programme?

Meine auf jeden Fall, irgendwo gelesen zu haben, dass viele Programme 
die HPGL-Befehle schon direkt in Steuercodes umsetzen können, bzw. dass 
es auch Programme gibt, die die HPGL-Dateien in Steuercodes umsetzen, so 
dass man wirklich nur noch ein einfaches Interface wie oben beschrieben 
benötigt.

Übrigens an dieser Stelle ein grosses Kompliment für den Bohrplotter!!! 
Überhaupt die Idee mit den beiden Druckern finde ich schon grossartig!

Auf meinem "Basterrechner" habe ich eben wegen dieser 
Parallelportprobleme bei höheren Betriebssystemen win98 und 2000 
installiert und hatte unter beiden bisher keine Probleme bei 
Parallelportsteuerungen. Wobei manche ja sagen, ab 2000 gehen die 
Probleme mit dem LPT los.

Also was mir auf jeden Fall fürs erste vorschwebt, ist ein XY-Plotter, 
der einen Stift oder einen Bohrer senken kann und die übermittelten 
Koordinaten anfährt. Ausserdem soll der Controller die Anschläge 
überwachen.
Alles andere soll von PC-Seite erledigt werden.

von Sven P. (Gast)


Lesenswert?

Also unipolare Motoren kann man auch mit bipolarer Treiberbrücke 
anfahren.

Für Echtzeit würde ich entweder DOS (falls sich noch eines findet), 
FreeDOS oder gleich ein Echtzeit-Linux benutzen. Da dann ein Kernelmodul 
zu schreiben und gut.

Echtzeit unter Windows und normalem Linux ist nicht mehr möglich. Ich 
habe gerade einen Stepper am Parallelport, da kann man schön hören, wenn 
man im Firefox scrollt :-)

von Theo (Gast)


Lesenswert?

Ja, ich weiß, meine unipolaren Stepper waren vorher bipolare 
Ausführungen.
;)

Also einer seriellen Datenübertragung wäre ich auch nicht abgeneigt, 
sollte ja mit MAX232 auch weiter kein Problem sein, blöd ist nur, das 
bei dem Rechner COM1 und 2 mehr oder minder schon belegt sind, es gibt 
bestimmt eine USB-Lösung.

Jetzt gehts vielleicht erst mal darum, welche Programme für die 
Schnittmustererstellung in Frage kommen und wie man die Daten aufs 
Parkett bekommt!

von Karl H. (kbuchegg)


Lesenswert?

Ich würde auch sagen:
Wenn dein Gerät HPGL versteht (ein Subset davon reicht normalerweise), 
dann bist du auf jeden Fall auf der sicheren Seite. Ein Freeware CAD 
findet sich dann schon, welches HPGL erzeugen kann.

Aber hüte dich vor dem Windows-HPGL Treiber (wird der eigentlich noch 
mit ausgeliefert), der ist sowas von Schrott!

Für dein Seriell-Problem gibt es auch eine einfache Lösung: per FT232 
eine USB Verbindung einrichten. Auf PC Seite taucht dann ein weiterer 
COM Port auf, auf µC Seite sprichst du das Teil ganz normal über die 
UART an (also wie eine normale serielle Verbindung). Der USB Teil ist 
für beide Computer also völlig transparent und tritt nicht in 
Erscheinung.

von Theo (Gast)


Lesenswert?

Das mit dem FT232 klingt gut!

Ansonsten: wie ich das einschätze, wird mein Gerät so schnell kein HPGL 
verstehen.
Aus Erfahrung weiß ich, dass ein simpler Linien-Algorithmus, der 100%ig 
funktioniert, schon eine echte Herausforderung für Selbstprogrammierer 
sein kann. Von Ellipsen und Kreissegmenten will ich da gar nicht 
reden...

Fazit: es muss auf jeden Fall auf der PC-Seite ein HPGL-Interpreter her, 
der die HPGL-Befehle in die jeweiligen Schrittmotorsteuerimpulse 
umwandelt!
Alternativ käme vielleicht intermediär noch ein µC in Frage, der das 
übernimmt...

von Karl H. (kbuchegg)


Lesenswert?

Theo wrote:

> Aus Erfahrung weiß ich, dass ein simpler Linien-Algorithmus, der 100%ig
> funktioniert, schon eine echte Herausforderung für Selbstprogrammierer
> sein kann.

Aber geh, im Web finden sich tausende Implementierungen des 
Bresenham-Algos

> Von Ellipsen und Kreissegmenten will ich da gar nicht
> reden...

Bei vielen CAD kann man einstellen, dass sie Kreise, Ellipsen und 
entsprechende Bögen selbst in kurze Geradenstücke auflösen.

> Alternativ käme vielleicht intermediär noch ein µC in Frage, der das
> übernimmt...

Ooops. Ich bin eigentlich immer davon ausgegangen, dass du einen µC 
benutzt um die Mechanik anzusteuern. Sprich: dein Schneidplotter 
präsentiert sich für den PC wie ein ganz normaler Plotter.
Wenn du sowas natürlich nicht willst, dann schauts allerdings wirklich 
schlecht aus mit einem Freeware CAD. Und auf Dauer wird dich der Umweg 
über so einen Konvert nerven (mich würde es).

von Theo (Gast)


Lesenswert?

Hallo Karl Heinz,

Danke für die Infos!

>Bei vielen CAD kann man einstellen, dass sie Kreise, Ellipsen und
>entsprechende Bögen selbst in kurze Geradenstücke auflösen.
Das wär ja nicht schlecht!

>Ooops. Ich bin eigentlich immer davon ausgegangen, dass du einen µC
>benutzt um die Mechanik anzusteuern. Sprich: dein Schneidplotter
>präsentiert sich für den PC wie ein ganz normaler Plotter.
>Wenn du sowas natürlich nicht willst, dann schauts allerdings wirklich
>schlecht aus mit einem Freeware CAD. Und auf Dauer wird dich der Umweg
>über so einen Konvert nerven (mich würde es).
Ja, µC will ich auch benutzen, aber eigentlich nur für den seriellen 
Empfang, die (End-)Steuerung der Stepper (GO und DIRECTION in die 
eigentlichen Steuerbitmuster umwandeln) und die Überwachung der 
Anschläge nebst Stift- bzw. Bohrersteuerung.
So, wie ich Dich verstehe, gibt es solche Konvert-Programme, die 
HPGL-Dateien in reine Steuerbefehle konvertieren?!

Nicht, dass es zu Missverständnissen kommt, ich meine folgendes:

PC:
HPGL-Datei wird konvertiert, der PC gibt seriell an den Controller aus, 
welcher Schrittmotor sich wie oft drehen soll und in welche Richtung und 
ob der Stift gesenkt oder gehoben wird

µC: erhält seriell die Befehle, z.B. Motor A eins vor, und sorgt dann 
seinerseits dafür, dass das über die entsprechende Bitmusterverschiebung 
geschieht.

Wenn Du sagst, dass man mit reinen Linienbefehlen auskommt, gibt es 
sicher eine Möglichkeit, das noch ins Controllerprogramm einzubinden, 
wenn dadurch der Plotter direkt vom CAD-Programm angesteuert werden 
kann.

Ich überlege grade, was jetzt die beste weitere Vorgehensweise wäre...
Gibt es ein Freeware-CAD-Programm, das hier besonders empfehlenswert 
ist?
Dann könnte ich ja das Ganze erst mal von der Softwareseite her angehen.

von Karl H. (kbuchegg)


Lesenswert?

Theo wrote:

> So, wie ich Dich verstehe, gibt es solche Konvert-Programme, die
> HPGL-Dateien in reine Steuerbefehle konvertieren?!

Keine Ahnung.
Ich hab die Information über so einen Konverter aus einem deiner 
Postings rausgezogen. Ob es sowas gibt, weiß ich nicht.

> Nicht, dass es zu Missverständnissen kommt, ich meine folgendes:

Yep. So hab ich das dann auch nach deinem letzten Posting verstanden. 
Und hab mich mit einem Ooops aus der Affäre gezogen :-)

> Gibt es ein Freeware-CAD-Programm, das hier besonders
> empfehlenswert ist?

Das ist schwer, weil ein CAD auch immer subjektiv bewertet wird.
Aber ich hab diese Seite gefunden:
http://www.freebyte.com/cad/cad.htm
Kannst ja mal schauen, ob da was für dich dabei ist.

von theo (Gast)


Lesenswert?

Hey, großartig, Danke für den Link!
Dann werd ich mal ein paar CAD-Programme anschauen.

Den Bresenham-Algo hab ich eben ge-wikipediat, ist ja eigentlich halb so 
wild mit der Vorlage.

Mir ist wieder eingefallen, dass ich so einen Konverter mal in einem 
(ich glaube) niederländischen diy-Plotterforum gesehen habe, habe es 
leider eben beim Googeln nicht wiedergefunden.

Ok, dann werd ich die Tage mal schauen und wenn Fragen zur Möglichen 
Umsetzung der Steuerung auftauchen noch mal posten.

An dieser Stelle Danke an alle, die geschrieben haben!!!

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.