Pour le fun, tout simplement ūüėČ

Mini fraiseuse 1816

Présentation

Matériel

Pour faire mes d√©buts en CNC, je me suis procur√© un petit mod√®le (20 cm x 20 cm), en provenance du pays du soleil levant…Ce ch√Ęssis en PVC est fourni avec 3 moteurs pas-√†-pas de type NEMA 17 et une broche ER11 300 W. Aucune √©lectronique n’est livr√©e avec la CNC.

Nous nous occuperons donc dans cet article, uniquement de la partie électronique et logiciel.

Réalisation petite CNC

Pour faire fonctionner ce petit matériel, il va nous falloir une alimentation, un Arduino, un shield équipé de trois drivers pour moteur pas-à-pas et quelques composants plus un variateur PWM commandé par GRBL, pour la broche.

Logiciel

J’ai choisi GRBL qui interpr√®te les lignes de Gcode et pilote une CNC de mani√®re tr√®s simple en lien avec Arduino. GRBL est embarqu√© directement dans l’Arduino.

Le pilotage via un PC se fait par Universal Gcode Sender qui permet d’envoyer du Gcode facilement √† la machine.

Par ailleurs, j’utilise Inkscape qui est logiciel de dessin vectoriel accompagn√© de l’extension Inkscape Generate Laser Gcode, qui transforme le croquis en gcode.

Pour finir CAMotics me permet de simuler l’usinage sur le PC sans avoir √† raccorder la machine.

Description

Matériel

L’alimentation

La CNC nécéssite trois alimentations fournissant respectivement :

  • 60 V AC et 6 A pour alimenter la broche 300 W.
  • 24 V DC et 2 A pour alimenter les moteurs pas-√†-pas.
  • 10 V DC pour alimenter l’Arduino.

Le 10 V DC est simplement généré via un convertisseur Buck Step Down, depuis le 24 V DC.

L’arduino

N’importe quel Arduino peut √™tre utilis√©. Cela dit, le shield choisit est fabriqu√© pour recevoir un mod√®le Arduino Nano, c’est donc bien entendu un Nano qui sera utilis√©.

Le shield CNC

Le shield est un modèle dit V4.0 accueillant un Arduino Nano et trois drivers pour moteurs pas-à-pas, de type A4988 ou DRV8825.

Ce shield embarque toutes les broches nécessaires à la connexion de la CNC et de ses périphériques.

Un d√©tail qui a toute son importance ! La carte est conforme √† l’utilisation de GRBL v0.8, mais du fait du d√©veloppement les broches D11 et D12 sont √† inverser si on utilise GRBL v0.9. Ici nous utiliserons GRBL v0.9 donc il y aura inversion des broches.

Le shield CNC V4.0

Les drivers pas-à-pas

Voici un petit tableau comparatif des drivers A4988 et DRV8825 :

A4988 DRV8825
Courant théorique max. 2A 2.5A
Nb. max. de micro pas 16 32
Couleur du PCB Vert ou rouge Violet
Ajustage du courant Oui, √† c√īt√© de la broche DIR Oui, √† c√īt√© de la broche Enable
Valeur type de RS 0.05ő©, 0.1ő© ou 0.2ő© 0.1ő©
Formule du Vref I max = Vref x (8 x Rs) I max = Vref x (5 x Rs)
Protection thermique Oui Oui
Nombre de couches PCB 2 4
Refroidissement acif Recommandé Recommandé

En raison du courant th√©orique, du nombre possible de micro pas et de la valeur de RS, j’ai opt√© pour le mod√®le DRV8825. D’autant plus que les tarifs sont tout √† fait comparables.

Le variateur PWM

GRBL v0.9 supportant la variation de vitesse de la broche depuis le Gcode, j’ai opt√© pour la mise en oeuvre d’un variateur PWM.

le variateur PWM est en haut √† gauche sur la photo ci-dessous. Le shield CNC V4.0 et les drivers DRV8825 en dessous du variateur. Puis dans l’ordre en partant du shield CNC V4.0 : l’Arduino Nano, le convertisseur Buck Step Down et un des moteurs pas de type NEMA 17 (Ref. exacte : 17HS4401).

Matériel nécessaire pour la CNC

Les schémas

Les alimentations

Les alimentations de la petite CNC

Le sch√©ma de c√Ęblage

Le sch√©ma de c√Ęblage g√©n√©ral

Les logiciels utilisés

