EggDuino – Eier bemalen mal anders

Warum macht man das?

Ich bin eher zufällig auf ein Video gestoßen, wo mit so einem EggDuino (EggBot) ein Ei sehr ansprechend mit einem grafischen Muster bemalt wurde. Nun bin ich nie wirklich jemand gewesen, der Ostereier bemalt hat. Da ich aber zufällig bis auf den Servo alle Bauteile in der Elektronikkiste liegen hatte, hat sich der Aufwand auf das Drucken des Gehäuses, die Beschaffung des Servos und den Zusammenbau beschränkt. Das war es mir wert. Ganz nebenbei denke ich, es ist auch ein prima Geschenk für einen Teenager, der sich dafür sicher begeistern kann, der hiermit seine kreative Ader ausleben kann. Oder ich zerlege ihn  wieder und nutze die Bauteile anderweitig. Oder ich baue nochmal um. Mit einem etwas größeren Gehäuse und einem kleinen Zusatz wäre es auch möglich, Gläser, Christbaumkugeln oder sonstiger zylindrischer oder kugelförmiger Körper zu gravieren. Schaun wir mal ..

Die Druckteile

Wer sich mal im Netz umschaut, der findet massig Varianten dieser EggBots. Das Prinzip ist aber bei allen das Gleiche: Es kommen zwei Schrittmotoren und ein Modellbauservo zum Einsatz. Als Steuerung wird ein Arduino und ein CNC-Shield eingesetzt. Das Design kann mit der freien, kostenlosen, quelloffenen Software Inkscape erstellt werden. Über eine Erweiterung im Inkscape wird der EggBot direkt angesteuert, so dass keine zusätzliche Software zur G-Code Erstellung und Verarbeitung nötig ist. Die Software ist für Windows, Linux und Apple-OS verfügbar, so kann der EggBot von jedem betrieben werden, der eines dieser Betriebssysteme im Einsatz hat.
Die Hardware wird in einem Gehäuse zusammengefasst – auch hier ist so viel Auswahl vorhanden, dass jeder mit seinen Möglichkeiten zurecht kommt. Ob nun aus Sperrholzteilen mit Gewindestangen, lasergeschnitten, gefräst oder wie bei mir mit dem 3D-Drucker erzeugt.
Für mich war eben die Möglichkeit, das Gehäuse per 3D-Drucker herzustellen, der ausschlaggebende Grund, das Ding zu bauen, denn hier beschränkt sich der Aufwand auf das Anpassen der Druckdaten an meinen 3D-Drucker.
Aber auch hier gibt es unzählige Varianten. Ich habe mich für diese hier von Imko entschieden: Okmi EggBot.
Warum? Na ja, das Design hat mir gefallen und ich mag die Lösung, dass die Elektronik gut verpackt ist – auch im Hinblick darauf, das dass evtl. an einen Jugendlichen zu verschenken.
Das Gehäuse selbst ist sehr Stabil und war mit rund 24 Stunden der zeitaufwendigste Teil des ganzen Projektes. Ich habe mich für das Gehäuse für die 8mm-Achse entschieden. einfach, weil ich ein Stück 8mm Alu-Rohr zu Hand hatte und auch die passenden Kugellager in der Teilekiste verfügbar waren. Allerdings muss dann der Eihalter rechts und der Drehgriff am Ender der Achse aufgebohrt werden.
Eigentlich sind für den Aufbau Vierkantmuttern vorgesehen, die hatte ich nicht da, aber es hat auch super mit Sechskantmuttern funktioniert. Die gehen ziemlich stramm rein, bleiben dann aber an ihrer Position. Ich musste noch die Achsbohrungen für den Stiftservo nachbohren, sowie die beiden Löcher für die Abdeckung der Elektronikbox. Ansonsten waren die Teile super maßhaltig.

Der Zusammenbau

Der Zusammenbau des EggDuinos ist schnell erledigt. Ich habe zuerst die Muttern in ihre Aussparungen gedrückt und die Schrauben dazu angesetzt. Für die Servowellen habe ich 8mm Schraiben benutzt, ebenso für die Servobefestigung und die Elektronikboxabdeckung. Für das Scharnier des Stiftarmes kamen zwei 12mm Schrauben zum Einsatz, ebenso für die Befestigung des Lüfters. Der Stift selbst wird mit einer 20mm Schraube festgeklemmt und der Arduino hält mit zwei 6mm-Schrauben an seinem Platz.
Zuerst habe ich den Stromanschluss-Stecker mit der Heißklebepistole in die passende Öffnung geklebt. Ich habe Einschraubbuchsen in der Bastelkiste. Würde ich nochmal anfangen, dann würde ich vor dem Druck die Öffnung verschließen und etwas weiter oben eine neue Öffnung vorsehen, wo ich die Einschraubbuchse montieren kann.

