Notebookcheck Logo

Weihnachstprojekt für Ma(r)ker: Weihnachtsbaumkugeln vom Spherebot bemalen lassen

Weihnachtsbaumkugeln vom Spherebot bemalen lassen
Weihnachtsbaumkugeln vom Spherebot bemalen lassen
Es sind weniger als 20 Tage bis Heiligabend und Last-Minute-Einkäufe werden wohl auch in diesem Jahr schwierig. Da kann der Spherebot Abhilfe mit personalisierten Weihnachtsbaumkugeln schaffen. Mit unserer Anleitung läuft der Spherebot unter Windows. Die Kosten für das DIY-Projekt betragen rund 50 €.

Ein Spherebot oder auch Eggbot bemalt alles was rund ist mit Mustern vom PC. Auf thingiverse.com und instructables.com gibt es mehrere Anleitungen und Vorlagen für die kleinen Roboter, die man wohl auch als Kugelplotter bezeichnen kann. Die Materialliste ist hier bei den meisten Spherebots doch recht ähnlich. Zwei Nema 17 Motoren, ein kleiner Servo, ein Arduino Uno, CNC-Shield und Schrittmotortreiber werden benötigt. Hinzu kommen noch ein Netzteil, Schrauben, eventuell Kabel, Kugeln und passende Stifte. Bei Amazon kostet die komplette Materialliste derzeit rund 50 Euro. Wer einen 3D-Drucker hat, kann sich wohl bei diesem auch die teuren Nema-17-Motoren und Schrittmotortreiber für das Projekt ausleihen. 

Bauanleitungen - die Qual der Wahl

Auf diversen Bastelseiten gibt es viele mehr oder weniger einfache Anleitungen für einen Eggbot. Viele lassen sich größtenteils mit einem 3D-Drucker herstellen. Mindestens 20 solcher Eggbots findet man unter diversen Namen via thingiverse.com.  Eine kleine Auswahl habe ich hier in einer Collection zusammengestellt. Findige Bastler können bei manchen Designs wohl ganz auf einen 3D-Drucker verzichten und nur mit Holz, Schrauben, Kugellagern und einigen Winkeln arbeiten. Ich selbst habe das in meinen Augen sehr clevere Design von Herbert Schützeneder gewählt. Dessen Eggbot kann fast vollständig gedruckt werden. Grundsätzlich ist die Einkaufsliste bei den meisten Eggbots sehr ähnlich. Das liegt auch daran, dass das Original von Evil Mad Scientist schon etliche Jahre als Open-Source-Projekt zur Verfügung steht. So werden größtenteils nur Anpassungen am Gehäuse vorgenommen, um die Nachbauten an verschiedene Herstellungsmethoden anzupassen.

Materialliste für den EggDuino von Herbert_b1:

2 × Nema 17 Schrittmotor
1 × CNC-Kit mit Arduino kompatiblem Entwicklerboard
1 × Servomotor SG90 oder KY66
1 × M3-Schraubenset 
1 × 608 Kugellager
1 × 10 µF bis 100 µF Kondensator
1 × 12 V bis 24 V Netzteil
geeignete Stifte

Bei mir stammen die Schrittmotoren und die TMC2100 Schrittmotortreiber aus einem 3D-Drucker, den ich nicht mehr in Benutzung habe. Als Netzteil verwende ich ein altes Laptop-Netzteil mit 19 V. Die höhere Spannung ist für das CNC-Shield eher ein Vorteil und der Arduino-Uno-Klon wird per USB mit Strom versorgt. Mit der höheren Spannung können die Motoren bei gleicher Leistung mit weniger Stromstärke angesprochen werden. Daraus resultiert weniger Verlustwärme an den Motoren und der Elektronik. Auch ein Kugellager musste ich nicht kaufen, da die 608-Kugellager denen in Skateboards und Inlineskatern entsprechen. 

Benötigte Programme herunterladen, installieren und modifizieren

Der Arduino Uno (Klon) kann mit der Arduino IDE programmiert werden. Die Software kann über verschiedene Quellen bezogen werden oder von www.arduino.cc/en/software heruntergeladen werden. Auf Windows kann die App auch über den Microsoft Store installiert werden. 

