Construction d’une CNC DIY – Partie 3 – Électronique et démarrage
Suite et fin de la construction de la 3D Printed DIY CNC – Dremel CNC Remix de Aviran_N.
- Partie 1 : Construction d’une CNC DIY – Partie 1 – La Structure
- Partie 2 : Construction d’une CNC DIY – Partie 2 – Motorisation
Dans cette partie, on va aborder la partie électronique avec le contrôleur et le câblage.
Le modèle original utilise un Shield CNC Arduino et des drivers de moteur pas à pas TMC2208. Je souhaitais pourvoir l’utiliser à partir d’un pc ou d’une tablette, en wifi ou via une carte SD. Au fil des recherches, je suis tombé sur FluidNC.
FluidNC is a CNC firmware optimized for the ESP32 controller. It is the next generation of firmware from the creators of Grbl_ESP32. It includes a web based UI and the flexibility to operate to a wide variety of machine types. This includes the ability to control machines with multiple tool types such as laser+spindle or a tool changer.
Le firmware est compatible avec un certain nombre de cartes construites autour d’un ESP32. Je suis parti sur la Makerbase MKS TinyBee avec des pilotes TMC2209. À la base, c’est une carte prévue pour faire fonctionner une imprimante 3D.
Câblage
Moteurs
En suivant la documentation relative au TinyBee sur le wiki de FluidNC, les moteurs X et Z sont branchés sur les connecteurs X-Motor et Z1-Motor (Z1 et Z2 sont en parallèle sur le même pilote, donc on utilise qu’un des deux). Les moteurs Y sont branchés sur Y-Motor et sur E1-Motor. J’ai utilisé des connecteurs GX16 4 pins pour relier les câbles provenant de la CNC au boîtier du contrôleur. Les GX16 femelles du boitier sont reliés à la carte avec un connecteur JST-XH.
Fin de course
Les interrupteurs de fin de course sont connectés de la même manière que les moteurs avec un GX16 (3 pins pour les 3 axes et une masse commune). Ils sont reliés à la carte sur les connecteurs de fin de course X, Y et Z, entre le signal et la masse via des connecteurs JST-XH 3 pins.
Drivers
Les drivers utilisés sont ceux qui étaient fournis avec la carte TinyBee. Ils sont basés sur la puce TMC2209, peuvent fonctionner en 8, 16, 32 ou 64 micro-pas, avec une interpolation de 256 micro-pas. La configuration se fait via les micro-swicth qui se trouvent sur la carte sous l’emplacement des drivers.
GND = interrupteur vers le bas, VIO = interrupteur ON vers le haut.
MS1 | MS2 | MS3 | Steps | Mode |
GND | GND | GND | 1/8 | stealthChop |
VIO | VIO | GND | 1/16 | stealthChop |
VIO | GND | GND | 1/32 | stealthChop |
GND | VIO | GND | 1/64 | stealthChop |
GND | GND | VIO | 1/8 | spreadCycle |
VIO | VIO | VIO | 1/16 | spreadCycle |
VIO | GND | VIO | 1/32 | spreadCycle |
GND | VIO | VIO | 1/64 | spreadCycle |
J’ai configuré en 1/16 de pas et en mode spreadCycle, qui, d’après la datasheet du constructeur induit un meilleur couple.
Alimentation
La carte accepte une alimentation comprise entre 12 et 24V. J’ai utilisé une alimentation 24V/5A que j’avais déjà.
Sécurité
Par sécurité, il est fort recommandé d’ajouter un bouton « coup de poing » d’arrêt d’urgence qui coupe l’alimentation de la CNC et de la broche/laser en cas de pépin.
Configuration
J’ai utilisé le fichier de configuration suivant (en bas de page). À titre informatif et à modifier selon la configuration de la machine. La partie concernant la broche ou les laser n’est pas configurée vu que pour l’instant j’ai mis un Dremel dessus. Les paramètres importants à modifier sont :
Sur les axes :
- steps_per_mm: nombre de pas pour avancer d’un mm, incluant les micro-pas. La vis sans fin ayant un pas de 8mm en X et Y, et 2mm en Z. Ex : 200 x 16 / 8 = 400.0 en X et Y.
- max_rate_mm_per_min: vitesse maximale
- acceleration_mm_per_sec2: accélération lors d’un déplacement.
- max_travel_mm: distance maximale depuis l’origine physique sur les axes.
Sur le moteur :
- pulloff_mm: la distance à laquelle s’écarte le chariot d’un axe après avoir appuyé sur l’interrupteur de fin de course.
- limit_neg_pin: le pin d’entrée qui sert pour l’interrupteur de fin de course pour ce moteur. Attention, selon si pour le homing positive_direction est vrai ou faux, ça sera ici limit_pos_pin.
Pour le homing :
- cycle: l’ordre dans lequel les axe font le homing (1, 2 ou 3). J’ai mis Z, X, Y (donc 1 pour Z, 2 pour X, 3 pour Y).
- positive_direction: true/false. X et Y font le homing vers le côté négatif de l’axe, tandis que Z vers le côté positif.
Pour plus de détails et d’autres paramètres de configuration, il y a tout sur le wiki de FluidNC. Les vitesses maximales et accélérations sont à affiner plus tard selon comment la machine se comporte lors des essais ou si elle saute des pas. Il sera peut être nécessaire également de régler le courant maximal dans les moteurs sur le potentiomètre de driver.
Si un axe avance dans le mauvais sens, il se peut que les deux bornes d’une des phases du moteur soit inversées. Dans ce cas, il suffit d’inverser les fils d’une des phases de ce moteur. Ça peut également être fait dans la config en modifiant la valeur direction_pin de I2SO.n à I2SO.n:low par exemple. Attention particulièrement à l’axe Y, où il y a deux moteurs… qui doivent tourner dans le même sens !
One thought on “Construction d’une CNC DIY – Partie 3 – Électronique et démarrage”