Als nächstes kam der Lüfter an seinen Platz. Die Montage ist ein wenig fummelig, deshalb habe ich ihn zuerst montiert, auch wenn die Beschreibung empfiehlt, erst den Servostecker durchzustecken.
Dann kam der Uno an die Reihe, den ich nur mit zwei der vier vorgesehenen Schrauben befestigt habe. Aber der saß auch ganz ohne Schrauben schon perfekt und quasi unverrutschbar im Gehäuse.

Im Folgenden habe ich die Nema 17-Schrittmotoren ins Gehäuse geschraubt. Im Gehäuse sind Schlitze vorgesehen, um die Kabel direkt in die Elektronikbox zu führen. Diese sind für Schrittmotoren mit einer Länge von 48mm positioniert. Ich hatte Motoren mit 40mm Länge in der Bastelkiste, deshalb habe ich den Kabelausgang nach oben gedreht und die Kabel von da aus durch die Öffnung geführt. Alternative wäre gewesen, neue Motoren zu kaufen oder zusätzliche Öffnungen ins Gehäuse zu machen – war mir zu viel Aufwand.
Die Kabel habe ich gekürzt und dann wieder mit Steckern versehen. Geht auch ohne, es ist noch genug Platz in der Elektronikbox.

Als nächstes habe ich den Servo am Stiftarm montiert, der dann auf die Schrittmotor-Welle kam. Im Anschluss daran die beiden Kugellager, den Eihalter auf dem Schrittmotor und die Welle zusammengebaut und montiert.

Die Elektronik

Jetzt sind wir schon fast einsatzbereit. Auf der Werkbank liegt noch das CNC-Shield und die beiden Treiber.  Vor der Montage der Treiber die Jumper nicht vergessen! Es müssen alle drei gesteckt sein. Vorsicht auch beim Aufstecken der Treiber, werden die falschrum aufgesteckt, geben sie ganz kurz Rauchzeichen und gehen dann in die ewigen Jagdgründe!

Bevor ich das CNC-Shield auf den Uno stecke, schließe ich ihn erstmal an die 12V-Spannungsversorgung an und stelle die Treiber ein. Dazu einen kleinen Schraubendreher in das Poti stecken und am Metall des Schraubendrehers gegen Masse die Spannung messen und auf 0,7V einstellen. Kühlkörper auf den Treibern auch nicht vergessen! Auf der Unterseite des Shields habe ich noch einen 120 Ohm-Widerstand zwischen +5V und Reset eingelötet. Manche verwenden eine 100uF-Kondensator zwischen Reset und Masse, aber so einen hatte ich gerade nicht da.

Dann kann das CNC-Shield auf den Uno gesteckt werden. Das ist auch wieder ein wenig fummelig. Man kann sich bei den Montagebohrungen, die näher an der Rückseite des Gehäuses liegen, orientieren. Oder man nimmt für die Befestigung des Unos Stehbolzen, dann sieht man es noch leichter und kann das CNC-Shield auch befestigen.

Wenn alles sitzt, kann die Stromversorgung angeklemmt werden und die Stecker für Schrittmotor und Servo gesteckt. Der Servo hat einen 3poligen Anschluss. Ich habe die Kontakte aus dem Gehäuse ausgeschnappt und ein ein zweipoliges, sowie ein einpoliges Gehäuse eingeschnappt. So passt das dann aufs CNC-Shield und ist auch isoliert. Bevor dann letztendlich der Deckel draufkommt, die Schrittmotoren einmal testen. Wenn sie verkehrt herum laufen, dann einfach die Stecker auf dem CNC-Shield abstecken und um 180 Grad versetzt wieder aufstecken.

Ok, so weit so gut. Jetzt geht’s ans Eingemachte: Die Inbetriebnahme.

 

 

Problembehebung EggDuino/Inkscape

