Hallo, ich benutze seit Jahren einen ziemlich großen, selbstgebauten Plotter zum Anzeichnen von Sägelinien auf Holz. Kurz zur aktuellen Vorgehensweise: Die Zeichnungen werden mit einem Uralt-2D-CAD-Programm erstellt, die Dateien werden im HPGL-Format ausgegeben. Danach wird ein selbstgeschriebenes Qickbasic-Programm gestartet, welches das HPLG-File öffnet und den Stift und die Schrittmotoren des Plotters über den Parallelport des Rechners steuert. Das alles unter Win98. Frage: könnte man das nicht auch unter einer höheren Windows-Version erledigen, wenn man die Hardware entsprechend anpasst? (z.B. Win7) Es gibt ja mittlerweile allerlei Selbstbau-Laserplotter, Fräsplotter usw., die anscheinend auch unter höheren Betriebssystemen laufen. Ich stelle mir das letztlich so vor: (alles unter Win7) Ein CAD-Programm steuert über USB-to-Serial-Modul einen Mikrocontroller an, der wiederum die einzelnen Schrittmotorspulen und den Stift ansteuert. Ist das so praktikabel?
"Die Hardware anpassen" kann vieles bedeuten. Vermutlich am besten fährst Du, wenn Du Dein Quickbasic-Programm auf einem Microcontroller laufen lässt. Das liest dann natürlich keine Datei ein, sondern bekommt den Inhalt der Datei zeilenweise über eine serielle Schnittstelle gesendet und muss sich nur um das Auswerten dieser jeweiligen Zeile kümmern. Der Microcontroller kann problemlos Deine bisherige Hardwareansteuerung übernehmen - Deine Parallelportbastelei lässt sich fast 1:1 übernehmen. Und wenn Dir das Microcontrollerprogrammieren nicht sonderlich vertraut ist, bietet die Arduino-Plattform einen recht einfachen Zugang dazu - zwar mit einer strukturell anderen Programmiersprache (der arduino-eigene C++-Dialekt), aber so kompliziert ist das nicht. Der Vorzug solch einer Lösung ist der, daß Du dann völlig unabhängig von den Fähigkeiten Deiner jeweiligen Windows-Version bis, irgendwelche Hardware anzusteuern und vor allem die zeitkritischen Dinge wie die Schrittmotorsteuerung in einer abgeschotteten und ungestörten Umgebung laufen. Zwar wird es auch möglich sein, Deine bisherige Lösung weiterzuverwenden (Dein Quickbasic-Programm läuft dann unter DosBOX, dem mit einem zusätzlichen Treiber der Zugriff auf den Parallelport gestattet wird), aber das ist Gefrickel und nicht zukunftssicher, denn wie lange wird Dein PC noch über einen echten Parallelport verfügen? Wie man die nötige Verrenkungen mit DosBOX anstellt, habe ich hier mal für ein Parallelport-EPROM-Programmiergerät beschrieben: Beitrag "[Anleitung] DOS-Parallelport-EPROMer unter Windows 8.1 (x64)" Auch wenn das höchstwahrscheinlich funktioniert, ist die Microcontrollervariante deutlich eleganter -- damit nämlich gewinnst Du einen echten HPGL-Plotter, der ohne Zusatzsoftware direkt angesprochen werden kann.
DAC schrieb: > Ist das so praktikabel? Schon, aber eigentlich braucht man dafür kein Betriebssystem, hat ein Drucker oder Plotter ja auch nicht - abgesehen davon, dass die Daten über eine Schnittstelle reinkommen, braucht man nur einen Interpreter für HPGL. Das ist überschaubar. Aber schaden wird ein BS auch nicht, sogar Windows ist heute ja halbwegs stabil. Vorteil wäre z.B. ein Netzwerkanschluss. Und natürlich die Cloud und das Internet der Dinge... Georg
>Ein CAD-Programm steuert über USB-to-Serial-Modul einen Mikrocontroller >an, der wiederum die einzelnen Schrittmotorspulen und den Stift >ansteuert. Läuft der Plotter mit Schrittmotoren? Dann könntest Du am einfachsten GRBL verwenden: https://github.com/grbl/grbl Die günstigste Hardware wäre wahrscheinlich ein Komplettbausatz Ramps: http://www.ebay.de/itm/like/221278584569?ul_noapp=true&chn=ps&lpid=106
Der Code zur Steuerung ist ja im Grunde genommen schon komplett fertig vorhangen - halt als QBasic-Anwendung. Das muss nur auf den µC portiert werden. Ob Bascom dafür geeignet ist, wage ich aufgrund der starken syntaktischen Einschränkungen dessen Basic-Dialekts zu bezweifeln, aber eine Portierung in den Arduino-Slang sollte auch nicht zu schwer sein. Nichts gegen GRBL, aber das ist ein G-Code-Interpreter, kein HPGL-Interpreter. Und für die Hardware sollte eine Arduino-Platine o.ä. ausreichen, die nicht mehr tun muss, als das Bitgewackel am PC-Parallelport nachzubilden, das das QBasic-Programm veranstaltete. Die Treiber für die Schrittmotoren sind ja da, und wenn ein 5V-Arduino verwendet wird, sind auch keine weiteren Pegelwandler oder Treiber nötig.
Hmm, ich würde erstmal einfache Methoden probieren: http://www.ebay.de/itm/like/320427071222?ul_noapp=true&chn=ps&lpid=106 Das Quick-Basic-Programm wird auch noch unter Win7 funktionieren - falls nicht würde ich Win98 in einer virtuellen Maschine laufen lassen ... Ich betreibe (ab und an) meinen Roland-Plotter mit solch einem Adapter-Kabel (wer hat heute schon noch einen Parallel-Port am Computer ...)
Meiner Meinung nach ist es am einfachsten, die Hard- und Software zu verwenden, die es heute am meisten gibt. Das sind die Ansteuerungen für die 3D-Drucker und CNC Maschinen. Dazu gibt es Haufenweise Ansteuersoftware und billige Hardware. Die Maschinen verwenden den Steuercode "GCODE" und dieser wird von GRBL interpretiert. https://github.com/grbl/grbl Man kann GRBL auf einen Arduino Nano flashen und damit einen Plotter oder was auch immer steuern. Wahrscheinlich kann man GRBL auch sehr leicht so anpassen, dass man einen alten LPT-Port damit ansteuert. Wenn das CAD Programm HPGl auswirft, kann man das auch in GCODE konvertieren: http://www.jacob-roboter.de/software/hpgl-to-g-code/ Alles in allem schätze ich die Bauteilkosten auf kleiner 10 Euro.
Dieter F. schrieb: > Hmm, ich würde erstmal einfache Methoden probieren: Das ist ein Druckerkabel. Das unterstützt kein Bitbanging am Parallelport, sondern das ist ausschließlich dazu da, Daten an Drucker (oder druckerartige Geräte) zu übertragen, die das Centronics-Protokoll verwenden, wie Dein Roland-Plotter auch. Der Threadstarter aber nutzt den Parallelport für's Bitbanging, d.h. er steuert damit direkt Schrittmotortreiber an, was u.a. ein ziemlich schnelles Timing erfodert. Mit so einem USB-Druckerkabel aber kann man maximal mit 500 Hz Takt an einigen wenigen ausgesuchten Pins wackeln.
Rufus Τ. F. schrieb: > Schrittmotortreiber an, was u.a. ein ziemlich > schnelles Timing erfodert. Spannend, was Du so alles daraus erkennst. Schrittmotortreiber habe ich bisher nicht als zeitkritisch erlebt - aber ich bin auch Laie.
Rufus Τ. F. schrieb: > Mit so einem USB-Druckerkabel aber kann man > maximal mit 500 Hz Takt an einigen wenigen ausgesuchten Pins wackeln Wie passt das denn mit der Centronics-Spezifikation zusammen? O.K., hier wohl auf 8 Bit gerechnet The minimum setup, hold and pulse width times required by SPP data transfers greatly limits performance. Taking into account software latency times, the maximum possible transfer rates are 150 kbytes/s. Typical transfer rates are around 10 kbytes/s
Hallo, ich danke euch herzlich für die vielen Antworten und die guten Erklärungen und Vorschläge! chris_ schrieb: > Meiner Meinung nach ist es am einfachsten, die Hard- und Software zu > verwenden, die es heute am meisten gibt. Das sind die Ansteuerungen für > die 3D-Drucker und CNC Maschinen. Dazu gibt es Haufenweise > Ansteuersoftware und billige Hardware. Das klingt nach einem guten Ansatz! Vielleicht kann man mal ganz vorne bei der CAD-Software beginnen. Kann jemand eine aktuelle CAD-Software empfehlen, die möglichst die folgenden Anforderungen erfüllt? - leichte Bedienbarkeit als 2D-CAD - für Privatanwender günstig oder kostenfrei - Plotter direkt über einen Treiber und eine entsprechende Hardware aus dem CAD-Programm ansteuerbar Bei dem letzten Punkt sollte es so sein, dass man die passende Hardware zum Treiber gut selber bauen oder relativ günstig erwerben können soll. Bin in jedem Fall mit AVR-Controllern ganz gut bestückt und halbwegs firm mit dem AVR-Studio, falls das weiterhilft. Mittlerweile gibt es anscheinend auch eine Menge selbstgebaute Lasergravierer. Das Prinzip ist ja eigentlich das gleiche wie bei meiner Anwendung, nur mit einem Laser statt einem Stift. Vielleicht kann man aus der Ecke auch etwas abschauen!? Viele Grüße!
Magst du bitte mal ein Bild von dem Plotter einstellen, würde mich sehr interessieren!
>Kann jemand eine aktuelle CAD-Software empfehlen, die möglichst die >folgenden Anforderungen erfüllt? Es gibt FreeCad. Das kann 3D und alles mögliche. Aber einfach zu bedienen ist es nicht. Für einfache Zeichnungen kann man wohl auch Inkscape verwenden.
Könnte sich lohnen mal hier vorbeizuschauen: http://www.planet-cnc.com http://www.planet-cnc.com/index.php?page=shop Die bieten fix fertige (USB) Motor-Controller mit passender Software an, zu sehr humanen Preisen, wie ich finde. Die Software importiert jede Menge Vektorformate und läuft auf XP, Vista, Win7 und Win8... Zum Designen (und Exportieren als DXF) könnte z.B FreeCAD dienen. http://www.freecadweb.org
:
Bearbeitet durch User
Hallo zusammen Ich habe selbst so ein ähnliches Teil ich hab das mach "Dos" Zeit auf eine Schrittmotortreiberkarte aus dem Buchtladen umgerüstet, aber weiterhin über die Paralelschnittstelle. Nachdem der PC miit verschiedenen Freeware und Demo Softwarelösungen den Geist aufgegeben hat, habe ich jetzt "grbl" am Start. Auf einem auch schon Älteren PC mit Win7 habe ich das auch hier im Forum vorgestellte Projekt: SerialComCNC Serielles Frontend für CNC GRBL mit ATMega Beitrag "Projekt: SerialComCNC Serielles Frontend für CNC GRBL mit ATMega" installiert. Es kann HPGL direkt lesen (ich habs noch nicht probiert). Sonst ein tolles Tool. Danke an Albert M der das in seiner Freizeit Programmiert hat. Gruß fredfromflett
DAC schrieb: > - leichte Bedienbarkeit als 2D-CAD > > - für Privatanwender günstig oder kostenfrei LibreCAD ist 2D, OpenSource und mMn sehr leicht zu bedienen.
Mike M. schrieb: > Magst du bitte mal ein Bild von dem Plotter einstellen, würde mich sehr > interessieren! Wenn ich ihn das nächste mal aufbaue, stelle ich ein paar Fotos ein. Friedhelm E. schrieb: > Nachdem der PC miit verschiedenen Freeware und Demo Softwarelösungen > den Geist aufgegeben hat, habe ich jetzt "grbl" am Start. Auf einem auch > schon Älteren PC mit Win7 habe ich das auch hier im Forum vorgestellte > Projekt: SerialComCNC Serielles Frontend für CNC GRBL mit ATMega > Beitrag "Projekt: SerialComCNC Serielles Frontend für CNC GRBL mit > ATMega" > installiert. Es kann HPGL direkt lesen (ich habs noch nicht probiert). > Sonst ein tolles Tool. Danke an Albert M der das in seiner Freizeit > Programmiert hat. So ganz blicke ich da noch nicht durch. Mit dieser Lösung kann man bestehende HPGL-Dateien von Win7 aus über USB an den AVR (Arduino/Atmega328) schicken und der Controller steuert dann ganz alleine den Zeichen- oder Fräsvorgang!? GRBL ist in diesem Zusammenhang die Software, die die HPGL-Daten an den M328 schickt!?
Paule H. schrieb: > LibreCAD ist 2D, OpenSource und mMn sehr leicht zu bedienen. Danke für den Tipp, das Programm sieht von der Bedienung her gut aus. Aber ich glaube, man kann keine HPGL-Files exportieren. (wegen mir muss es nicht unbedingt HPGL sein, so lange die Datenausgabe mit dem Plotter nachher funktioniert - bin allerdings auch nicht auf dem neusten Stand, wie man sicher an meinen Fragen sehen kann ;))
So isses Die o.g Software schickt die Daten an den 328 (ich habe einen Arduino Pro-mini Clone aus der Bucht dran). der Arduino mit Grbl arbeitet das dann autark ab. Der Vorteil dieser Frontend´s ist das man das ganze auch von Hand steuern kann. Gruß fredfromflett PS Hpgl macht ein (Plotter)Druckertreiber
:
Bearbeitet durch User
Herzlichen Dank für die Infos! Ich rekapituliere: Das Programm für den Win-PC heißt SerialComCNC_0.1. Damit kann man die einzelnen Dateien wie HPGL etc. (oder von Hand eingegebene Daten) über USB direkt an den Arduino schicken, auf dem das Programm GRBL arbeitet. Das GRBL auf Arduino Pro-mini Clone wertet die Daten vom PC aus und steuert die Stepper vom Plotter/CNC-Fräser. So? Wenn ja, wie kommen die Daten für die Stepper aus dem Arduino raus? 4 Bit pro Stepper (also für jede Spule ein Bit) oder 2 Bit (ein Bit für Drehrichtung und ein Bit für Step)? Friedhelm E. schrieb: > PS Hpgl macht ein (Plotter)Druckertreiber Ich erzeuge das HPGL-File momentan mit einem älteren CAD-Programm. Besitzt SerialComCNC auch eine CAD-Funktion?
Hi 1. Die letze Version ist die V0.9 Das Programm ist nur für die "Plottersteuerung" für max 3 Achsen zuständig. es ist Kein CAD. 2. grbl steuert die Motoren über Step/Dir Signale. die müsssen über passende Motortreiberstufen an die Motoren geleitet werden. Einfach mal über grbl informieren Das Netz ist eine gute Quelle 3. Der Arduino PRo-Mini war bei mir gerad da, wenn mann einen beschaffen muss ist einer mit USB Schnittstelle angesagter. z.B Arduino UNO oder Nano gruß fredfromflett
Danke Friedhelm für den Überblick! Friedhelm E. schrieb: > 1. Die letze Version ist die V0.9 Habe grade versucht, SerialComCNC_0.9 ruterzuladen, um es mal näher anzuschauen. Anscheinend ist die Seite http://www.serialcominstruments.com/ down. Habe deshalb die Version hier runtergeladen: Beitrag "Re: Projekt: SerialComCNC Serielles Frontend für CNC GRBL mit ATMega" Setup_SerialComCNC_0.9f.zip (hoffe, die f-Version ist ok) Friedhelm E. schrieb: > 3. Der Arduino PRo-Mini war bei mir gerad da, wenn mann einen beschaffen > muss > ist einer mit USB Schnittstelle angesagter. z.B Arduino UNO oder Nano Hat der UNO oder NANO eine echte USB-Schnittstelle im Atmega?
Danke chris_! Habe jetzt einen Arduino Nano geordert. Nehme an, er wird genau so angeschlossen wie der Uno hier: https://github.com/grbl/grbl/wiki/Connecting-Grbl Mit "Spindle enable" kann wahrscheinlich der Stift direkt angesteuert werden. Die Aussicht, statt dem Plotterstift wahlweise einen dritten, kleinen Steppermotor anschließen zu können mit dem man einen Fräskopf bewegen kann, ist verlockend :O)
Hier hat Christoph Johnson eine schöne Zusammenfassung zu GBRL geschrieben: Beitrag "Re: GRBL auf STM32 ?"
Dankesehr, sehr informativ! SerialComCNC setzt also z.b. HPGL in G-Code um und der Arduino mit GRBL setzt den G-Code in die entsprechenden Hardwarebewegungen um?! Der G-Code kann dann wohl auch von anderen (PC)-Programmen stammen. Klingt nach einer sehr guten Sache! Mein Plotter benötigt dann aber in jedem Fall noch ein paar Leitungen mehr (z.B. die Anschläge/Null-Stellungs-Schalter für x und y)... Außerdem werden bei mir die Einzelspulen von der Software direkt angesteuert. Es muss also noch ein AVR dazwischen, der die Puls- und Richtungscodes für die Einzelspulen umrechnet (oder etwas ähnliches, eventuell ein fertiges IC). Die Leistungstreiber sitzen nähmlich direkt an den Steppern.
DAC schrieb: > Mein Plotter benötigt dann aber in jedem Fall noch ein paar Leitungen > mehr (z.B. die Anschläge/Null-Stellungs-Schalter für x und y)... > > Außerdem werden bei mir die Einzelspulen von der Software direkt > angesteuert. Es muss also noch ein AVR dazwischen, der die Puls- und > Richtungscodes für die Einzelspulen umrechnet (oder etwas ähnliches, > eventuell ein fertiges IC). > Die Leistungstreiber sitzen nähmlich direkt an den Steppern. Je nach "Bums", den die Schrittmotoren fordern, gibt es schon fertige Steuerelektroniken. Bei den 3D-Druckern wird gerne das RAMPS-Shield (Aufsatzboard für ein Arduino-Board) verwendet. Darauf steckt man dann noch die Treiberbausteine, die sich um die Ansteuerung der Spulen kümmern. Angesteuert wird der ganze Kram per USB und tut so, als wäre es eine serielle Schnittstelle. Schaltein- und -ausgänge besitzt das Ding auch. Das Problem hierbei dürfte die Firmware des Mikrocontrollers sein, da die gebräuchlichen für 3D-Drucker konzipiert sind (mit Heizungssteuerung etc.). Sowas sollte sich aber anpassen lassen. DAC schrieb: > Mit "Spindle enable" kann wahrscheinlich der Stift direkt angesteuert > werden. Eher nicht (hab jetzt nicht nachgeguckt), aber das wird vermutlich ein Schaltausgang sein, der es ermöglicht, einen Fräsmotor (auch Frässpindel genannt) zu Beginn der Arbeit einzuschalten und am Ende auszuschalten. Dein Stift macht Linien, wenn man ihn in der Z-Achse bewegt. HPGL ist eigentlich auch nur eine 2,5D-Sprache: Es gibt nur PENUP und PENDOWN (wieder nur eine Vermutung, da ich mich damit länger nicht mehr beschäftigt habe mangels Plotter). Fräsen sind da etwas variabler in der Z-Achse...
>Außerdem werden bei mir die Einzelspulen von der Software direkt >angesteuert. Es muss also noch ein AVR dazwischen, der die Puls- und >Richtungscodes für die Einzelspulen umrechnet (oder etwas ähnliches, >eventuell ein fertiges IC). Naja, oben hattest Du ja erwähnt, dass Du ausreichend Erfahrungen mit AVRs und C hast. In diesem Fall kannst Du ja in den Source Code reingreifen https://github.com/grbl/grbl/blob/master/grbl/stepper.c und die ISR(TIMER1_COMPA_vect) anpassen.
Es scheint gab schon andere, die das LPT-Problem hatten und es lösten: https://github.com/grbl/grbl/issues/645 Das Internet heutzutage ... nichts muss man mehr selber machen ;-)
Hi hier bin ich wieder Ich hätte es nicht besser erklären können Die Version 0.9f ist O.K. DAC schrieb: > ich benutze seit Jahren einen ziemlich großen, selbstgebauten Plotter > zum Anzeichnen von Sägelinien auf Holz. Hab mal ne Frage dazu wie groß ist denn ´ziemlich`groß. ist die Z-Achse auch mit einem Motor ausgerüstet oder ´nur` mit einem Magnet. gruß fredfromflett
Danke für die Antworten! Der Arduino Nano ist gestern eingetroffen. chris_ schrieb: > Es scheint gab schon andere, die das LPT-Problem hatten und es lösten: > > https://github.com/grbl/grbl/issues/645 Versuche grade, die Anschlussbelegung zu rekonstruieren. Wenn man dem Link folgt, landet man hier: https://github.com/1bigpig/grbl-MaxNC Das ist die Anschlussbelegung für die Motoren: //Z D2-D5 //X D6-D9 //Y D10-D13 Dann sind eigentlich nur noch zwei Sachen unklar. 1) An welchen Pins sind die Anschlagssensoren für x, y, z angeschlossen? 2) Wie steuert man statt einem Z-Motor den Plotterstift an? (der Stift wird über einen Transistor und einen einfachen Elektromagneten gesenkt) chris_ schrieb: > Das Internet heutzutage ... nichts muss man mehr selber machen ;-) Bin mal gespannt, was die Zukunft bringt. Ich wette, es wird sich so eine Art universelles Baukastenprinzip herausbilden.
Friedhelm E. schrieb: > Hab mal ne Frage dazu > wie groß ist denn ´ziemlich`groß. ca. 50cm x 70cm Vorschub beim Zeichnen ca. 100mm/s > ist die Z-Achse auch mit einem Motor ausgerüstet oder ´nur` mit einem > Magnet. Derzeit wird der Stift mit einem E-Magneten gesenkt. Man kann den Stift samt Halterung aber entfernen. Ein kleiner Fräsmotor (Z-Achse) ist geplant. Es soll nach Möglichkeit beides möglich sein, Zeichnen und (nach Auswechseln) Fräsen.
DAC schrieb: > 1) An welchen Pins sind die Anschlagssensoren für x, y, z angeschlossen? https://github.com/1bigpig/grbl-MaxNC
1 | My hack is more of a butchering job with an axe, as all the nice things that were |
2 | added in .9i (spindle control, homing and limit switches) had to be disabled as |
3 | ALL those pins are required for phase signals. |
4 | What IS left is all of PortC (Arduino analog pins) support. So coolant, E-stop, and |
5 | even probing should still work! --currently unverified-- |
Hm, so super ist das jetzt auch nicht, wenn die Anschlag-Schalter deaktiviert sind...
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.