Tous les programmes utilis√©s proviennent du monde “Open Source”. Ils existent pour Windows, Linux et OS-X.

Sur votre PC, pour vous y retrouver plus ais√©ment, cr√©er un sous-dossier “Projets CNC” dans votre dossier de travail habituel. Vous pourrez y classer vos cr√©ations et les retrouver plus facilement.

Nous allons dans un premier temps les paramètrer et les installer.

Logiciel de dessin

Inkscape 0.92

Inkscape est un logiciel de dessin vectoriel que j’utilise pour ma part Windows 10 64bits. La version d’Inkscape √† installer est la 0.92. Inkscape est traduit en français.

Pour Inkscape, pas de paramètrage, juste une installation.

Si vous avez d√©j√† une version ant√©rieure d’Inkscape sur votre PC il est important de la d√©sinstaller au pr√©alable et de ne pas conserver vos param√®tres lorsque l’installateur de la version 0.92 vous le demande.

Logiciel de dessin vectoriel Inkscape

Logiciel de dessin vectoriel Inkscape

Lien de téléchargement : https://inkscape.org/en/release/0.92.2/

Inkscape Generate Laser Code

L’extension Inkscape Generate Laser Code permet de g√©n√©rer du Gcode √† partir d’un objet Inkscape. Cette extension int√©gr√©e √† Inkscape est traduite en Français.

Pour l’installation, il suffit de d√©zipper le fichier t√©l√©charg√© dans le dossier “inkscape \ share \ extensions”. Si des fichiers identiques existent, √©crasez-les. Relancer Inkscape et v√©rifier la pr√©sence de l’extension dans l’onglet “extensions”.

Comme vous pouvez le voir sur cette copie d’√©cran, il existe d√©j√† dans la version 0.92 d’Inkscape une extension nomm√©e “Gcodetools”. Nous en reparlerons plus tard…

Inkscape Generate Laser Gcode

Extension Inkscape Generate Laser Gcode

Lien de téléchargement : https://jtechphotonics.com/?page_id=1980

Simulateur

CAMotics 1.1.1

CAMotics est un logiciel Open-Source qui simule le fraisage ou la gravure CNC sur 3 axes. C’est un logiciel de simulation rapide, flexible et convivial.

Vous pourrez pr√© visualiser les r√©sultats de votre op√©ration de d√©coupe avant m√™me d’allumer votre machine.

Pour l’installation, il suffit de lancer un fichier ex√©cutable et patienter. Le simulateur est en langue Anglaise et √† ma connaissance pas de traduction existante…

Simulateur CNC CAMotics

Simulateur machine CNC : CAMotics

Lien de téléchargement : http://camotics.org/download.html

Console PC

UGS (Universal Gcode Sender)

Universal Gcode Sender est une console permettant d’envoyer le Gcode sur votre machine. C’est une application √©crite en langage Java et elle ne n√©cessite pas d’installation sp√©cifique. Pas de traduction disponible, langue Anglaise uniquement.

Dans un premier temps télécharger la version 1.0.9, puis effectuer les actions suivantes :

  • Cr√©er un dossier “UGS” sur votre disque dur et placer y les 4 fichiers inclus dans le ZIP.
  • Connecter votre Arduino √† votre PC via l’USB.
  • Sous Windows, lancer le fichier “start-windows.bat”.
  • Dans UGS choisissez le port et s√©lectionner la vitesse de transmission, puis cliquez sur le bouton “Open”.
  • Ouvrez l’onglet “Machine Control”, le panneau de commande est pr√™t !

Console universal Gcode sender

Console CNC Universal Gcode Sender

Lien de téléchargement : https://winder.github.io/ugs_website/download/

Gestion machine

GRBL 0.9j

GRBL est un firmware embarqu√© sur un Arduino. Il analyse le Gcode qu’on lui envoi et ex√©cute des actions en envoyant des instructions haute fr√©quences aux moteurs pas-√†-pas.

GRBL ne comporte pas d’interface utilisateur comme d’autre logiciels CNC. Nous allons donc ex√©cuter UGS sur un PC qui interagira avec l’Arduino. La liaison entre les deux logiciels se fait par c√Ęble USB, ce qui est un peu contraignant… Dans une prochaine mise √† jour de cet article, je rajouterai une interface Wifi entre le PC et l’Arduino.

Nous installerons la version 0.9j de GRBL. Il est bien entendu écrit en langage Arduino qui est un langage proche du C et du C++.

