Etch-a-Sketch LOGO - EASiLOGO (4 / 8 steg)
Steg 4: Låg nivå driver: GCODE
(Bild med tillstånd från http://www.gcodemcode.com/gcode.htm)
Datorn kommer att behöva skicka ritning kommandon till Arduino. Jag tänkt använda fjärranrop, jag tänkte genomföra Hewlett Packard grafik språk (HPGL) som används i Pennplottrar, men i slutändan för skojs skull jag beslutade att använda GCODE som min ritning protokoll - GCODE är hur laserklingor och 3D-skrivare och många andra CNC maskiner drivs, så det kändes som bra erfarenhet att lära sig lite om hur det fungerat. Jag hittade en Arduino GCODE tolk och modifierade den som passar mitt projekt. Mestadels mods var bara att ta bort den z-kod som inte behövs (du kan inte lyfta eller sänka pennan i en etch-a-sketch - när du flyttar, det alltid ritar en linje) men den viktigaste ändringen var att ta bort vissa maskin-beroende stepper-motor-köra kod och ersätta det med bärbara samtal till Adafruit bibliotek.
Under denna process upptäckte jag att AccelStepper biblioteket inte är lämplig för rörelser som har både en X och en Y-komponent - istället för att rita en rak linje du får något som börjar lite böjda. Det är OK för horisontell eller vertikal flyttar men för diagonal flyttar du måste använda en konstant hastighet, eller (som jag sluttat med upp gör) beräkna din egen diagonal flyttar genom att bryta ner en diagonal linje in massor av 1-steg horisontella och vertikala rörelser.