Um die Bilder und Muster für die Weihnachtsbaumkugel zu erstellen, wird das Open-Source-Programm Inkscape mit einer EggBot-Erweiterung benötigt. Die derzeit neuste Version 1.1 kann hier über die Projektseite geladen und installiert werden. 

Eine fertige Firmware für den Arduino Uno (Klon) findet man auf Github im Eggbot-Repository von Plex3r. Hier kann man mit einem Klick auf das grüne Code-Element den Download als Zip-Datei starten. Die Anleitung von Plex3r zum Verändern der Eggbot-Erweiterung funktioniert leider nicht mehr mit den neueren Software-Versionen.

Anstatt dessen wird die Aktuelle Version 2.81 der EggBot-Software aus dem Rpositorium von Evil Mad Scientist geladen und modifiziert. Aus dem Release Ordner werden die beiden Archive eggbot-inkv1r2.zip und EggBotExamples_v281.zip benötigt.

Den Arduino Uno Programmieren

Zunächst sollte die Arduino IDE installiert und anschließend die Firmware auf den Arduino übertragen werden. Nach der Installation der IDE wird dazu als Erstes die EggDuino-master.zip-Datei geöffnet und im Benutzer-Ordner Dokumente/Arduino entpackt. Damit die IDE auch etwas mit dem Ordner anfangen kann, muss dieser auf EggDuino umbenannt werden. Mit einem Doppelklick auf EggDuino.ino im EggDuino-Ordner wird die Datei geöffnet. Jetzt kann man den Arduino Uno (Klon) per USB-Kabel mit dem Computer verbinden. Über Werkzeuge>Port wird das Entwicklerboard ausgewählt. Anschließend kann man das Programm, so wie es ist hochladen. Später wird alles so angeschlossen, dass die programmierte Pinbelegung passt.

Um die EggBot-Erweiterung für Inkscape im nächsten Schritt an den EggDuino anzupassen, wird noch die Hardware-ID des Entwicklerboards benötigt. Diese wird mit der Arduino IDE über Werkzeuge>Boardinformationen hohlen abgerufen. VID und PID können per STRG+C kopiert werden und dann in ein Textdokument eingefügt werden. Diese Informationen benötigt man für die Anpassung der Inkscape-Erweiterung.

Erstellen des Verzeichnisses
Erstellen des Verzeichnisses
Öffnen des EggDuino-Sketch' und Auswählen des Arduino Uno
Öffnen des EggDuino-Sketch' und Auswählen des Arduino Uno
Hochladen des Sketch'
Hochladen des Sketch'
Abrufen von VID und PID
Abrufen von VID und PID

EggBot-Erweiterung Modifizieren und Installieren

Die Zip-Datei eggbot-inkv1r2.zip enthält die komplette EggBot-Erweiterung für Inkscape. Bevor die Erweiterung jedoch in Inkscape integriert werden kann, muss sie an den EggDuino angepasst werden. Als erstes wird das Archiv an einem beliebigen Ort entpackt. Im entpackten Ordner muss nun die Datei ebb_serial.py gesucht werden. Diese befindet sich unter eggbot-inkv1r2\axidraw_deps\plotink. Mit dem Editor geöffnet, kann das Python-Script bearbeitet werden. In Zeile 65 [ if port[2].startswith("USB VID:PID=04D8:FD92"):  ] wird die Hardware ID des originalen EggBots gesucht. Diese muss auf den Eggduino mit den zuvor bestimmten Werten für VID und PID geändert werden. 
In meinem Fall lautet die Zeile dann also: [ if port[2].startswith("USB VID:PID=2341:0043"): ]

Beim Arduino Uno und seinen Klonen gibt es verschiedene Hardware-IDs dementsprechend muss der Wert an die eigenen Werte angepasst werden. Ein einfaches Kopieren meiner Änderung führt unter Umständen nicht zum Erfolg. 

Das geänderte Python-Skript
Das geänderte Python-Skript