Apr√®s avoir t√©l√©charg√© GRBL, d√©compresser le dossier “grbl” contenu dans le fichier zip, dans le dossier “/libraries/” du programme Arduino.

Arborescence disque de GRBL

Emplacement de GRBL sous Arduino

Lien de téléchargement : https://github.com/grbl/grbl

Configuration de GRBL

Avant de “t√©l√©verser” GRBL dans votre Arduino, certains param√©trages s’imposent.

Le fichier “grbl.h”

Ce fichier est situ√© dans “/libraries/grbl” de votre dossier d’installation Arduino.

“grbl.h” est le fichier qui synth√©tise tous les appels aux autres fichiers en proc√©dant √† des “include”.

Dans l’aperçu ci-dessus, on voit les premi√®res lignes (Non comment√©es) de ce fichier. C’est aussi ce fichier qui donne les √©l√©ments sur la version utilis√©e.

Extrait du fichier

Extrait du fichier “grbl.h”
Le fichier “config.h”

Ce fichier est situ√© dans “/libraries/grbl” de votre dossier d’installation Arduino.

C’est ici que le param√©trage de GRBL en accord avec votre machine va avoir lieu. Il est donc important d’√™tre tr√®s attentif √† cette partie de l’installation.

C’est un fichier de 413 lignes mais avec beaucoup de commentaires. Ci-dessous ne sont repr√©sent√©es que les lignes m√©ritant une √©ventuelle modification. Les lignes commençant par deux barres obliques (slasches) sont comment√©es et donc invalid√©es. il suffit d’√īter les “slashes” pour qu’elles deviennent valides.

#define BAUD_RATE 115200
// #define LIMITS_TWO_SWITCHES_ON_AXES
// #define INVERT_ALL_CONTROL_PINS 
#define VARIABLE_SPINDLE
#define SPINDLE_MAX_RPM 1000.0
#define SPINDLE_MIN_RPM 0.0

Dans le tableau ci-dessous, vous trouverez les raisons pour modifier ou non les lignes représentées ci-dessus, en fonction du matériel.

Ligne Variable Notes
37 #define BAUD_RATE 115200 A modifier si vous rencontrez des soucis de communication le PC et l’Arduino.
112 // #define LIMITS_TWO_SWITCHES_ON_AXES A d√© commenter si vous utilisez deux fins de courses en parall√®le pour chaque axe, au lieu d’un √† chaque extr√©mit√©s. Avec mon shield, pas le choix donc je d√© commente.
158 // #define INVERT_ALL_CONTROL_PINS On active si on d√©sire utiliser des fin de courses “normalement ferm√©” en lieu et place des “normalement ouvert”. Pour ma part, je laisse comment√© car j’utilise des mod√®les “NO”.
247 #define VARIABLE_SPINDLE On laisse activé si on utilise la fonction de variation de vitesse PWM.
254 #define SPINDLE_MAX_RPM 1000.0 On détermine ici la vitesse minimum de la broche. Pour ma part : 12000.0
255 #define SPINDLE_MIN_RPM 0.0 Idem avec le minimum, donc 0.0 est correct.
Le fichier “report.c”

Ce fichier est situ√© dans “/libraries/grbl” de votre dossier d’installation Arduino.

Ici c’est juste pour le fun ! Mais attention aux erreurs suite √† l’enl√®vement inopportun d’un caract√®re obligatoire… Un point-virgule, des guillemets, une parenth√®se… Et hop une erreur √† la compilation ! Bref sauver le fichier d’origine avant toute manipulation.

Vous pouvez par exemple remplacer la ligne N¬į 151 :

printPgmString(PSTR(“\r\nGrbl ” GRBL_VERSION ” [‘$’ for help]\r\n”));

Par celle-ci :

printPgmString(PSTR(“\r\nMa petite CNC sous grbl ” GRBL_VERSION ” \r\n”));

Ce qui affichera en message d’accueil : “Ma petite CNC sous Grbl 0.9j“.

Mais bon, cela ne sert pas √† grand-chose… Par contre la modification de ce fichier vous permet de franciser tous les messages de la console.

Installation de GRBL

Une fois les fichiers modifiés par vos soins, il faut bien entendu recompiler tout ce petit monde. Pour cela, rien de bien compliqué :

  • Connectez votre Arduino √† votre PC via l’USB.
  • Configurez le dans l’IDE Arduino (Type de carte et N¬į de port).
  • Ouvrir “Fichiers/exemples/grbl/grblUpload”.
  • Cliquez sur la coche verte de v√©rification de code (En haut √† gauche).
  • Si tout se passe bien, la barre du bas sera verte et vous aurez le message suivant :

