Startseite    Das Projekt    Technik    RoboSpatium    Unterstützung    Stichwortverzeichnis    Neuigkeiten    Download    Reaktionen    Spiele    Kauftipps    Kontakt   




<<< CNC v2.0         CNC v3.x Serie >>>

CNC V2.1

Das Video zum Kapitel


Videos verschiedener Nachbauten

Peter aus Österreich:
https://youtu.be/0ErJPFKXAgk

Luciano aus Brasilien:
https://youtu.be/gLaDO6gXG6g
https://youtu.be/oNqqaTqgyL4

Nicolas aus Frankreich:
https://youtu.be/r73QuL5oLHI

Hinterlasst einen Kommentar oder sendet mir eine Mail, wenn ihr ebenfalls Videos von euren Nachbauten hochgeladen habt - danke!

Version 2.1

CNC Maschine V2.1
Abbildung 1:
Aufgrund vieler Nachfragen habe ich meine CNC v2.0 auf bipolare Schrittmotoren umgerüstet.

Teileliste zur Umrüstung

Die Materialien zum Bau der Mechanik sind im Kapitel zu CNC v2.0 zu finden.

Bauteil Stückzahl Bemerkung
Arduino Uno 1 Circa 25,-€
A4988 Treiberplatinen 4 Für Ströme bis zu 2A an 35V mit Kühlkörper!
Bipolare Schrittmotoren 4 z.B. Nema 17HS19-2004S1
2A @ 2.8V
oder Nema 17HS16-2004S1
2A @ 2.2V
Elektrolytkondensatoren 4 Mindestens 100µF,
mindestens 50V
Gesamtkosten inklusive Materialien für die Mechanik etwa 250,-€

Änderungen an der Mechanik

CNC Maschine V2.1, Schmierung
Abbildung 2:
Das Schmiersystem ist neu, aber nicht meine Erfindung:
Ähnliche Anordnungen könnt ihr bei alten Dampfmaschinen sehen. Ein Messingröhrchen dient als Ölreservoir und durch eine 1mm Bohrung gelangt das Schmiermittel zur Gewindestange. Nehmt nicht allzu dünnflüssiges Öl und füllt nur einige Tropfen ein, da dieses sonst heraustropft.
Zu diesem Problem hat mir Christian einen Kommentar hinterlassen, dass in den Röhrchen der alten Dampfmaschinen etwas Watte steckt, um das Heraustropfen zu verhindern. Danke für den Tip!

CNC Maschine V2.1, Verbindung zu den Schlitten
Abbildung 3:
Die Gewinde in den 10mm Bolzen habe ich ausgebohrt, dann habe ich ein Stück 6mm-Gewinde durchgesteckt und an beiden Enden je eine Mutter so weit eingedreht, dass sich die Gewindestange nur leicht klemmend drehen lässt. Die beiden Muttern habe ich an dieser Position mit reichlich Heißkleber mit dem Bolzen verklebt. Epoxidharz hält besser, mit dem Heisskleber sind aber leichter Korrekturen vorzunehmen, falls die Gewindestange zu sehr klemmt oder noch zu viel Spiel vorhanden ist.

CNC Maschine V2.1, Verbindung Motor mit Gewindestangen
Abbildung 4:
Die Verbindung von 5mm-Motorwelle und 6mm Gewindestange erfolgt durch 3 zusammengelötete M6er Muttern. Eine 1.5mm-Bohrung und die geschlitzte Motorwelle ermöglichen es, die geklebte Verbindung mit einem Stück 1mm-Draht zusätzlich zu sichern. Beim Ankleben an der Motorwelle wird der Verbinder mit einer Ständer-Bohrmaschine senkrecht ausgerichtet. Mit einer vierten Mutter wird der Verbinder mit der Gewindestange verschraubt und gesichert.
Diese low-Tech Verbindung ist nicht perfekt zentriert. Sowohl Gewindestangen als auch Motoren wackeln etwas beim Drehen. Wer das besser hinbekommt oder mehr Geld in gute Verbinder investiert, wird mit einer höheren Präzision belohnt. Ich wollte aber erneut möglichst einfaches Werkzeug und leicht zu beziehende Materialien zum Bau der Mechanik verwenden. Wie zuvor ist die Motorbefestigung bewusst "weich" ausgelegt, um ein Klemmen der Gewindestange zu vermeiden.