Nachdem die Änderung gespeichert ist, wird der komplette Inhalt vom Ordner eggbot-inkv1r2 in den Extensions-Ordner von Inkscape 1.1 verschoben. Ist das Standardinstallationsverzeichnis bei der Installation nicht verändert worden, befindet sich dieses unter: C:\Program Files\Inkscape\share\inkscape\extensions

Öffnet man nun Inkscape, sollte sich Eggbot unter Erweiterungen finden lassen. 

Ordner für die Erweiterungen
Ordner für die Erweiterungen
Eggbot Erweiterung
Eggbot Erweiterung

Zusammenbau - Wohin mit den Kabeln?

Sind die einzelnen Bauteile erst mal ausgedruckt, dann läuft der Zusammenbau vom ausgedruckten Projekt wohl beinahe selbsterklärend. Mehr Probleme verursacht da wohl die Elektronik. Aber viel falsch machen kann man auch hier nicht. 

Schrittmotortreiber einsetzen

CNC-Shield Jumper
CNC-Shield Jumper

Zunächst sollten die Jumper (Kurzschlussbrücken) gesetzt werden, um einzustellen, wie fein sich die Motoren bewegen können. Je nach Schrittmotortreiber müssen die Jumper unterschiedlich gesetzt werden. Es soll ein 1/16-Micro-Stepping erreicht werden. Bei dem oben verlinkten Set sind vier A4988-Module enthalten. Um mit diesen das 1/16-Micro-Stepping zu erreichen, müssen jeweils 3 Jumper gesetzt werden. Im Bild rechts sind die entsprechenden Stellen grün markiert und die Verbindungen Gelb. M0, M1 und M2 müssen verbunden werden. Für den Eggbot sind nur X- und Y-Motor notwendig.

Verschiedene Schrittmotortreiber am CNC-Shield
Verschiedene Schrittmotortreiber am CNC-Shield

Im nächsten Schritt werden die Kühlkörper auf die Schrittmotortreiber geklebt und die Treiber in die Steckplätze für X und Y gesteckt. Hier muss auf die Ausrichtung geachtet werden. Normalerweise ist an allen Pololu-kompatiblen Schrittmotortreibern der EN-Pin markiert. Dieser muss mit dem EN-Pin auf dem CNC-Shield verbunden sein, dann stimmt die Ausrichtung. 

Über Spannungen und Einstellungen für die Stromstärke sollte man sich im Datenblatt der jeweiligen Hersteller informieren. 

Auto Reset am Arduino Uno deaktivieren

getrennter REST Kontakt
getrennter REST Kontakt
CNC-Shield mit eingelötetem Kondensator
CNC-Shield mit eingelötetem Kondensator

Für eine funktionierende Verbindung ist es notwendig den Auto-Reset am Arduino zu deaktivieren. Die erste Möglichkeit dafür ist es einen Kontakt am Arduino UNO zu trennen. Auf dem Boards gibt es immer einen Jumper-Kontakt, der als REST-EN oder REST-ON gekennzeichnet ist. Nachdem das Einplatinenboard programmiert ist, kann dieser Kontakt mit einem Skalpell getrennt werden. Sollte man den Auto-Reset wieder benötigen, kann man eine Lotbrücke setzen. 

Es ist auch möglich den Auto-Reset mit einem Kondensator zwischen dem Reset-Pin und GND-Pin am CNC-Shield zu unterbinden. Der Kondensator muss mindestens eine Kapazität von 10 µF haben. Ein Elektrolyt-Kondensator wird mit dem Minus-Pin am GND-Pin des CNC-Shields verlötet. Keramik und Folienkondensatoren haben keine Polarität. Die Spannungsfestigkeit des Kondensators sollte mindestens der 1,5-Fachen Spannung des gewählten Netzteils betragen.

Kabel einstecken

Alle Eggbots benutzen zwei Schrittmotoren und einen Servo. Der Schrittmotor, welcher die Kugel oder das Ei dreht, wird mit den Kontakten des X-Treibers verbunden, der Schrittmotor für den Stiftarm mit den Kontakten neben dem Y-Treiber. Wie herum die beiden Stecker angeschlossen werden, verändert nur die Drehrichtung. Diese kann später in Inkscape umgekehrt werden. 