Wie unzählige Beiträge im Netz dokumentieren, ist das häufigste Problem beim EggDuino nicht der Aufbau des Plotters, sondern vielmehr, diesen dann auch von Inkscape aus anzusteuern. Auch ich habe etliche Stunden damit verbracht und möchte deshalb hier beschreiben, wie ich ihn zum Laufen bekommen habe. Bei mir läuft er auf Linux (Ubuntu) und Windows 10.

Ich weiß nicht, wie oft ich den Uno neu programmiert habe, das Unterverzeichnis ‚Erweiterungen‘ gelöscht, neu befüllt und die Dateien darin bearbeitet.
Jedes mal, wenn ich Inkscape aufgerufen und die Erweiterung EggBot Control gestartet hab, ich habe immer wieder diese Fehlermeldung bekommen:

‚Failed to connect to EggBot‘

Die Lösung ist eigentlich ganz einfach – ich kam trotzdem erst darauf, als ich das Ganze mal unterbrochen und mich am nächsten Tag erneut damit auseinandergesetzt habe.

Zuerst mal brauchen wir zwei Angaben: Den Namen des Arduinos, die VID und die PID. Am Einfachsten bekommt man die über die Arduino IDE ausgelesen.

Dazu die IDE starten, bei Board das verwendete Board auswählen und bei Port den USB-Port angeben, an dem der EggBot angeschlossen ist. Dann auf ‚Boardinformationen holen‘ klicken.

Voila.  Es wird der Name, VID und PID angezeigt und die Seriennummer. Die benötigen wir aber nicht. Die ersten 3 Einträge notieren.

Nachtrag: Bei Chinaklon-Unos steht bei BN: ‚Unbekanntes Board‘ oder sowas in der Art. Das ist dann trotzdem der Name, der verwendet werden muss! 

Als nächstes gehen wir in den Inkscape Ordner ‚Erweiterungen.

In Windows findet man den hier:
C:\Users\User\AppData\Roaming\inkscape\extensions  (wobei User mit dem eigenen Profilnamen ersetzt werden muss)

Oder im Programmverzeichnis auf der Festplatte:
C:\Program Files\Inkscape\share\extensions (64Bit)
C:\Program Files (x86)\Inkscape\share\extensions (32Bit)

In Linux befindet sich das Verzeichnis hier:

/home/user/.config/inkscape/extensions

* User habe ich hier als Platzhalter verwendet, das bitte mit dem Benutzernamen tauschen, mitz dem man sich am System anmeldet.

Hier öffnen wir die Datei ebb_serial.py und suchen nach folgenden Einträgen:

 

Hier den Namen und die Adresse eintragen

Hier tragen wir die vorher notierten Angaben ein.
Zusätzlich habe ich bei mir vorsichtshalber den Timeout auch erhöht. Bei mir selber konnte ich das Problem zwar nicht feststellen, aber ich denke mir halt, lieber schließe ich das aus, als dass es dann irgendwann zu Problemen kommt und ich fange wieder an mit der Fehleranalyse.
Der Eintrag findet sich auch wieder in der Datei ebb_serial.py.

Nachdem ich diese Einträge gemacht habe, hat Inkscape sich problemlos mit dem EggDuino verbunden.

Troubleshooting (Fehlersuche)

Nachdem ich nun schon ein paarmal bei Anderen geholfen habe, den ‚SphärenPlotter‘ zum Laufen zu bekommen, ein paar Tipps, die ich ggf. weiter ergänzen werde.

Der wichtigste Tipp: Es gibt unterschiedliche Treiber für die Schrittmotoren. Viele orientieren sich beim Einstecken auf dem CNC-Shield an den Potis – ein fataler Fehler! Denn die sind – je nach Hersteller – unterschiedlich positioniert.
Meine Empfehlung deshalb: Immer am EN-Pin orientieren! Der ist sowohl auf dem Treiber als auch auf dem CNC-Shield beschriftet. Wenn der EN-Stift von der Treiberplatine in der EN-Buchse des CNC-Shield steckt, dann sitzt der Treiber richtig herum – egal, wo sich das Poti auf der Platine befindet.
Verkehrt herum aufgesteckt, haucht der Treiber mit ein wenig weißem Rauch in Sekundenbruchteilen sein Leben aus.

So muss der Treiber aufgesteckt werden

Der Pfeil zeigt an, wo bei mir die Steuerleitung des Servos aufgelegt wird. Das ist aber unterschiedlich – je nach verwendeter Firmware! Ich habe die Eggduino-Firmware von Joachim Cerny in der Version V1.6a im Einsatz.