CNC Maschine V2.1, Verbindung Fräsmotor beim Gravieren von Glas
Abbildung 5:
Zum Gravieren von Glas wird der Fräsmotor mit mehreren Streifen Lochblech an der Z-Achse befestigt.

CNC Maschine V2.1, Halterung Fräsmotor
Abbildung 6:
Den Fräsmotor habe ich wieder mit einer einfachen Schelle an einem Aluwinkel eingeklemmt, es existiert jetzt aber ein zusätzlicher Bestigungspunkt am unteren Ende. Optimal ist eine Befestigung, welche den Fräsmotor an dieser Stelle umschließt, wie es bei kommerziellen Fräsmotor-Halterungen der Fall ist.

CNC Maschine V2.1, Halterung Fräsmotor
Abbildung 7:
Ein Spritzschutz aus streifen Lochblech und einem Streifen Plastiktüte sorgt dafür, dass Staub und Wasser nicht über die ganze Maschine verteilt werden.

Beispiele

CNC Maschine V2.1, Testmuster
Abbildung 8:
Testmuster, geplottet mit einem Kugelschreiber.

CNC Maschine V2.1, Aluminiumblech
Abbildung 9:
0.8mm Aluminiumblech. Dieses Material bringt die Biegefestigkeit der Maschine an ihre Grenzen. Die Maschine wurde nicht zum Bearbeiten von Metallen konzipiert!

CNC Maschine V2.1, Acrylglas
Abbildung 10:
Acrylglas.

CNC Maschine V2.1, Sperrholz
Abbildung 11:
4mm Pappelsperrholz.

CNC Maschine V2.1, Gravieren von Glas
Abbildung 12:
Gravieren von Glas.

Elektronik

Elektronik CNC Maschine V2.1, Treiberplatine
Abbildung 13:
Für maximale Geschwindigkeit werden die Schrittmotoren nicht mit konstanter Spannung, sondern mit konstantem Strom betrieben. Ich verwende Platinen mit einem A4988 Chip, die preisgünstig zu bekommen sind und Ströme bis 2A an bis zu 35V schalten können.

Elektronik CNC Maschine V2.1, Phasen
Abbildung 14:
Zum Anschließen des Schrittmotors an die Platine muss bekannt sein, welche Leitungspaare zu je einer Phase gehören. Mit einem Multimeter in der Einstellung für Durchgangsprüfung kann das gemessen werden. Bei diesem Motortyp gehören die beiden Roten und die beiden Blauen Leitungen zu je einer Phase.


Elektronik CNC Maschine V2.1, Anschlüsse Treiberplatine
Abbildung 15:
Phase 1 wird mit den Pins 1A und 1B, Phase 2 mit 2A und 2B verbunden. Welche Phase an welchem Klemmenpaar angeschlossen wird, ist egal.
Masse wird mit Masse des Arduino und mit Minus der Spannungsquelle der Motoren verbunden.
VDD ist die Spannung für die Logikpegel und muss mit +5V des Arduino verbunden werden.
Die Spannung für den Motor sollte zwischen 12 und 35V liegen. Ich verwende die +12V-Leitung eines alten Computernetzteiles.
Der "Nicht-Reset" Pin muss auf HIGH-Level sein, um den Chip zu aktivieren, was hier durch einen externen 2.2 Kiloohm Pullup-Widerstand erreicht wird (der Widerstandswert sollte zwischen 1k und 10k liegen).
Ferner muss der "Nicht-Enable" Pin auf LOW-Level sein. Der Chip besitzt an diesem Pin einen internen Pulldown Widerstand, der das erledigt. Dennoch ist der Pin mit dem Mikrocontroller verbunden, um den Motor per Software Ein- und Ausschalten zu können.
"Nicht Sleep" muss auf HIGH-Level sein, um den Chip zu aktivieren, was durch den internen Pullup-Widerstand automatisch erledigt wird.
Die beiden Pins Direction und Step sind mit dem Microcontroller verbunden.
Die Pins MS1 bis MS3 sind zum Einstellen des Mikrosteppings und besitzen alle einen internen Pulldown-Widerstand, womit der Motor standardmäßig in Vollschritten angesteuert wird. Ich habe MS1 auf HIGH-Pegel gelegt, womit der Motor in Halbschritten angesteuert wird.

