Bonjour ! Je suis connu (ou pas) ici sous le pseudo de klafyvel et j'ai 17 ans actuellement. Et j'ouvre ce sujet pour vous parler de mon projet Trace.
Présentation
(musique au violon et ambiance sépia)
Depuis que je sais qu'elles existent je suis fasciné par les fraiseuses à commande numérique et autres machines à usiner la matière automatiques. Cependant je n'ai ni le temps ni les moyens de m'en fabriquer une. C'est pourquoi j'ai décidé de commencer par quelque chose de plus simple : une traçeuse à commande numérique. Oui mais voilà, de faire un maximum de choses par moi même, que ça soit au niveau du code ou de la construction.
Le projet
Une description générale
Ce que l'on prend en entrée :
- Du GCode, avec possiblement quelques modifications à apporter, par exemple:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | #8 = 0 (Z axis offset) #6 = 0 (X axis offset) #7 = 0 (Y axis offset) #10 = 1 (XY Scale factor) #11 = 1 (Z Scale factor) #20 = 80.000000 (Feed definition) (Start cutting path id: path3093) (Change tool to Cone cutter) G00 Z[5.000000*#11+#8] G00 X[59.755705*#10+#6] Y[4.648455*#10+#7] G01 Z[-0.125000*#11+#8] F [#20](Penetrate) G01 X[60.540635*#10+#6] Y[4.771928*#10+#7] Z[-0.125000*#11+#8] F [#20] G03 X[60.676935*#10+#6] Y[4.339155*#10+#7] Z[-0.125000*#11+#8] I[1.360929*#10] J[0.190769*#10] |
- Du papier !
Ce que l'on obtient en sortie : un joli dessin
Une description plus détaillée
La structure
Elle est en bois, en aluminium et en acier. Les roulements à billes ont été récupérés sur de vieilles paires de rollers, les moteurs, les axes métalliques et les courroies proviennent de scanners récupérés et le plateau central d'un meuble Ikéa. Il s'agit donc pour beaucoup de récupération !
L'électronique
Le cœur de l'installation est une Arduino Uno (oui, j'ai parié que je n'utiliserais pas la méga) qui contrôle les moteurs au travers de module à décalage de registre (74HC595) et de ponts en H (L298). Quelques boutons un potentiomètre et un écran LCD viennent compléter le tout.
J'ai décidé d'écrire la plus grosse partie du code (en me basant quand même sur la lib Arduino !). Cependant, le C++ n'étant pas mon langage de prédilection, l'Arduino ne peut interpréter que du GCode basique (pas de variables etc…). C'est là qu'intervient l'interface PC.
L'interface PC
Elle est écrite en Python et sa fonction principale est d'envoyer du GCode à l'Arduino par la liaison série. Cependant elle permet également la visualisation du GCode et quelques modifications.
Avancement du projet
Actuellement la structure de la machine est terminée (même si quelques modifications mineures ne sont pas à exclure) et l'interface PC bien avancée. Le programme de l'Arduino nécessite encore pas mal de travail.
Pour ceux (et celles !) qui le souhaitent, vous pouvez suivre l'avancement du projet sur sa page github (j'essaie de l'utiliser au mieux mais c'est parfois un peu chaotique !).
Choses à faire :
-
Électronique :
- Tests des moteurs avec la charge des chariots
- Réalisation du circuit
- Soudure des composants
-
Programmation Arduino :
- Adapter la lib des menus à la méthode d'input avec les modules à décalage de registre
- Interpolation des cercles
-
Programmation PC :
- Améliorer la simulation de port série
-
Structure :
- Fixer la tête d'écriture
J'espère que ce projet vous plaira, c'est la première fois que j'en présente un. Je fais de mon mieux pour l'avancer dans le temps libre que me laisse la prépa .