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