Elektronik CNC Maschine V2.1, Einstellung Phasenstrom
Abbildung 16:
Der Phasenstrom wird über ein kleines Potentiometer eingestellt. Dazu muss ein Multimeter auf den Bereich für maximalen Strom eingestellt - bei diesem Modell sind das 10A und in Reihe zu einer Phase geschaltet werden. Ich verwende einen Phasenstrom von 0.7A, was ausreichend Drehmoment erzeugt. Außerdem ist dieser Strom weit von den Grenzwerten von Motor und Treiberplatine entfernt, was die Zuverlässigkeit erhöht.

Der Schrittmotor sollte nicht (wie ich im Video gemacht habe) von der Treiberplatine getrennt oder angeschlossen werden, wenn die Stromversorgung eingeschaltet ist!
1.) Stromversorgung ausschalten.
2.) Amperemeter in Reihe zu einer Phase schalten.
3.) Stromversorgung einschalten und Strom auf gew&auuml;nschten Wert einstellen.
4.) Stromversorgung ausschalten und Schrittmotor wieder direkt an die Treiberplatine anschließen.

CNC Maschine V2.1, Schaltplan
Abbildung 17:
Der Schaltplan.

Software

Software CNC Maschine V2.1
Abbildung 18:
Die Software zur Ansteuerung der Maschine ist in C geschrieben und diese wird über die Kommandozeile bedient. Über das Menü kann die Datei mit dem Testmuster angewählt und es können verschiedene Parameter festgelegt werden.

Das unterstützte Vektorformat ist "Scalable Vector Graphics (*.svg)". Dabei sind einige Besonderheiten zu beachten:
Es können keine Flächen sondern lediglich Linien (Pfade) gezeichnet werden. Sämtliche Pfade müssen als "Polygon" vorliegen. Getestet habe ich die Software mit Grafiken, die ich mit Libre Office Draw bearbeitet und exportiert habe:
1.) Grafik mit LibreOffice Draw erstellen
2.) Strg + 'a' drücken, um alle Objekte zu markieren.
3.) Auf "Ändern -> Umwandeln in -> Polygon" klicken.
4.) Linien auf "Durchgehend" und Farbe Schwarz setzen.
5.) Flächen auf "Unsichtbar" setzen.
6.) Exportieren als *.svg
7.) Datei in das Unterverzeichnis "pictures" im Installationsverzeichnis der CNC-Software kopieren.

Den Quellcode der Programme inklusive einiger Beispieldateien und des Schaltplans gibt's in der Rubrik Download.

GRBL

Mit der GRBL-Software kann G-Code von der CNC verarbeitet werden. Ich beantworte lediglich Fragen zu Problemen die im Zusammenhang mit dieser kurzen Installationsanweisung stehen. Wer mehr wissen möchte, sollte sich die Dokumentation zu GRBL durchlesen!.

Laden von GRBL auf den Arduino Uno unter Ubuntu 14.04LTS:

Installieren der Arduino IDE (Version 1.1 oder neuer!):
1.)Terminalfenster mit Alt + 'T' öffnen und folgende Kommandos eingeben:
sudo apt-get update
sudo apt-get install arduino

2.)Download der GRBL Software und entpacken mit:
wget -N https://github.com/grbl/grbl/archive/master.zip
unzip master.zip

3.)Arduino IDE starten und Libraries importieren:
Auf "Sketch -> Import Library -> Add Library" clicken.
In dem folgenden Dialog den Unterordner "grbl" im Ordner "grbl-master" auswählen und "OK" klicken.
Nach erfolgreichem Import ist die Software unter "Datei -> Beispiele -> grbl -> grblUpload" zu finden.
Nach dem Öffnen dieser Datei auf die Schaltfläche zum Upload klicken und warten bis der Vorgang abgeschlossen ist. Der Arduino muss natürlich an die USB-Schnittstelle angeschlossen sein.

