*Eggbot mit Arduino Autor: Shark Anleitung unter Windows. Ist aber auch bedingt übertragbar auf Linux und Mac. Der Eggbot ist ein OpenSourceprojekt von evilmadscientist.com. Dieser ermöglicht das Plotten auf sphärischen Körpern.. inklusive Eier ;-) Man kann fertige Eggbots kaufen (ca 200€). Ein Set besteht aus einem Gehäuse und dazu passende Elektronik und Motoren. Es wurde eigens eine spezielle Platine dafür entwickelt. Die Firmware und die Plugins können jedoch minimal Modifiziert werden, um diese mit einem gewöhnlichen Arduino Uno zu betreiben. Ich habe mein eigenes Gehäuse mit OpenSCAD entwickelt, es gibt jedoch zahlreiche Anleitungen im Netz. * Inkscape installieren * Inkscape plugin für eggbot https://github.com/evil-mad/EggBot/releases/tag/2.7.1 (EggBot_extensions_v2.5.zip) -> C:\Users\Username\AppData\Roaming\inkscape\extensions * Treiber für eggbot https://github.com/evil-mad/EggBot/releases/tag/2.7.1 (EggBot_250A.exe für Windoof) * Firmware Eggduino herunterladen https://github.com/cocktailyogi/EggDuino Plugin und Firmware ursprünglich für extra Eggbot-Platine geschrieben. Wenn zB ein Arduino Uno verwendet werden soll müssen zwei kleine Anpassungen vorgenommen werden * in Arduino IDE Firmware anpassen und auf Arduino flashen [1] * Inkscape Plugin anpassen eggbot->arduino [2] *[1] http://forum.arduino.cc/index.php?topic=375719.0 Fehler beim kompilieren. in Helper_Functions.ino "void inline" in "inline void" umbenennen (ca. vier Stellen) evlt. Baudrate höher setzen (115200) Microstepping anpassen bei Bedarf Buttons aktvieren. dazu müssen diese nur entkommentiert werden. Zusätzlich muss ein Prototype declariert werden, da sonst nicht kompiliert wird: * #define prgButton 2 // PRG button (Kommentratstriche entfernen) * void setprgButtonState(void); (diese Zeile hinzufügen) *[2] Inkscape meldet "Failed to connect to EggBot.:(": https://github.com/cocktailyogi/EggDuino/issues/14 ebb-serial.py den Eintrag EiBotBoard in Arduino Uno umschreiben *#if port[1].startswith("EiBotBoard"): *if port[1].startswith("Arduino Uno"): Gehäuse Inspiration: http://www.instructables.com/id/Laser-Cut-Sphere-O-Bot/ http://www.instructables.com/id/Laser-Cut-SphereBot/?ALLSTEPS http://wiki.evilmadscientist.com/Installing_software http://evil-mad.github.io/EggBot/ebb.html *EasyDriver statt Polollu Standardmäßig ist Eggduino.ino auf 16 Microsteps eingestellt. Der Easydriver kann jedoch nur 8. Muss im Sketch angepasst werden. Grundsätzlich sind jedoch die Polollus angemessen, da über den direktantrieb die Auflösung gering ist und zu starke Vibrationen auftreten können. *#define penMicrostep 8 //MicrostepMode, only 1,2,4,8,16 allowed, because of Integer-Math in this Sketch *Schnellere Baudrate Baudrate erhöhen in EggDuino.ino und \inkscape\extensions\serial\serialuitil.py (Holzhammermethode da Bibliothek verändert. Konnte noch nicht die parameter dafür in der eggbot.py finden. Funktioniert aber) *def __init__(self, * port = None, # number of device, numbering starts at * # zero. if everything fails, the user * # can specify a device string, note * # that this isn't portable anymore *baudrate=115200, *GRBL-Shield #define step1 2 #define dir1 5 #define enableRotMotor 8 #define rotMicrostep 16 //MicrostepMode, only 1,2,4,8,16 allowed, because of Integer-Math in this Sketch //Pen Stepper: #define step2 4 #define dir2 7 #define enablePenMotor 8 #define penMicrostep 16 #define servoPin 3 //Servo Achtung. Der Pin befindet sich auf einem Step-Pin. etwas blöd den umzupatchen *SERIALCOM AUTO RESET deaktivieren Warum steht sicherlich irgendwo, aber auf jeden Fall muss das durchgeführt werden, da sonst keine serielle Kommunikation zwischen Inkscape und Arduino stattfinden kann. 10uF Kondensator zwischen GND und RESET http://wp.yellowkazoo.com/?p=177 Hinweis von Pluto: Unter Linux wird bei jedem Verbinden Automatisch der Reset von Arduino durchgeführt. Das wiederum führt zu Störungen in der Verbindung. Zum Beispiel, wenn eine Verbindung nur beim Start von Inkscape aufgebaut wird. Ich meine aber das das unter Windows anders sein sollte(Aber ich nutzte nur Linux). Interessant. Kommt hin! Unter Windows funktioniert es tatsächlich ohne Kondensator. Pluto: Unter LInux würde es noch einen "alten" trick geben, aber der Kondesator dürft einfacher sein. Auf eine Platine habe ich dafür mal ein Jumper eingebaut.