Message compilation de GRBL

Il ne reste plus qu’√† t√©l√©verser GRBL dans l’Arduino.

Paramétrage de GRBL

Maintenant que GRBL est charg√© dans l’Arduino avec la bonne configuration, il reste √† faire le param√©trage.

Dans GRBL, toutes les dimensions sont en millim√®tres. Si vous comptez en pouces, pensez √† la conversion…

Le changement des valeurs des param√®tres peut se faire des deux mani√®res suivantes (Entre autres…).

Via UGS

Si UGS est d√©ja install√©e on peut aussi utiliser son mode param√®trage. Connecter vous √† l’Arduino, et cliquez sur “Param√®tres/Param√®tres Firmware/GRBL”. Vous obtenez la fen√™tre suivante :

Paramètrage GRBL via UGS

Double cliquez sur la valeur à changer, modifier la et faite enregistrer. Une fois terminé, fermer cette fenêtre, GRBL est paramètré.

Via l’IDE Arduino

La commande “$$” lanc√©e depuis le terminal s√©rie donne ces donn√©es par d√©faut :

Résultat de la commande

Taper sur la ligne de commande en haut de la f√©n√™tre, le param√®tre √† changer et sa valeur. Par exemple : “$1=30”. Puis cliquez sur le bouton “envoyer”, le param√®tres est chang√©. faites de m√™me avec chaque param√®tres √† changer. A chaque fois taper “$$” afin de v√©rifier la prise en compte de la nouvelle valeur du param√®tre.

Les paramètres à modifier

Dans le tableau ci-dessous, vous trouverez les raisons pour modifier ou non les lignes représentées ci-dessus, en fonction du matériel.

Paramètre Définition
100 Nombre de pas moteur par mm sur l’axe X – Suivant le moteur X et son entra√ģnement.
101 Nombre de pas moteur par mm sur l’axe Y – Suivant le moteur Y et son entra√ģnement.
102 Nombre de pas moteur par mm sur l’axe Z – Suivant le moteur Z et son entra√ģnement.
130 Distance maximum de travail sur l’axe X – Excursion X de la machine.
131 Distance maximum de travail sur l’axe Y – Excursion Y de la machine.
132 Distance maximum de travail sur l’axe Z – Excursion Z de la machine.
110 Vitesse de d√©placement maximum, pour le repositionnement, sur l’axe X.
111 Vitesse de d√©placement maximum pour le repositionnement, sur l’axe Y.
112 Vitesse de d√©placement maximum pour le repositionnement, sur l’axe Z.
22 Validation du cycle de “Homing”. Tout ou rien.
24 Vitesse lente de d√©tection exacte des fins de courses pendant le “homing”.
25 Vitesse de d√©placement jusqu’√† l’enclenchement des fins de courses, pendant le “Homing”.
26 Temps de “rebond” des contact √©lectriques des fins de courses.
27 Distance de décalage de sécurité par rapport au déclenchement des fins de courses.

100 à 102 ⇨ Ces informations sont à calculer suivant le principe suivant

Ces param√®tres d√©finissent le nombre de pas moteur pour parcourir une distance de 1 mm sur l’axe concern√©.

Le pas moteur est √©gal au nombre de pas par tour (360¬į) de votre moteur multipli√© par le coefficient de votre driver moteur. Le nombre de pas par tour des moteurs “17HS4401” est de 200 (Angle d’un pas : 1,8¬į).

Les micros pas du driver DRV8825 sont ajustables entre 1 et 1/32√®me par le positionnement des “jumpers” (Pour chaque driver) sur le shield.

Le nombre de mm par tour est la distance relative parcourue en translation par un √©crou sur une vis lors d’un tour complet. Dans mon cas, mes entra√ģnements sont des vis M8 normalis√©e avec un pas de 1,25 mm. Le nombre de pas par tour est de 1,25mm.

Pour obtenir le nombre de pas par mm (Valeur du param√®tre) on divise le pas moteur par le pas d’entra√ģnement, les valeurs possibles sont report√©es dans le tableau suivant :

