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?
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.
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...
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)
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...
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.
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 :-)
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!
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.
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...
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).
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.
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.
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!!!