Étape 4: Bas niveau pilote : GCODE
(Image courtoisie de http://www.gcodemcode.com/gcode.htm)
L’ordinateur devront envoyer des commandes de dessin à l’Arduino. J’ai envisagé d’utiliser des appels de procédure distante, j’ai pensé à la mise en œuvre de Hewlett Packard Graphics Language (HPGL) tel qu’utilisé dans traçantes, mais en fin de compte pour le fun, que j’ai décidé d’utiliser GCODE comme mon protocole dessin - GCODE est comment les coupeurs de laser et imprimantes 3D et beaucoup d’autres machines de commande numérique par ordinateur est conduits, alors il a semblé bonne expérience pour connaître un peu comment il fonctionnait. J’ai trouvé un interprète Arduino GCODE et l’a modifié en fonction de mon projet. Pour la plupart les mods ont été juste pour enlever le code de l’axe z qui n’était pas nécessaire (vous ne pouvez pas monter ou descendre la plume dans un etch-a-sketch - lorsque vous déplacez, il attire toujours une ligne) mais la modification principale était de supprimer du code dépendant de la machine de stepper-moteur-conduite et remplacez-le par portables appels aux bibliothèques Adafruit.
J’ai découvert au cours de ce processus que la bibliothèque de AccelStepper n’est pas adaptée aux mouvements qui ont un X et un composant Y - au lieu de dessiner une ligne droite, vous obtenez quelque chose qui commence un peu courbé. C’est OK pour horizontal ou vertical se déplace mais pour diagonal se déplace il faut utiliser une vitesse constante, ou (comme j’ai fini par faire) calculer votre propre diagonale se déplace de faire tomber une ligne diagonale en lots de 1 étape des mouvements horizontaux et verticaux.