4.) Maschinenparameter setzen:
Für meine Schrittmotoren ergeben sich 200 Schritte für eine Bewegung um 1mm und als Maximalgeschwindigkeit habe ich 120mm/Minute festgelegt. Dazu das Terminalfenster der Arduino IDE öffnen, die Übertragungsrate auf 115200baud und Zeilenende auf "Carriage return" setzen.
Folgende Befehle senden:
$100=200
$101=200
$102=200

$110=120
$111=120
$112=120

$130=500
$131=500
$132=50

Mit dem Befehl:
$$
können die gesetzten Parameter angezeigt und kontrolliert werden.
Terminalfenster und Arduino IDE schließen.

5.)"Universal G-Code sender" installieren (inclusive JAVA 8 JDK!):
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java8-installer
sudo apt-get install maven
wget -N https://github.com/winder/Universal-G-Code-Sender/archive/master.zip
unzip master.zip

6.)"Universal G-Code sender" starten:
cd Universal-G-Code-Sender-master
mvn exec:java -Dexec.mainClass="com.willwinder.universalgcodesender.MainWindow"

Im Unterverzeichnis "pictures" meiner Software findet ihr die Beispieldatei "gnome-G-code.nc" die ich im Video gezeigt habe.
Wie ihr mit CAD oder sonstigen Programmen G-Code erzeugt, ist eure Sache. Ich verwende (zumindest bislang) keine CAD-Software!

Häufig gestellte Fragen (FAQ)