Micro pas DRV8825 Nombre de pas par millimètre
1 (200 x 1) / 1.25 = 160
1/2 (200 x 2) / 1.25 = 320
1/4 (200 x 4) / 1.25 = 640
1/8 (200 x 8) / 1.25 = 1280
1/16 (200 x 16) / 1.25 = 2560
1/32 (200 x 32) / 1.25 = 5120

A savoir : Plus le nombre de micros pas s√©lectionn√©s sur le driver est bas, moins le couple du moteur est √©lev√©… Bref le moteur aura le meilleur couple possible avec un micro pas de 1.

Cela dit, il faut trouver un compromit. Dans le cas de cette mini machine entrain√©e par des vis M8 au pas de 1,25 mm, pas le choix seul le pas entier fonctionne… Donc les param√®tres 100 √† 102 seront √† 160.

130 à 132 ⇨ Les dimensions de travail de votre machine sur les 3 axes

Pour ma machine les dimensions sont 200 mm pour l’axe X, 190 mm pour l’axe Y et 50 mm pour l’axe Z. Dimensions prises en gardant des marges de s√©curit√© avant le d√©clenchement des but√©es de fin de course.

A personnaliser donc en fonction de la machine. En gardant une marge, les fins de courses ne devraient jamais √™tre actionn√© ūüôā

110 à 112 ⇨ Le taux maximum de déplacement en mm / mn

Cela sera bien utile sur des CNC d’une taille plus importante. Pour mon cas, je fixe le taux maximum des axes X et Y √† 500 mm/mn et celui de l’axe Z √† 250 mm/mn.

Je les retoucherai √©ventuellement plus tard, avec un peu d’exp√©rience…

22 ‚á® Activation de la fonction “Homing”

le cycle de “Homing” permet √† GRBL de d√©finir un “point 0” et donc de pouvoir y revenir si probl√®me. Il d√©place en premier lieu l’axe Z vers le haut puis les axes X et Y en m√™me temps jusqu’au point 0.

Pour le d√©finir il utilise les fins de courses qui dans mon cas, sont les m√™mes pour le “Homing” et les “Hard Limits”.

Bref, on l’active ! Ce param√®tre passe donc √† 1.

24 ‚á® Vitesse lente du “Homing”

Pendant le premier cycle du “Homing”GRBL recherche les fins de course √† une vitesse plus √©lev√©e et apr√®s les avoir trouv√©s, il se d√©place plus lentement pour d√©tecter l’emplacement pr√©cis du z√©ro machine.

Le paramètre 24 définit cette vitesse plus lente.

Je conserve la valeur par défaut, à savoir : 25 mm/mn.

25 ‚á® Vitesse de recherche du “Homing”

C’est la vitesse plus √©lev√©e dont on parle ci-dessus. A r√©gler pour obtenir une recherche rapide, mais pas trop afin de ne rien casser…

Là encore, je conserve la valeur par défaut, à savoir : 500 mm/mn.

26 ⇨ Temps de rebond des contacts électriques

Sur ma machine sont install√©s des “filtres” qui att√©nuent fortement le “rebond” des contacts √©lectriques des fins de courses. je positionne donc ce param√®tre √† une valeur plus faible que celle par d√©faut : 10 ms.

27 ⇨ Distance de sécurité par rapport aux fins de courses

c’est la distance de s√©curit√© que nous indiquons √† GRBL afin qu’il n’y ait pas de d√©clenchement intempestif lors d’un cycle de “Homing”.

Dans un premier temps je passe ce paramètres à 2mm.

Pour le moment je laisse les autres param√®tres de c√īt√©. Toutefois, si vous voulez aller plus loin, vous pouvez visiter la page PARAMETRES du GRBL.

Les références techniques

Sites web et documents utiles

Wiki GRBL : https://github.com/grbl/grbl/wiki

Paramètres du GRBL : CNC amateurs

Universal Gcode Sender : https://winder.github.io/ugs_website/

CAMotics : http://camotics.org/

Datasheet DRV8825 : http://www.ti.com/lit/ds/symlink/drv8825.pdf

Liens de téléchargement

Inkscape 0.92 : https://inkscape.org/en/release/0.92.2/

Inkscape Generate Laser Gcode : https://jtechphotonics.com/?page_id=1980

CAMotics 1.1.1: http://camotics.org/download.html

Universal Gcode Sender 1.0.9 : https://winder.github.io/ugs_website/download/

Grbl 0.9j : https://github.com/grbl/grbl


Add Your Comment

* Indicates Required Field

Your email address will not be published.

*

14 − sept =