Begonnen hat es damit, dass ich letztes Jahr auf der Mini Maker Faire in Triest einen Prototypen eines Mini CNC Lasercutters gesehen habe, dessen XY-Achse aus der Mechanik und den Schrittmotoren von alten CD-Laufwerken gebaut wurde.
Nun hatte ich vor 2 Wochen hier selbst einige nicht mehr benötigte DVD-Laufwerke herumliegen und habe an einem langen Abend mit der Mechanik dieser Laufwerke und Unmengen von Heißkleber einen ersten Versuch in diese Richtung gestartet.
Der erste Versuch
Da hat sich aber sehr schnell herausgestellt, dass der Ansatz mit der X-Achse, die im rechten Winkel dazu am äußeren Ende auf der Y-Achse montiert wird, erhebliche Probleme verursacht. Durch die ungleichmäßige Gewichtsverteilung kam der Antriebsmechanismus der Y-Achse mit der vom Schrittmotor angetriebenen Spindel sehr schnell „ins Schleudern“ und die Druckergebnisse waren unvorhersehbar und mangelhaft.
Version 2.0
Version 2 des Mini CNC Plotters folgte einige Tage später und diese möchte ich euch hier vorstellen. Zuerst aber ein kleines Video des Plotters im Einsatz:
Benötigtes Material:
- 2 alte CD/DVD-Laufwerke für die XY-Achsen. Diese Laufwerke lassen sich meisten relativ einfach zerlegen. Wir benötigen den Metallrahmen unterhalb des CD-Fachs inklusive des Schrittmotors, der die ca. 5 cm lange Spindel antreibt. Den Schlitten mit dem Schreib/Lesekopf am besten ganz lassen. Da kann man später mit Heißkleber das Druckbett oder die Stifthalterung draufkleben.
- Optional: ein drittes Laufwerk für die Hebe/Senk-Funktion des Stifthalters und Modellbau Servo. Näheres dazu im obigen Video.
- 1 x Arduino Uno oder besser. Insgesamt werden 9 Pins (davon 1 x PWM für den Servo) benötigt
- 2 x L293D H-Bridge als Treiber für die Schrittmotoren. Ein Adafruit Motor Shield v2 geht natürlich auch, allerdings funktioniert meine Version der Plotter-Firmware für den Arduino dann (noch) nicht.
- Stromversorgung für die Schrittmotoren, 4 x 1,5V AA Batterien oder ein Steckernetzteil, das auf ca. 6V einstellbar ist.
- Für den Aufbau des Rahmens reichen Holzleisten oder 2 Holzbrettchen, die im rechten Winkel aneinander geschraubt oder geleimt werden. Alternativ geht auch ein Metallrahmen oder ALU-Profile (z.B. Makerbeam). Die Metallteile aus den DVD-Laufwerken haben üblicherweise an den 4 Ecken Befestigungslöcher, mit denen man sie mit 5mm-Schrauben an den Holz- oder Metallträgern befestigen kann.
- und dazu Schrauben, Kabel, eventuell ein paar Kabelklemmen und andere Kleinteile
Update: Die STL-Files für die beiden Teile des Stifthalters gibt es jetzt hier zum Download: http://www.thingiverse.com/thing:1067140
Den grundsätzlichen Aufbau der Hardware zeige ich im folgenden Video:
Bevor man die Mechanik samt Schrittmotoren im eigenen Projekt verbauen kann, müssen zuerst die eigenen Anschlüsse dran. Dazu kann man entweder das Flachkabel, auf dem die 4 Leitungen meistens deutlich zu sehen sind, mit einer Schere oder einem Skalpell der Länge nach durchschneiden und die Enden in kleine Lüsterklemmen stecken oder man lötet die eigenen Kabel direkt auf die 4 Lötpunkte am Schrittmotor.
Die zusammengehörende Anschlüsse am Schrittmotor sind üblicherweise 1 & 2 sowie 3 & 4.
Dann baut man am besten zuerst nur die Y-Ebene, also die Grundplatte. Dazu reicht links und rechts eine stärke Holzleiste (an diesen muss später die Halterung für die X-Achse im rechten Winkel dazu befestigt werden) und quer dazu 2 dünne Leisten, auf die die Mechanik aus dem Laufwerk geschraubt wird. Hier muss man nur aufpassen, dass der Lesekopf-Schlitten frei beweglich bleibt und nirgend streift.
Dann kann der Anschluss des Schrittmotors an die erste L293D H-Brücke erfolgen. Für die Schrittmotoren braucht man auch eine eigene Stromversorgung. 6V aus 4 AA-Zellen oder einem DC-Steckernetzteil reichen da aus.
Hier gibts 2 Youtube-Videos, in denen ich Funktionsweise , Pinbelegung und Anschluss einer H-Bridge beschreibe.
Teil 1: Funktionsweise und Pinbelegung
Teil 2: Anschluss an den Arduino und Schrittmotor
Wenn alles richtig verkabelt ist, dann sollten die folgenden Zeilen dem Schrittmotor schon eine Bewegung entlocken:
#include <Stepper.h>
// ca. Schritte pro Umdrehung
const int stepsPerRevolution = 20;
// Schrittmotor initialisieren
// Y-Achse hängt an Pin 2,3,4,5 des Arduino
Stepper myStepperY(stepsPerRevolution, 2,3,4,5);
void setup() {
// Geschwindigkeit setzen
myStepperY.setSpeed(100);
// 20 Schritte (der Schlitten sollte sich in Richtung des Motors bewegen)
myStepperY.step(20);
delay(100);
}
void loop() {
// Leer
}
Code-Sprache: Arduino (arduino)
Falls sich später herausstellt, dass eine Achse sich in die falsche Richtung bewegt, so kann das durch Vertauschen eines Kabelpaares vom Schrittmotor zur H-Bridge behoben werden.
Den gleich Aufbau samt Schrittmotor macht man dann auch für die X-Achse und mit diesem Testsketch:
#include <Stepper.h>
// ca. Schritte pro Umdrehung
const int stepsPerRevolution = 20;
// Schrittmotor initialisieren
// X-Achse hängt an Pin 8,9,10,11 des Arduino
Stepper myStepperX(stepsPerRevolution, 8,9,10,11);
void setup() {
// Geschwindigkeit setzen
myStepperX.setSpeed(100);
// 20 Schritte (der Schlitten sollte sich in Richtung des Motors bewegen)
myStepperX.step(20);
delay(100);
}
void loop() {
// Leer
}
Code-Sprache: Arduino (arduino)
Bevor man die beiden Achsen aneinander montiert muss man darauf achten, dass sich das Druckbett der Y-Achse dann auch wirklich unter der Position des Stifthalters befindet und man den Druckbereich voll ausnutzen kann. Erst dann den horizontalen und den vertikalen Teil des Rahmen zusammenschrauben oder kleben.
Wenn auch der 2. Schrittmotor richtig verkabelt ist, dann am besten beide Schlitten in die Mitte ziehen, eventuell schon einen Stift montieren und folgenden Sketch auf den Arduino übertragen:
#include <Stepper.h>
// ca. Schritte pro Umdrehung
const int stepsPerRevolution = 20;
// Schrittmotor initialisieren
// Y-Achse hängt an Pin 2,3,4,5 des Arduino
// X-Achse hängt an Pin 8,9,10,11 des Arduino
Stepper myStepperY(stepsPerRevolution, 2,3,4,5);
Stepper myStepperX(stepsPerRevolution, 8,9,10,11);
void setup() {
// Geschwindigkeit setzen
myStepperY.setSpeed(100);
myStepperX.setSpeed(100);
// 60 Schritte nach rechts
myStepperX.step(60);
delay(100);
// 60 Schritte nach hinten
myStepperY.step(60);
delay(100);
}
void loop() {
// Leer
}
Code-Sprache: Arduino (arduino)
Damit sollten der (gedachte) Stift eine Linie etwa 1 cm nach rechts hinten ziehen. D.h. die Schlitten auf beiden Achsen bewegen sich etwa 1 cm in Richtung des Schrittmotors. Bewegt sich ein Schlitten in die falsche Richtung, dann jeweils die Kabel eines Kabelpaares vom Schrittmotor zur H-Brücke vertauschen. Das sollte die Bewegungsrichtung der Achse ändern.
Hinweis: Die Schlitten des DVD-Laufwerks können nur dann mit der Hand einfach bewegt werden, wenn der Arduino bzw. die H-Brücken nicht mit Strom versorgt werden. Also vor dem Zurückschieben der beiden Achsen den Arduino aus- und dann wieder einstecken.
Wenn die Laufrichtung der Schrittmotoren stimmt, dann sollte links vorne auf dem Druckbett der Punkt (0,0) des Koordinatensystems sein. Von diesem Punkt weg nach rechts (X-Achse) und nach hinten (Y-Achse) haben wir jeweils ca. 250 Schritte der Motoren bzw. 40-50mm als Zeichenfläche zur Verfügung.
Dieses Skript sollte den Druckkopf vom Nullpunkt links vorne (0,0) ca. 40mm nach rechts und nach hinten bewegen.
#include <Stepper.h>
// ca. Schritte pro Umdrehung
const int stepsPerRevolution = 20;
// Schrittmotor initialisieren
// Y-Achse hängt an Pin 2,3,4,5 des Arduino
// X-Achse hängt an Pin 8,9,10,11 des Arduino
Stepper myStepperY(stepsPerRevolution, 2,3,4,5);
Stepper myStepperX(stepsPerRevolution, 8,9,10,11);
void setup() {
// Geschwindigkeit setzen
myStepperY.setSpeed(100);
myStepperX.setSpeed(100);
// 60 Schritte nach rechts
myStepperX.step(250);
delay(100);
// 60 Schritte nach hinten
myStepperY.step(250);
delay(100);
}
void loop() {
// Leer
}
Code-Sprache: Arduino (arduino)
Keine Angst, falls der Schlitten eines der Enden der Antriebsspindel erreicht. Die Aufhängung des Schlittens am Linearantrieb ist so gelöst, dass dieser in dem Fall einfach leer dreht (allerdings mit einem beleidigtem Rattern), ohne dass es zur Beschädigung der Mechanik kommt.
Die Software – erste Schritte
Mit den bisherigen Schritten haben wir gezeigt, dass die Mechanik der beiden Achsen funktioniert. Wenn wir jetzt noch provisorisch einen Stift an der X-Achse befestigen, dann möchten wir natürlich nicht nur kleine Muster oder Linien zeichnen, sondern ganze Bilder.
Dazu benötigen wir ein Vektor-Grafikprogramm, welches die Zeichnung als GCODE ausgeben kann. Dieses GCODE-File enthält einfach Anweisungen für den Plotter in dieser Form:
M300 S30.00 (Senke Stift)
G1 X10.00 Y10.00 F2500.00 (Fahre zu Punkt X:10mm, Y:10mm)
G1 X20.00 Y10.00 F2500.00 (Fahre weiter zu Punkt X:20mm, Y:10mm)
M300 S50.00 (Hebe Stift)
Code-Sprache: CSS (css)
Die Datei mit diesen Kommandos senden wir dann mit dem Programm gctrl.pde für Processing zeilenweise an den Arduino. Dazu ist eine aktuelle Version von Processing auf eurem PC erforderlich, die man hier downloaden kann. Die Processing-IDE gleicht der Arduino Software, da solltet ihr euch also gleich zuhause fühlen.
Nun brauchen wir am Arduino noch ein Programm, das die Anweisungen entgegen nimmt und in die benötigten Bewegungen der beiden Achsen (und optional des Servos am Stifthalter) umrechnet.
Da ich keine geeignete Software gefunden habe (grbl, die naheliegendste Lösung, hat mit meinem Setup mit den L293D H-Bridges nicht funktioniert), habe ich die Firmware des TinyCNC-Projektes an meinen Mini CNC Plotter angepasst.
Hier findet ihr die Mini CNC Plotter – Arduino Firmware auf github oder als ZIP-Datei. Entweder das Github Repository ins Arduino Verzeichnis clonen oder nach dem Entpacken des ZIP-Files das „-master“ aus dem Verzeichnisnamen löschen und das Verzeichnis in den Ordner mit den Arduino Sketches kopieren (meist im Dokumenten-Verzeichnis).
Die Firmware benötigt nur die Servo- und die Stepper Library, die beide Teil der Arduino Standardinstallation sind. Der Sketch sollte sich problemlos builden und auf den Arduino übertragen lassen.
Sobald das erledigt, ladet das Programm gctrl.pde für Processing herunter und startet es in Processing. Es erscheint dieses Fenster:
Mit der Taste „p“ kann man den seriellen Port auswählen, der für die Kommunikation mit dem Arduino verwendet werden soll. Das ist der selbe Port wie in der Arduino IDE. Wenn man ihn einmal richtig gewählt hat, lässt er sich auch im Quellcode des Skripts fix einstellen.
Der einzige sonst noch unterstützte Befehl derzeit ist „g“ – stream a g-code file. Wählt im Dialog die ebenfalls im ZIP-File der Firmware enthaltene Datei owl.gcode aus. Diese habe ich für eine Arbeitsfläche von 40x40mm vorbereitet. Die Datei wird dann vom gctrl.pde zeilenweise zum Arduino geschickt.
Der Plotter sollte sich sofort in Bewegung setzen und damit beginnen die Grafik zu zeichnen. In der Processing-Console (unterhalb des Programmcodes) sieht man die Befehle, die Processing an den Arduino schickt und die Rückmeldung des Arduino. Im Normalfall sollte nach jedem gesendeten Befehl ein „ok“ zurückkommen und damit die Sendung der nächsten Zeile auslösen.
Die Befehle zum Senken und Heben des Stifthalters sind bereits enthalten. Wenn kein Servo dranhängt, macht das aber auch nichts, der Arduino merkt nichts davon. Andere GCODE-Befehle, die die einfache Firmware nicht versteht, werden einfach ignoriert und mit einem „ok“ quittiert.
Eigene GCODE-Files aus Vektorgrafiken erstellen – MakerBot Unicorn für Inkscape
GCODE Files aus eigenen Vektorgrafiken oder Bildern erstelle ich mit Inkscape. Möglich ist das mit anderen Programmen sicher auch, ich freue mich über Hinweise!
Inkscape ist ein freies Illustrationsprogramm, das für viele Plattformen hier zum Download bereit steht. Zusätzlich benötigt man das MakerBot Unicorn Plugin, mit dem man einen Pfad als GCODE abspeichern kann.
[Update 02.04.2015: Derzeit scheint das Unicorn Plugin nicht kompatibel mit der aktuellen Inkscape-Version zu sein. Alternativ könnt ihr entweder eine ältere Inkscape-Version (mit 0.48.5 funktioniert es noch) installieren oder ein anderes Plug-in verwenden, z.B. die Laser Engraver Extension http://www.instructables.com/id/Pocket-laser-engraver/step7/Getting-the-software-ready/ (Vielen Dank an Andreas K.!)]
Zur Installation des Plugins auf den verschiedenen Betriebssysteme das ZIP-File zuerst entpacken. Der Inhalt des ZIPs gehört dann
unter Windows nach: C:\Programme\Inkscape\share\extension s\
(falls Inkscape dort installiert wurde)
unter Linux nach: „/usr/share/inkscape/extensions“ oder ~/.config/inkscape/extensions/
unter Mac OS X: „/Programme/Inkscape. app/Contents/Resources/extensions“ oder nach ~/.config/inkscape/extensions/
Für Variante 1 im Finder auf Programme/Inkscape.app rechtsklicken und „Paket öffnen“ auswählen. Variante 2 am besten im Finder bei „Gehe zum Ordner“ eintragen.

Dann Inkscape neu starten. Wenn alles passt, sollte unter „Speichern unter“ der Dateityp „*.gcode – MakerBot Unicorn G-Code“ auftauchen.
Ich hatte etwas Probleme mit dem Koordinatensystem des Unicorn-Exports, welcher den Nullpunkt in die Mitte der Zeichenfläche setzt. Nach etwas Herumprobieren habe ich es so gelöst, dass ich im Inkscape einfach eine Zeichenfläche von 80 x 80mm eingestellt und nur den rechten oberen Quadranten verwendet habe (siehe Grafik).
Nach dem Export kann man das .gcode-File in einem Texteditor öffnen. Es sollten in den G1 Anweisungen keine negativen Werte und keine Werte über 40.00 vorkommen.
Wie geht es weiter?
Was dem Plotter derzeit vor allem fehlt sind Endstops an den beiden Achsen. In der aktuellen Version müssen die beiden Achsen manuell auf den Punkt (0,0) – ein Punkt links vorne am Druckbett – geschoben werden. Da möchte ich noch 2 Schalter oder ähnliches einbauen, die vom Schlitten ausgelöst werden und dem Arduino ein Signal geben, sobald der Nullpunkt erreicht ist.
Ideal wäre anstatt der eigenen Mini-Firmware auch die Verwendung von grbl. grbl ist ein Open Source G-Code Parser zur Steuerung von 3-Achsen-Maschinen wie z.B. CNC Fräsen oder 3D-Drucker, der am Arduino läuft. Mit bestimmten Motortreibern für die Schrittmotoren ist die Verwendung von grbl nicht allzu kompliziert, mit den L293D H-Brücken habe ich das allerdings noch nicht hingekriegt bzw. bisher keine passenden grbl-Variante gefunden.
Nach dem Mini Plotter würde sich als Folgeprojekt ein Plotter aus der Mechanik zweier Tintenstrahldrucker anbieten. Diese sind ähnlich anzusteuern und würden eine deutlich größere Arbeitsfläche bieten.
Wenn ihr Info zu dem Thema habt oder selbst einen DIY Plotter oder eine CNC Fräse gebaut habt, bitte immer her mit euren Informationen und Erfahrungen!
Hallo und vielen dank für dieses Totorial. Ich habe schon so lange auf eine Lösung gewartet, G-code dateien an eine H-Brücken Motorsteuerun zu senden.
Echt Klasse von dir und mache weiter so. Deine anderen Tutorials waren mir auch oft eine kleine Hilfe bei anderen Projekten.
LG
Heiko
Pingback: Planung für 2015 – eure Meinung ist gefragt! | Makerblog.at
Gibt es einen Schaltplan um beide Steppmotoren mit L293D und Arduino UNO zu verkabeln ??
Viele Dank
Hallo Robert,
schaltplan gibts leider keinen, aber hier sind die beiden Videos zur L293D H-Brücke.
Theorie & Pinbelegung:
https://www.youtube.com/watch?v=qVbWFi1oO24
Breadboard & Test:
https://www.youtube.com/watch?v=906l9Au6TwM
Wenn du das einfach für beide Achsen machst – jeweils mit den Pins wie im Arduino Sketch angegeben – dann ist der größte Schritt schon getan.
lg, Adi
Ja, ein schaltplan für beide H- brücken und am besten noch für den servo wäre Top.
Hallo Jannis,
ein 2-teiliges Videotutorial zum Anschluss von H-Brücken an diese DVD-Schrittmotoren findest du hier:
https://www.youtube.com/watch?v=906l9Au6TwM
https://www.youtube.com/watch?v=qVbWFi1oO24
Da wird auch die Beschaltung genau erklärt.
Ein Servo-Tutorial gibt es hier:
https://www.youtube.com/watch?v=aAxbp507B9I
Leider habe ich nicht immer die Zeit auch einen Blog-Eintrag samt Schaltplan etc. für die Videos zu machen, auch wenn das manchmal praktischer für die User wäre. Vor allem wenn man nur kurz was nachschauen möchte.
huhu
habe mini plotter bis gerade beide laufwerke am laufen ,servo natürlich auch .baue morgen alles in einem gerüst mit stift.soweit hatt alles geklappt.bin auf nächstes projetkt gespannt von dir.
ps am schrittmotor mini plotter könte man mit einer lichtschranke die possitionen abfragen.
oder mit readkontakt.
alles gute bis bald.
norbert
hallo,
bin fast fertig,servo ansteuerung fehlt noch.
video ist anbei.
mich würde der 3 d plotter interesieren.
wie baue ich den.
wiele grüße .norbert
Erst einmal vielen Dank für dieses tolle Tutorial.
Ich hab das ganze gleich einmal mit Erfolg nachgebaut ;)
Jetzt scheitere ich nur beim Erstellen eigener Vector-Grafiken in Incscape mit dem Unicorn-Plugin. Beim Umwandeln in eine G-Code-Datei, wird mir immer nur ein Fehler ausgegeben :( Die Schrift in meiner Testdatei habe ich immer in einen Pfad umgewandelt… Hattest du derartige Probleme? Irgendwelche Tips für mich? ;)
Vielen Dank!
Hallo,
das angegebene Exportplugin für Inkscape funktioniert bei mir auch nicht, was aber geht ist dioe „Laser engraver extension“ von
instructables.com/…/Pocket-laser-engraver
viel Spaß
Vielen Dank für den Hinweis! Ich hab im Artikel eine Anmerkung hinzugefügt.
Hi, stehen die .stl Dateien der gedruckten Teile irgendwo zu Verfügung ?
Danke, JB
Ich hab die Teile nicht veröffentlicht, da sich die Mechaniken der verschiedenen Laufwerke stark voneinander unterscheiden. Ich kann dir die Teile (und die Sketchup-Files) aber gerne mailen, wenn du mal reinschauen willst?
lg, Adi
Oh Ja, wen du mal Zeit und Lust hast die mir auch zu Mailen wäre das echt nett.
Danke im vor raus
Hallo,
vielen Dank für diese sehr schöne Anleitung. Vor allem die detaillierte Darstellung der Stiftmechanik hat mir und meinen Söhnen gut gefallen.
Könnten wir bitte die Druck- und Sketchupdateien bekommen? Das Sketchupen fällt uns noch sehr schwer und es wäre uns sicher eine Hilfe. Und wer weis, etl haben wir ja Glück mit der Kompatibilität.
Unseren neuen Drucker haben wir bis jetzt mit fertigen Vorlagen oder Tinkercad-Dateien gefüttert.
Viele Grüße aus dem hohen Norden (M/V)
Thomas und Steffen und Erik
Hallo,
könntest du mir auch bitte die STL Dateien mailen, die Stifthalterung interessiert mich, kann ich ja auf meine Stiftdicke anpassen.
Danke schön!
Gruß Alex
Help me!!! Errors file gctr.de
„The function „showInputDialog ()“ expects parameters like: “ showInputDialog( component, Object, String, int, icon, object, object)“
Line 31
Try to change this to:
String result = (String) JOptionPane.showInputDialog(frame,
„Select the serial port that corresponds to your Arduino board.“,
„Select serial port“,
JOptionPane.QUESTION_MESSAGE,
null,
Serial.list(),
0);
bekomm bei processing leider nur ne fehlermeldung: „The function „showInputDialog()“ expects parameters like: „showInputDialog(Component, Object, String, int, Icon, Object[], Object)“ gctrl 31″
wenn ich gctrl starten will..
Vielen lieben Dank für diese SUPER ANLEITUNG!
Ich habe hier in den Kommentaren einige Probleme erlesen können.
Beispielsweise dieser:
Help me!!! Errors file gctr.de
„The function „showInputDialog ()“ expects parameters like: “ showInputDialog( component, Object, String, int, icon, object, object)“
Line 31
Processing 3.0.2 brachte mir ebenfalls diesen Fehler.
Processing 2.2.1 wie es im Tutorial verwendet wird klappt dahingegen auf anhieb!
hiiii
thanks for this project .
but !!!!
how to run Gctrl ??
i’m waiting for your answer …..
You will need processing app: https://processing.org
Hello! Thank you for this great tutorial!
I have made it and I have already printed the „owl“ (gcode image).
I want your help on how to use the inkscape program to print my images.
Thank you for your time!
Michalis
Michalis
Thank you Michalis ;
do you give me code of arduino to use motor shield ??
pllz
Hi ; thanx for all this but how to change code Arduino to use Motor Shield ??
„$ Display Grlb Setting“ has no effect. Using how. please
Hello ;how to change the code of Arduino to use MOTOR SHIELD L293D
CODE G-code is M03; S30 M300 M05 is not; S50 M300 should not be servo control. And in the following line of code appears gcode M30
(Example: M03
G1F600.000000
G01 X97.6073 Y102.6626F600.000000)
If I replace the M30 and M05 and M300 to M300 S30 S50 and delete the line (G01 X97.6073 G1F600.000000 Y102.6626F600.000000) after M03, it will be back to normal.
Lost time please help me repair.
Inkscape 0.48.5
„Ich hatte etwas Probleme mit dem Koordinatensystem des Unicorn-Exports, welcher den Nullpunkt in die Mitte der Zeichenfläche setzt. Nach etwas Herumprobieren habe ich es so gelöst, dass ich im Inkscape einfach eine Zeichenfläche von 80 x 80mm eingestellt und nur den rechten oberen Quadranten verwendet habe (siehe Grafik).
Nach dem Export kann man das .gcode-File in einem Texteditor öffnen. Es sollten in den G1 Anweisungen keine negativen Werte und keine Werte über 40.00 vorkommen.“
Hat jemand dieses Problem noch nicht gelöst. Können Dateien bearbeiten Unicorn.py
easy way to convert image ==to==gcode
http://www.thuijzer.nl/image2gcode/
by
Guten Tag,
ich bedanke mich für diesen interessanten Beitrag. Für neue Schulungsprojekte sucht unsere Firma CNC Maschinen. Während unserer Recherche sind wir auf diese CNC Fräsen aufmerksam geworden https://www.isel.com/germany/de/flatcom-serie-xl-4533.html . Jeder Bericht oder Rat ist uns wichtig. Wir wären Ihnen sehr dankbar, wenn Sie etwas über diese Maschinen berichten bzw. Alternativen nennen könnten.
Mit freundlichen Grüßen
Hallo Adi,
klasse Tutorial, vielen Dank dafür 8-)
Habs grad nachgebaut und schlieslich auch den gcode zum Laufen bekommen.
Jetzt noch ein paar Endschalter einbauen, damit sich die Plattform am Anfang automatisch zentriert, dann werd ichs vielleicht auch bei YouTube reinstellen…8-))
Also, vielleicht sieht man sich.
viele Grüße, Ole
Hallo,
wäte es möglich die *.stl Dateien für die Stifthalterung zu bekommen, das wäre Super!! Vielen Dank
Hallo Rene,
ich hab dir die beiden Files eben per Mail geschickt.
lg, Adi
Hallo…Erstmal danke für die Super Seite und für die vernünftige Erklärung .
Habe eine frage wie funktioniert so was habe mir ein Display gekauft und möchte an meine mini CNC anschließen und das der Ausgeführte g-code angezeigt wird…Das ist ein Link mit beispiel video damit du weist was ich meine.
https://www.youtube.com/watch?v=b21IZJAgekY
Danke in Voraus
Mfg Daniel M.
Pingback: CD/DVD Drive Mini CNC Plotter – Rebuilds und Verbesserungen | Makerblog.at
Vielen Dank für die Stifthalterung auf thingiverse!
HI.Bei mir rennt es nach Anpassung der Software.
https://youtu.be/FSTfRhu5xTI
Danke für das Projekt.
Ein wirklich interessantes Projekt. Muss ich unbedingt mal nachbauen.
Vielleicht interessiert sie dieses Projekt auch: http://homofaciens.de/technics-machines-cnc-v2_ge_navion.htm
Hallo, vielen Dank für die super Anleitung, habe die Minicncmaschine nachgebaut. Da ich bereits ein Adafruit Motorshield V2 hatte musste ich eine andere Firmware benutzen. Ich bin auf http://learn.marginallyclever.com/index.php/GcodeCNCDemo gestossen und nach einigen Anpassungen hat das auch gut funktioniert. Leider fehlt in dieser Firmware der M300 Befehl für den Stiftservo, leider hab ich es bis jetzt noch nicht geschafft den Befehl zu integrieren… aber ich arbeite daran. Falls jemand weiss wie man das hinkriegt bin ich für Tips offen :)
Hallo.
Ich habe die Schrittmotoren nach Anleitung mit den H-Brücken (L293D) verkabelt und nutze eine 6Volt Spannungsquelle. Das Problem ist, dass die L293D ICs auf Dauer relativ heiß werden. Ist das normal oder hatte jemand schon ähnliche Probleme gehabt?
Notfalls würde ich kleine Kühlkörper nutzen..
Danke im voraus.
Hallo zusammen,
erstmal danke für die tolle Anleitung. Ich finde sie wirklich sehr gelungen und man kann dieses Projekt auch relativ einfach umsetzen.
Nun zu meinem Problem:
– Wenn ich den g-code über Processing streame läuft dort alles richtig durch, doch an meinem Plotter bewegt sich nur die y-Achse, die x-Achse bleibt stehen.
– Wenn ich die y-Koordinaten aus dem g-code rauslösche bewegt sich die x-Achse.
Kann mir da vielleicht jemand weiterhelfen?
Danke schon mal im voraus.
Gruß Lukas
Hallo Adi,
wie ich gesehen habe musst du die Kommentare ja erst freischalten, dass brauchst du bei meinen zwei nicht tun, denn mein Problem hat sich geklärt.
Ich dachte die 5V aus dem USB-Kabel werden die Servos schon versorgen – denkst de :) war wohl nix. Ich hab die Servos jetzt an 6V gehängt, jetzt geht’s.
Danke für deine Mühe.
Gruß Lukas
Hallo Lukas,
ich freu mich zwar über Kommentare, wenn sich die dari angesprochenen Probleme aber fast von selbst lösen, dann freut mich das noch mehr :)
lg, Adi
hallo,. ich habe bei folgendem probleme,.
Da ich keine geeignete Software gefunden habe (grbl, die naheliegendste Lösung, hat mit meinem Setup mit den L293D H-Bridges nicht funktioniert), habe ich die Firmware des TinyCNC-Projektes an meinen Mini CNC Plotter angepasst.
Hier findet ihr die Mini CNC Plotter – Arduino Firmware auf github oder als ZIP-Datei. Entweder das Github Repository ins Arduino Verzeichnis clonen oder nach dem Entpacken des ZIP-Files das „-master“ aus dem Verzeichnisnamen löschen und das Verzeichnis in den Ordner mit den Arduino Sketches kopieren (meist im Dokumenten-Verzeichnis).
Die Firmware benötigt nur die Servo- und die Stepper Library, die beide Teil der Arduino Standardinstallation sind. Der Sketch sollte sich problemlos builden und auf den Arduino übertragen lassen.
ich habe alles nötige runter geladen, verstehe das aber nicht mit den arduino sketches und der servo/ stepper lib. .
kann mir da jemand weiter helfen ?
danke im vorraus
mfg dom
ich habe jetzt soweit alles zu gange,. aber wenn ich als makerbot unicorn gcode speichern will kommt die fehlermeldung:
– Traceback (most recent call last):
File „unicorn.py“, line 23, in
from unicorn.context import GCodeContext
File „C:\Program Files\Inkscape0.48.5\share\extensions\unicorn.py“, line 23, in
from unicorn.context import GCodeContext
ImportError: No module named context
Das gleiche Problem habe ich auch.
Hallo Dominic,
was war die loezung, habe diese woche erst die software gedownload.
Und habe die gleiche Meldung.
mvg Peter aus Holland
wie kann man das Mini CNC Plotter Programm so umändern, dass das Adafruit Motor Shield verwendet werden kann. Also das mit den fetten drei ICs. Bin da leider noch absoluter Neuling und wäre für Unterstützung dankbar.
Gibt es eine genaue Anleitung für das Bauen des Plotters?
Ich habe nähmlich das Problem, dass ich nicht weiß wie ich vorgehen muss.
Bitte um Hilfe :)
Hello and thank you for sharing. I have a problem with the Y motor movement (just this one ) when it changes direction and before the next move, it jumps around a millimeter towards the new direction. So if I draw 5 parallel lines and return to the y coordinate of origin for each line: they are shifted slightly each time. Do you know where the problem come from ? thank you for your help.
hi, how are you? a have some problems to make mini CNC CD Rom, i need help:
ERRORS
Arduino: 1.6.11 (Windows 10), Placa:“Arduino/Genuino Uno“
C:\Users\Fábio\Desktop\mini_cnc_plotter_firmware-master (1)\mini_cnc_plotter_firmware-master\mini_cnc_plotter_firmware\mini_cnc_plotter_firmware.ino: In function ‚void loop()‘:
mini_cnc_plotter_firmware:136: error: ‚processIncomingLine‘ was not declared in this scope
C:\Users\Fábio\Desktop\mini_cnc_plotter_firmware-master (1)\mini_cnc_plotter_firmware-master\mini_cnc_plotter_firmware\mini_cnc_plotter_firmware.ino: In function ‚void processIncomingLine(char*, int)‘:
mini_cnc_plotter_firmware:199: error: ‚penUp‘ was not declared in this scope
mini_cnc_plotter_firmware:202: error: ‚penDown‘ was not declared in this scope
mini_cnc_plotter_firmware:229: error: ‚drawLine‘ was not declared in this scope
exit status 1
‚processIncomingLine‘ was not declared in this scope
Este relatório teria mais informações com
„Mostrar a saida detalhada durante a compilação“
opção pode ser ativada em „Arquivo -> Preferências“
Hi Fabio,
very strange. I will update to Arduino IDE 1.6.11 and test this today.
Regards,
Adi
I just made a new install of Arduino 1.6.12, opened the sketch directly from Github and it built/compiled without any errors. Please download the project from github again and try to open and compile the file again.
Thanks,
Adi
Hallo :)
ich habe dieses Projekt genauso nachgebaut wie du nur ich habe folgendes Problem:
Wenn ich die Beiden Motoren einzeln über ein einzelnes Sketch ansteuere dann laufen beide (auch richtige Richtung usw.) nur wenn ich versuche etwas zu „Drucken“ dann läuft NUR die X-Achse und der Servo aber bei der Y-Achse nichts. Weiß jemand woran das liegen könnte? Ob ich noch etwas umstellen muss usw?
Bitte schnelle Hilfe :)
Lg Mario
Hallo Mario, ein anderer Maker hatte vor kurzem ein ähnliches Problem und da lag es dann an der Stromversorgung der beiden Schrittmotoren, die im Vollbetrieb nicht ausreichte. Wie schaut es da bei dir aus?
lg, Adi
Hallo Adi,
Ich habe das selbe Problem wie Mario. Ein Motor (x) läuft und der Servo. Der andere Motor (y) allerdings nicht.
Denke nicht das es an der Stromversorgung liegt, da ich eine 9v und 3.6 v Stromversorgung dran habe.
Can the speed of the cnc be increased with the stepper motor(somehow)? If yes, can you please explain?
PS Sry i DOn’t know German
*please explain
Hi,
ne kleine Frage:
Ich habe das Gctrl runtergeladen und das Prozessing auch. Habe gestartet und es ging nicht. in zeile 31 gab es den Fehler an. und zwar: String result = (String) JOptionPane.showInputDialog(This,
Hab das this durch „frame“ ersetzt. geht jetzt. aber warum?
bzw. wurde das programm die hardware zum laufen bekommen?
Entweder Processing Version 2.2.1 runterladen (auch auf processing.org verfügbar), oder im Processing Sketch die fehlerhafte Zeilen ändern in:
String result = (String) JOptionPane.showInputDialog(frame,
„Select the serial port that corresponds to your Arduino board.“,
„Select serial port“,
JOptionPane.QUESTION_MESSAGE,
null,
Serial.list(),
0);
lg & viel Spaß!
Adi
hi das habe ich gemacht von der seite geht alles. jetzt wollte ich heute alles verkabeln und endlich mal starten. Aber es rührt siich gar nichts. der servo nicht, die schrittmotoren nicht. Es geht aber eig alles da ich es schon getestet habe. könnte es an der verkabelung der schrittmotoren liegen?
Hi MG, mit getestet meinst du, dass du die Schrittmotoren einzeln schon verkabelt und getestet hast? Wenn sich gar nichts tut, dann ist die Fehlersuche schwierig. Am besten erstmal nur einen Schrittmotor verkabeln und mit den Testsketches hier auf der Seite checken. Dann den 2. Motor dazu und wiederholen. Wenn es mit den Testsketches läuft, bei der Ansteuerung via gctrl aber nicht, dann ist es vielleicht ein Kommunikationsproblem. Kriegst du im gctrl eine Bestätigung, dass die Kommunikation mit dem Plotter klappt? lg, Adi
Hallo zusammen,
mit einer Schülergruppe haben wir drei Plotter zusammengebaut und dabei schöne Aluprofile verwendet. Als externe Stromversorgung haben Labornetzteile angeschlossen, um die Spannung ggf. etwas erhöhen zu können. Leider fahren die Motoren nur ein Stück, bzw. bei zwei anderen Plottern nur, nachdem sie Anschubhilfe mit dem Finger bekommen haben.
Die Verkabelung wurde mehrfach getestet, die l293 wurden getauscht und wir haben andere Laufwerke angelötet. Leider ohne Erfolg. Als Sketch haben wir den von maker.at und von instructables getestet. Langsam macht sich Frust breit. Hat jemand eine Idee, was da falsch läuft?
Für einen Hilfevorschlag wären wir sehr sehr dankbar!
Viele Grüße
Marc
Hallo Marc, habt ihr die Schrittmotoren einzeln getestet? Funktionieren sie einzeln mit dem ersten Testskript (weiter oben)? Hört sich ja doch nach einem Problem mit der Stromversorgung an, auch wenn das mit dem Labornetzteil eher ungewöhnlich wäre. Die GNDs von Arduino und Motorstromversorgung sind auch verbunden (das vergesse ich nämlich immer)? lg, Adi
Servus Adi,
Ich habe mich nach 35 Jahren wieder meiner Jugendleidenschaft der Elektronik zugewand und bin dabei auf deinen Blog gestoßenen. Ich muß sagen deine Erläuterungen haben mir sehr geholfen. Ich habe den Miniplotter nachgebaut, und er druckt Eulen. Ein tolles Erfolgserlebnis dank deiner Seite.
Danke dafür.
lg Karl aus Bayern
Hallo Karl, wenn du ein Foto oder Video von deinem Projekt hast, dann schick mir bitte was, damit ich das auf der Seite mit den Rebuilds veröffentlichen kann. lg, Adi
Hi,
Awesome project and excellent tutorial. I managed to put together one using scrap DVD drives and is working well. But I am not able to change the speed of stepper motors. It plots in the same speed even if I change the the ’setspeed‘ to 0. Could you please help me out?
Best Regards,
Hallo,
ich habe den Plotter nachgebaut, ich habe nur das Problem, dass wenn ich den Motor ansteuern, er nur brummt, ich habe schon einen anderen versucht, was mache ich falsch?
Ich verwende zum ansteuern einen Arduino Uno und ein Motor Treiber L293D
Gruß Stefan
Bei mir ruckeln die Schrittmotoren bei niedriger Geschwindigkeit stark. Ein Motor etwas stärker als der ander. Erhöhe ich die Geschwindigkeit in processing gibt sich das Problem, allerdings vermute ich, dass ich bei der hohe Geschwindigkeit dann keine vernünftige Linie mehr zeichnen kann. Gibt es eine Möglichkeit das zu beheben.