Stap 4: Low-level bestuurder: GCODE
(Afbeelding afkomstig van http://www.gcodemcode.com/gcode.htm)
De computer moet tekenen om opdrachten te verzenden naar de Arduino. Ik vond via RPC-aanroepen, ik dacht over het implementeren van Hewlett Packard Graphics taal (HPGL) zoals gebruikt in de pen-plotters, maar op het einde voor de lol die heb ik besloten om het gebruik van GCODE als mijn tekening protocol - GCODE is hoe laser scharen en 3D printers en vele andere CNC-machines worden gedreven, dus het leek goede ervaring om te leren een beetje over hoe het werkte. Ik vond een Arduino GCODE tolk en bewerkt om het aan mijn project. Meestal de mods moesten gewoon verwijderen van de z-as code die niet nodig was (u kunt geen lift of verlagen van de pen in een etsen-a-schets - wanneer u beweegt, het altijd wordt een lijn getekend), maar de belangrijkste wijziging was om sommige machine-afhankelijke stepper-motor-driving code te verwijderen en te vervangen door draagbare dringt erop aan dat de Adafruit bibliotheken.
Tijdens dit proces ontdekte ik dat de AccelStepper-bibliotheek is niet geschikt voor bewegingen die zowel een X als een Y-component hebben - in plaats van een rechte lijn je iets dat een beetje gebogen begint. Het is OK voor horizontale of verticale beweegt maar voor diagonaal beweegt je moet gebruik maken van een constante snelheid, of (zoals ik omhoog doen beëindigde) berekenen uw eigen diagonaal beweegt door afbraak van een diagonale lijn in percelen van 1-stap horizontale en verticale bewegingen.