Projets‎ > ‎

CNC

Une machine à commande numérique !

Une CNC est une machine qui va déplacer une fraiseuse. 
Le mienne devra travailler selon 3 axes : X, Y et Z, permettant de déplacer la fraise dans l'espace, et donc de fraiser des objets en 3 dimensions.

Dans les grandes lignes : un logiciel va piloter la machine en lui envoyant une série d'instructions à executer
pour fabriquer un objet.

Mécaniquement, je suis parti  de récupération d'un scanner et d'une imprimante. Ces deux appareils utilisaient des moteur de type pas-à-pas. Ces moteurs ont la particularité de pouvoir être pilotés de façon assez précise par un ordinateur ou un micro-controleur.
Le scanner contenait un moteur pas à pas unipolaire. Le plus facile à gérer, mais pas le plus répandu.
L'imprimante m'a donné deux moteurs pas à pas bipolaires. D'après ce que j'ai lu, ces moteurs sont plus fréquents car ils donnent un meilleur couple. 

J'utilise un ULN2003 pour gérer le moteur unipolaire.
Les moteurs bipolaires sont quand à eux pilotés par des L293D. Ce n'est pas idéal du fait de l'intensité nécessaire pour faire fonctionner les moteurs, mais cela devrait suffire tout de même.

Une carte arduino diecimila est utilisée pour gerer tout ce petit monde.
Un programme dans la carte est capable d'intérpreter une série d'instructions, correspondant à des déplacement de moteurs.

La lib accelstepper permet d'interfacer les moteurs depuis le micro-code de l'arduino.

Les instructions envoyées à l'arduino par le PC sont des instruction gcode.
Actuellement les instructions supportées sont :
O0 : reinitialise la machine, reset des compteurs de positions des moteurs.
Xn : deplacement sur l'axe X vers la position absolue  n.
Yn : deplacement sur l'axe Y vers la position absolue  n
Zn : deplacement sur l'axe Z vers la position absolue  n
G0 : deplacement rapide
G1 : deplacement de travail
M2 : fin de programme

un '*' signale à l'arduino d'opérer un reset sur le jeux d'instructions. concretement, le pointeur de execution et le pointeur de chargement sont remis à 0.
un '%' signale a l'arduino de démarrer l'éxécution du jeux d'instructions gcode (programme).

Vidéo YouTube



Comments