Die drei Kabel des Servo-Motors werden an die 5V-, GND- und Z.STEP-Pins des CNC-Shield angeschlossen. Das schwarze Kabel an GND, das rote an 5V und das gelbe an Z.STEP.

Angeschlossener Servo-Motor
Angeschlossener Servo-Motor
Alle angeschlossenen Kabel am EggDuino
Alle angeschlossenen Kabel am EggDuino

Anschließen, Einschalten, Einstellen, Zeichnen

Ist alles fertig zusammengebaut, kann der Arduino mit dem PC und das CNC-Shield mit dem Netzteil verbunden werden. In Inkscape ruft man nun das Kontrollpaneel vom Eggbot auf, hier müssen noch die Einstellungen für den Servo-Motor und den Drehsinn der Schrittmotoren eingestellt werden. Um herauszufinden welche Einstellungen die richtigen sind, muss man wohl ein wenig experimentieren.

Im Tab Manual kann man zunächst den Drehsinn des Stiftarms bestimmen. Dazu wählt man im Drop-Down-Menü Walk Motor 1 (Pen) aus und gibt unten einen positiven Wert ein. Der Stift sollte sich jetzt zur Spitze der Kugel, an der sie aufgehängt wird, bewegen. Je nachdem wie rum man die Kugeln einspannen möchte, ist dies also nach links oder rechts. Den gleichen Vorgang wiederholt man mit dem ausgewählten Menüpunkt Walk Motor 2 (Egg). Die Kugel sollte sich bei Betrachtung vom Aufhängungspunkt im Uhrzeigersinn drehen.

Stimmen die Drehrichtungen nicht überein, müssen im Feld Optionen die Haken bei Reverse motion of Motor beim entsprechenden Motor gesetzt oder gelöscht werden. 

Manuelle Bewegungen Eggbot Control
Manuelle Bewegungen Eggbot Control
Positive Drehrichtungen wenn die Kugelspitze nach rechts im Bild zeigt
Positive Drehrichtungen wenn die Kugelspitze nach rechts im Bild zeigt
Eggbot Optionen
Eggbot Optionen
Einstellungen Servo-Motor
Einstellungen Servo-Motor

Auch die Werte des Servomotors müssen wohl im Normalfall angepasst werden. Hier kommt es darauf an, ob man einen Servomotor mit positiver oder mit negativer Drehrichtung hat. Im meinem Fall ist der In Eggbot Control Setup einzustellende Wert für die Penn-up-Position kleiner als die Pen-down-Position. Hier muss man wohl eine weile Experimentieren um die richtigen Werte zu finden. 

Zeichnen

Plotten
Plotten

Ist alles zusammengebaut, installiert und eingestellt, kann es endlich losgehen mit dem Zeichnen. Im EggBotExamples_v281.zip Archiv gibt es einige Vorlagen zu allen möglichen Anlässen. Diese können nach Herzenslust geladen, verändert und gezeichnet werden. Die Datei EggBotTemplate.svg dient als Vorlage für eigene Designs. Beim Öffnen einiger Vorlagen wird Inkscape vermutlich fragen, ob an den Dateien etwas verändert werden soll, da sie mit einer älteren Version von Inkscape erstellt wurden. Da die neue Eggbot-Software-Version an Inkscape 1.1 angepasst wurde, muss man hier „Diese Datei ist für die Anzeige am Bildschirm gedacht[…]“ auswählen, da es sonst zu Verschiebungen der Ausgabe auf dem EggBot kommt. 

Mit dem fertigen geöffneten Design braucht man nichts weiter tun, als es über das EggBot Control Center plotten zu lassen. Im Tab Plotten klickt man dazu einfach auf "Anwenden".

static version load dynamic
Loading Comments
Diesen Artikel kommentieren / Antworten
Teilen Sie diesen Artikel, um uns zu unterstützen. Jeder Link hilft!
> Notebook Test, Laptop Test und News > News > Newsarchiv > News 2021-12 > Weihnachstprojekt für Ma(r)ker: Weihnachtsbaumkugeln vom Spherebot bemalen lassen
Autor: Marc Herter,  9.12.2021 (Update: 16.01.2022)