Frage: Wie kann ich den Arduino Sketch laden?
Antwort: Installiere die Arduino IDE, indem du ein Terminalfenster öffnest (Alt + 'T') und die folgenden Befehle eingibst:
sudo apt-get update
sudo apt-get install arduino
Nun sollte der Arduino sketch (*.ino) des Download-Paketes automatisch in der IDE geöffnet werden, wenn du auf die Datei klickst (in Ubuntu 14.04LTS funktioniert das). Diese IDE öffnet manchmal auch die Datei "commands-CNC.c" in einem Unterfenster (Tab). Schließe dieses Unterfenster vor dem Kompillieren!
Im Menü musst du nun auf "Datei -> Upload" klicken, um den Sketch auf den Arduino zu laden.
Frage: Wie kann ich testen, ob die Motoren korrekt laufen?
Antwort: Nach Starten des Programms "commands-CNC" können die Motoren mit den Pfeiltasten angesteuert werden.
Pfeil links/rechts bewegt die Motoren um einen Schritt entlang der X-Achse.
Pfeil hoch/runter bewegt den Motor um einen Schritt entlang der Y-Achse.
Bild hoch/runter bewegt den Motor um einen Schritt entlang der Z-Achse.
Durch Drücken der Taste 'm' kann die Anzahl der Schritte von 1 bis 1000 variiert werden.
Frage: Die beiden Motoren der X-Achse drehen sich in unterschiedliche Richtungen.
Antwort: Die Drehrichtung eines Motors kann verändert werden, indem die beiden Kabel einer Phase, welche von der A4988-Platine zum Motor laufen vertauscht werden.
Frage: Der Ausdruck erscheint gespiegelt.
Antwort: Die Drehrichtung der Achse, um welche der Druck gespiegelt erscheint, muss verändert werden. Dazu müssen die beiden Kabel einer Phase, welche von der A4988-Platine zum Motor laufen vertauscht werden. Ist der Druck entlang der X-Achse gespiegelt, muss die Drehrichtung für beide Motoren nach diesem Prinzip geändert werden.
Frage: Wie kann ich die Software installieren?
Antwort: Im Download-Paket befindet sich eine "readme.txt" mit den Anweisungen. Die Software läuft unter Linux (getestet mit Ubuntu 12.04LTS und 14.04LTS).
Ihr solltet in der Lage sein, einen Sketch auf einen Arduino hochzuladen. Anweisungen dazu gibt's auf der Arduino-Seite www.Arduino.cc
Frage: Wenn ich "commands-CNC" starte, erscheint die Meldung: "Waiting for 'X' from Arduino (Arduino pluged in?)...", aber nichts passiert.
Antwort: du musst als Benutzer zur Gruppe 'dialout' gehören. Dazu ein Terminalfenster öffnen und in der Kommandozeile den Befehl:
sudo adduser [Dein Benutzername] dialout
Ersetze dabei [Dein Benutzername] mit dem Namen deines Benutzerkontos. Das wird dir angezeigt durch den Befehl:
whoami
Frage: Wenn ich "commands-CNC" starte, erscheint immer noch die Meldung: "Waiting for 'X' from Arduino (Arduino pluged in?)...", obwohl ich zur Gruppe 'dialout' gehöre.
Antwort: Die Bezeichnung der USB-Schnittstelle kann "/dev/ttyUSB0" oder "/dev/ttyACM0" lauten. Um die richtige Bezeichnung zu finden müst ihr wie folgt vorgehen:
1.) Arduino von der USB-Schnittstelle trennen.
2.) Terminal fenster öffnen (Alt + 'T') und den Befehl
ls /dev
eingeben. Nun werden alle angeschlossenen Geräte (sind sehr viele) aufgelistet.
3.) Arduino an USB anschließen.
Erneut den Befehl
ls /dev
eingeben. Nun sollte ein weiteres Gerät gelistet werden. Dieses ist die Bezeichnung für euren Arduino die ihr finden und euch merken müsst.
Lautet die Bezeichnung des Arduino "/dev/ttyACM0", so ist alles in Ordnung. Ist die Bezeichnung hingegen "/dev/ttyUSB0", so müsst ihr den Quellcode anpassen.
Ändert die Zeilen im Quellcode von "commands-CNC.c" und kompilliert das Programm erneut:
//#define ARDUINOPORT "/dev/ttyUSB0"
#define ARDUINOPORT "/dev/ttyACM0"
ändern in:
#define ARDUINOPORT "/dev/ttyUSB0"
//#define ARDUINOPORT "/dev/ttyACM0"
Frage: Wie kann ich die Maschine stoppen, wenn etwas unvorhergesehenes passiert?
Antwort: Auf dem Arduino Uno befindet sich ein kleiner Taster. Damit wird der Mikrocontroller resettet und alle Motoren sollten stoppen.
Anschließend kann das Programm "commands-CNC" mit 'Esc' oder 'Strg + C' beendet werden.
Wer wie ich ein Computernetzteil mit Schalter verwendet, kann auch diesen Schalter betätigen. Wird die Spannung wieder eingeschaltet, läuft die Maschine weiter.
Der aktuelle Vorgang kann auch durch Drücken von 'Esc' abgebrochen werden. Die Maschine fährt dann zurück zum Nullpunkt.
Frage: Ich habe da aber noch eine Frage!
Antwort: Wenn eure CNC nicht so arbeitet wie erwartet, schreibt mir eine Mail an info@HomoFaciens.de mit GENAUER Beschreibung des Problems. Aussagen Wie "Die LED leuchtet nicht" (welche LED?) oder "Es passiert nix" helfen mir nicht weiter! Ihr solltet auch genau sagen, was ihr schon versucht habt, um das Problem zu lösen. Vorteilhaft ist es ein Foto oder kurzes Video an die Mail anzuhängen, damit ich mir ein Bild von eurem Problem machen kann. Schreibt keine Romane, aber mehr als vier bis fünf Sätze sollten es schon sein.
Eine gut gestellte Frage ist die halbe Antwort und je schneller ich antworten kann, um so schneller kann ich mich wieder meinen Projekten widmen.
Verwendet die Kommentarfunktion wirklich nur bei kleinen Problemen oder für Verbesserungsvorschläge. Eure Mailadresse hat in den Kommentaren nichts verloren! Wenn ihr wünscht, dass ich euch eine Mail mit der Antwort schreibe, müsst ihr mir schon eine Mail schreiben!



<<< CNC v2.0         CNC v3.x Serie >>>


Startseite    Das Projekt    Technik    RoboSpatium    Unterstützung    Stichwortverzeichnis    Neuigkeiten    Download    Reaktionen    Spiele    Verweise    Kauftipps    Kontakt    Impressum   





Google Plus Twitter Facebook YouTubt Hackaday Patreon TPO
Counter 1und1