[Tuto] Piloter une CNC avec Arduino et GRBL
Posté sur: juil. 11, 2016
Catégories: Arduino
Dans ce tutoriel, je vais vous expliquer comment piloter très simplement une CNC avec Arduino et GRBL.
Nous verrons comment :
- Installer GRBL.
- Installer Universal GCodeSender.
- Piloter des moteurs pas à pas.
- L'utilité d'un shield CNC.
INSTALLATION DE GRBL
Le pilotage d'une CNC se fait à l'aide de séquences d'instructions en Gcode. GRBL est un outil pratique qui permet d'interpréter le Gcode et de piloter très simplement une CNC avec Arduino.
Pour commencer, assurez-vous d'avoir bien installé la dernière version de l'IDE Arduino (pour nous la version 1.6.9)
Téléchargez la dernière version .zip de GRBL sur Github (pour nous la version 1.1)
Décompressez le dossier grbl-master.
Nous allons maintenant inclure GRBL aux bibliothèques Arduino. Pour cela, deux méthodes sont possibles :
- Via le logiciel Arduino, cliquez sur Croquis puis Inclure une bibliothèque et Ajouter la bibliothèque .ZIP. Sélectionnez le dossier grbl situé dans le dossier grbl-master.
- Autre méthode : Naviguez jusqu'à l'endroit où vous avez installé le logiciel Arduino (généralement dans C:/Program Files). Cliquez sur Arduino puis librairies et collez ici le dossier grbl situé dans le dossier grbl-master. Redémarrez ensuite l'IDE Arduino.
Pour implémenter GRBL sur l'Arduino, rien de plus simple ! Il suffit d'aller dans Fichier > Exemples > grbl > grbl-upload
Téléversez ce script dans l'Arduino et voilà !
On peut configurer GRBL afin qu'il s'adapte aux réglages de notre CNC grâce au moniteur série. Pour cela, ouvrez le moniteur série (Outils > Moniteur série).
Réglez la vitesse à 115200 baud et sélectionnez nouvelle ligne. En tapant $$ vous verrez apparaître la configuration de GRBL.
Pour changer un réglage, tapez $ suivi du numéro du réglage et = la valeur. Par exemple, pour activer les soft limits : $20=1
Je vous renvoie vers ce site pour une explication détaillée des réglages possibles. Pour commencer, les modifications principales à effectuer sont :
- $100, $101, $102 : le nombre de pas par mm pour chaque axe. Ceci dépend du type de châssis que vous avez choisi pour la CNC (courroie, vis...). Je vous renvoie ici pour un calculateur en ligne bien pratique !
- $110, $111, $112 et $120, $121, $122 : définissent respectivement la vitesse en mm/min et l'accélération en mm/sec²
ENVOYER DU GCODE AVEC UNIVERSAL GCODE SENDER
Il existe de nombreux logiciels permettant d'envoyer du G code comme Universal GCode Sender, bCNC, Chilipeppr etc. Universal GCode Sender est l'un des plus faciles à manipuler, c'est donc celui-ci que j'ai choisi pour ce tutoriel.
Pour le télécharger, rendez-vous ici.
Décompressez le dossier et exécutez le fichier .jar pour lancer le programme (attention, il faut avoir installé Java sur votre ordinateur pour pouvoir exécuter un fichier .jar !)
Sélectionnez le port COM sur lequel est branché votre Arduino (pour moi COM21) et cliquez sur Open pour ouvrir la connexion.
Trois onglets sont à votre disposition :
- Commands afin d'envoyer directement du G Code à la machine ou pour configurer GRBL comme avec le moniteur série (avec $$).
- File Mode pour envoyer un fichier G Code à la CNC.
- Machine Control pour piloter manuellement votre CNC.
Voyons de plus près le dernier onglet :
En cliquant sur les touches, vous pouvez faire tourner votre moteur pas à pas, en indiquant avec step size la distance parcourue pour un pas. C'est la manière la plus simple de vérifier que vos moteurs fonctionnent correctement avant de les fixer définitivement dans la CNC et de voir si vous avez bien configuré GRBL.
Une fois que tout fonctionne bien avec le pilotage manuel, vous pouvez aller dans File Mode et envoyer directement votre fichier G code.
Différents logiciels existent pour générer un fichier en G code à partir d'un dessin 2D ou 3D parmi lesquels Inkscape (2D) et Blender (3D).
PILOTER DES MOTEURS PAS A PAS
Avant de monter la CNC, il est important de faire un test avec chaque moteur.
Pour le montage, on aura besoin de :
- Une carte Arduino
- Un moteur pas à pas : pour nous un NEMA 17
- Un contrôleur moteur adapté au moteur : le nôtre est le DRV8825 mais on peut également choisir un autre modèle (comme l'EasyDriver ou l'A4988)
Voici la configuration de l'Arduino pour GRBL :
Pour l'instant, nous n'avons besoin que des pins relatifs au step et à la direction pour chaque moteur. Par exemple pour l'axe X, on n'utilisera que les pins 2 et 5.
Connectez le moteur à votre contrôleur moteur (en vous référant à la notice du contrôleur choisi pour connaître la configuration des pins). Vous pouvez-vous appuyer sur le schéma ci-dessus pour le DRV8825.
Connectez également les pins 2 et 5 à step et dir sur le contrôleur moteur.
Une fois que tout est connecté et alimenté, lancez Universal Gcode Sender et vous pouvez commencer à piloter votre moteur !
L'UTILITE D'UN SHIELD CNC
Une autre méthode pour simplifier le câblage est d'utiliser un shield CNC Protoneer très pratique car il se fixe directement sur l'Arduino. (Source du shield CNC)
Le shield CNC s'imbrique directement sur l'Arduino Uno. Il y a un emplacement prévu pour 4 contrôleurs moteurs du même type que le DRV8825.
Il suffit donc de clipser le contrôleur moteur et de connecter le moteur grâce aux pins situés à côté du contrôleur. Une fois le shield alimenté et l'Arduino connectée à l'ordinateur, le moteur peut tourner !
L'interface du shield permet également de gérer très simplement les capteurs de fin de course, les différents moteurs ainsi que les réglages comme le microstepping en ayant un minimum de fils ! Vous pouvez trouver plus de détails ici.
Commentaires
juin 14, 2019
mars 19, 2019
févr. 27, 2019
févr. 26, 2019
févr. 22, 2019
févr. 20, 2019
févr. 19, 2019
févr. 19, 2019
févr. 8, 2019
févr. 7, 2019
janv. 27, 2019
janv. 5, 2019
oct. 12, 2018
oct. 2, 2018
sept. 14, 2018
mai 20, 2018
avril 17, 2018
févr. 21, 2018
janv. 27, 2018
janv. 22, 2018
janv. 18, 2018
janv. 7, 2018
déc. 17, 2017
déc. 12, 2017
nov. 27, 2017
nov. 26, 2017
oct. 22, 2017
août 30, 2017
août 15, 2017
août 7, 2017
juil. 2, 2017
juil. 2, 2017
juil. 2, 2017
juil. 1, 2017
mai 24, 2017
mai 20, 2017
avril 27, 2017
avril 25, 2017
mars 17, 2017
mars 15, 2017
févr. 10, 2017
févr. 3, 2017
janv. 15, 2017
janv. 12, 2017
janv. 10, 2017
janv. 10, 2017
janv. 5, 2017
déc. 5, 2016
nov. 17, 2016
nov. 14, 2016
oct. 30, 2016
oct. 29, 2016
oct. 28, 2016
oct. 27, 2016
oct. 25, 2016
Connectez-vous pour commenter
Se connecter