[Tuto] Piloter une CNC avec Arduino et GRBL

Posté sur: juil. 11, 2016

Catégories: Arduino

Tags: arduino , cnc , gcode , grbl , laser

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)

GRBL1

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.

 

GRBL2
  • 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 

GRBL3

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 :

GRBL6

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 :

 

GRBL9

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

  • Daniel RICAUD
    juin 14, 2019
  • Christophe
    mars 19, 2019
  • Bottemanne Robert
    févr. 27, 2019
  • pieront
    févr. 26, 2019
  • Ambroise CERVEAUX
    févr. 22, 2019
  • Melchior
    févr. 20, 2019
  • Admin
    févr. 19, 2019
  • Doudou10
    févr. 19, 2019
  • Bottemanne Robert
    févr. 8, 2019
  • Philippe GRANGIER
    févr. 7, 2019
  • Farid E.
    janv. 27, 2019
  • Guy Pieront
    janv. 5, 2019
  • Admin
    oct. 12, 2018
  • jack
    oct. 2, 2018
  • Ambroise CERVEAUX
    sept. 14, 2018
  • bill
    mai 20, 2018
  • idorual
    avril 17, 2018
  • Laurent
    févr. 21, 2018
  • TESTA
    janv. 27, 2018
  • dan
    janv. 22, 2018
  • dan
    janv. 18, 2018
  • negjelacas
    janv. 7, 2018
  • Zielinski
    déc. 17, 2017
  • Bruno
    déc. 12, 2017
  • adrien
    nov. 27, 2017
  • Benoit Laroche
    nov. 26, 2017
  • Berber
    oct. 22, 2017
  • Dede38440
    août 30, 2017
  • Xav
    août 15, 2017
  • nizrar
    août 7, 2017
  • Selim
    juil. 2, 2017
  • Selim
    juil. 2, 2017
  • Selim
    juil. 2, 2017
  • Fadhel
    juil. 1, 2017
  • Sylver paris
    mai 24, 2017
  • Julien
    mai 20, 2017
  • Marc
    avril 27, 2017
  • Jérémy
    avril 25, 2017
  • mo17
    mars 17, 2017
  • arnaubec
    mars 15, 2017
  • mohamed
    févr. 10, 2017
  • cyril
    févr. 3, 2017
  • jeo
    janv. 15, 2017
  • med
    janv. 12, 2017
  • Charlie
    janv. 10, 2017
  • michael
    janv. 10, 2017
  • med
    janv. 5, 2017
  • pierre76
    déc. 5, 2016
  • Charlie
    nov. 17, 2016
  • Charlie
    nov. 14, 2016
  • admin
    oct. 30, 2016
  • Cédric
    oct. 29, 2016
  • admin
    oct. 28, 2016
  • PAYS
    oct. 27, 2016
  • David
    oct. 25, 2016

laissez un commentaire

Se connecter