Arduino CNC (2) GRBL LA solution pour piloter une petite CNC

Arduino et GRBL – LA solution pour piloter une petite CNC

Beaucoup d'améliorations sont régulièrement faites sur GRBL. J'ai donc choisi de documenter comment travailler sur la dernière version extraite de GitHub.

https://github.com/grbl/grbl

Cette version dispose d'une implémentation particulièrement complète du Gcode, d'un support de 3 boutons (Start / Feedhold / stop), des interrupteurs d'origine machine sur 3 axes, de la gestion du démarrage de la broche, de son sens, de l'arrosage, etc.. Elle a fait l'objet d'optimisations qui permettent de gérer des vitesses de pas jusqu'à 30Khz par axe… Depuis peu, elle supporte également une broche pilotée en vitesse avec du PWM (Pulse Width Modulation).

Impressionnant.
Pré requis :

Un PC sous Windows ou Linux, ou un MAC

  • L'environnement de développement Arduino (ou une chaine de développement AVR. )
  • Une shield spécialisée, disposant des contrôleurs par à pas. Ici nous allons utiliser celle de Protoneer . Celle shield est très puissante car elle permet de supporter jusqu'à 4 axes, et permet d'utiliser absolument toutes les fonctionnalités de GRBL.

Arduino CNC (2) GRBL LA solution pour piloter une petite CNC
Arduino CNC (2) GRBL LA solution pour piloter une petite CNC

Elle supporte notamment :

  • Un fusible ré-armable pour protéger les cartes moteurs
  • Un connecteur à vis pour brancher l'alimentation 12 à 36V
  • 4 contrôleurs moteur pas à pas
  • Le 4e contrôleur peut être câblé soit en 4e axes (support expérimental sous Grbl, via les broches D12 et D13, c'est à dire à la place des 2 broches de commande de la broche), soit pour cloner les signaux d'un axe donné (X, Y ou Z au choix par jumper). C'est très pratique pour piloter une machine qui dispose de 2 moteurs sur un même axe (ex : Shapeoko).
  • Supporte des drivers jusqu'au DRV8825, qui supportent le 32e de pas.
  • Les signaux de commande moteur sont également tous disponibles sur un connecteur spécifique pour permet le test et la visualisation (ex:: oscilloscope) à des fins de debug
  • Support de 3 interrupteurs de détection de limite machine, qui sont disponibles sur 2 connecteurs sur la carte, permettant de câbler un limit+ et un limit – sur chaque axe. A noter qu'il n'y a en fait physiquement qu'un seul signal limite , "Limit X-" et "Limit X+" sont donc une vue de l'esprit, et arrivent sur la même fonction de GRBL : "LimiteX".
  • Support de la commande de broche (M/A) et de son sens (CW/CCW) sur 2 broches séparées
  • Support d'une commande de pompe d'arrosage (coolant)
  • Support pour 3 boutons externes : "Pause/Hold", "Resume/Run" et "Stop"
  • Support pour un poussoir d'arrêt d'urgence, câblé sur le Reset de l'Arduino : il n'y a pas plus efficace pour arrêter un usinage en cours…
  • Sortie sérielle TTL disponible pour extension ultérieure
  • Sortie I2C disponible pour extension ultérieure

Arduino CNC (2) GRBL LA solution pour piloter une petite CNC

Notes importantes :

  • Cette shield n'est pas compatible avec la commande de broche en PWM. En effet, lors de l'activation de cette fonction de contrôle PWM, GRBL permute les fonctions "Z limit" et "Spindle Enable". Du coup la sérigraphie de la shield est fausse… Si vous savez vus accomoder de ce petit défaut et que vous avez vraiment besoin de cette fonction, vous trouverez plus d'infos ici : https://github.com/grbl/grbl/wiki/Connecting-Grbl
  • Il n'y a pas de sortie dédiée pour mettre un détecteur de longueur d'outil. Il est toutefois possible d'en raccorder un entre les signaux "Scl" et "Gnd" du connecteur I2c. Testé et cela marche… (cf plus bas).
  • Pensez à mettre des radiateurs sur les Pollolu, et à les refroidir avec un ventilateur…
  • Pour des moteurs de plus de 1.5A, privilégier les drivers "DRV8825" qui permettent de délivrer plus de courant

—————————————————————————————————————–

Configuration :

Il va tout d'abord falloir récupérer la dernière version de l'environnement de développement Arduino sur le site officiel (http://arduino.cc/en/Main/Software ) et l'installer. Je ne donne pas de mode opératoire détaillé, celui-ci étant déjà très largement documenté.

L'environnement étant installé, nous allons ensuite paramétrer l'ordinateur pour pouvoir utiliser le compilateur C pour AVR en ligne de commande. Cette manipulation est nécessaire, car le programme que nous allons envoyer à l'Arduino n'est pas un sketch Arduino, mais bien un programme en C AVR, optimisé pour le processeur. Mais afin de nous éviter d'installer une chaine de compilation complète, nous allons utiliser cette qui est installée dans l'environnement Arduino, et qui est utilisée lors de la compilation de Sketches de façon transparente par celui-ci.

La suite au prochain ticket

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *