Trace

Une traçeuse tout ce qu'il y a de plus banal... ou presque ;)

a marqué ce sujet comme résolu.

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 !

Vue générale (la tête d'écriture est démontée)

Vue de côté

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.

Un schéma pas forcément à jour

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.

La visualisation de fichier

L'envoi de commandes manuelles

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 ;) .

+8 -0

La plupart des imprimantes 3D premier prix que j'ai trouvées (300-400€) ont une résolution de 60 microns. Et je t'assure qu'une ligne de 60 microns ça se voit sur une impression 3D, même si l'angle n'est pas important ^^ C'est pour ça que ça se ponce une impression 3D d'ailleurs (à la manière des modélistes).

+0 -0

Sans doute aussi, mais j'ignore quelle est l'épaisseur d'un filament fondu. Les 60 microns jouent quand même (après, à 2 mètres de distance ça ne se voit plus vraiment, sauf sous certaines conditions lumineuses). Mais dans tous les cas, ça nécessite un petit coup de ponçage après, que ce soit propre.

+0 -0

Je ne suis pas mort (et le projet non plus) !

J’ai terminé la prépa et eu une école qui m’intéresse, donc j’ai eu un peu de temps pour bricoler. Le projet a énormément avancé.

Nouveau look

L’interface n’est pas en reste.

Édition de G-Code
Envoi de G-Code (trouverez-vous la typo ?)

Niveau électronique, je suis toujours avec une Arduino UNO. Par contre j’utilise des montages avec ponts en H tout faits. Tous les ports de la UNO sont utilisés et j’ai pu expérimenter quelques problèmes de RAM un peu trop rempli, ce qui m’a fait découvrir 2~3 choses utiles à ce propos (coucou la macro F).

La partie mécanique n’a plus grand chose à voir, on reste sur des moteurs récupérés dans des imprimantes usagées, le système de glissière cornière alu + roulement est vraiment satisfaisant (je l’ai pompé ici).

Pour ce qui est de l’interface, elle est en Python avec PyQt. J’en ai profité pour m’initier un peu à l’écosystème du langage. Vous pouvez donc la tester avec un simple pip install sivicncdriver (je vous conseille de le faire dans un virtualenv). Il y a aussi de la doc. :p

Vous l’avez deviné, j’ai revu mon objectif à la hausse : je souhaite avoir une fraiseuse à commande numérique fonctionnelle.

Les prochaines choses à faire sont :

  • Implémenter les G-Codes les plus basiques dans le code Arduino. Pour l’instant elle ne gère que des codes personnalisés, mais en ajouter de nouveaux n’est pas compliqué;
  • Améliorer la stabilité de l’interface côté PC. En effet, la gestion des erreurs laisse à désirer;
  • Ré-hausser les deux bras qui tiennent les axes X et Z pour avoir un petit peu plus de place pour usiner.

Si le projet vous intéresse, il y a deux dépôts Git :

Voilà voilàààà.

<autotroll> À dans 1 an pour le prochain up</autotroll>

Plop ! après une semaine de bricolage, voilà où j’en suis. Je me concentre plus sur la partie mécanique car la pluspart de mes outils resterons chez mes parents à la rentrée.

J’ai donc réhaussé les deux bras qui tiennent les axes X et Z. J’en ai profité pour fabriquer un nouveau chariot pour l’axe Z. Ça a été l’occasion pour moi de tester FreeCAD, j’en ai fait un article sur mon blog (il y a également plein de photos de la fabrication du chariot).

Je me concentre sur la mécanique, mais il faut bien s’occuper pendant que la colle sèche. :p Du coup on a le droit à de la prévisualisation en 3D de la trajectoire représentée par le G-Code !

La prévisualisation en 3D !

Tout ça grâce à l’inégalable matplotlib. En parlant de G-Code, si vous avec de l’expérience en CAO, j’ai besoin de vous.

La stabilité de l’interface s’améliore également, je lui fait subir toutes sortes de mauvais traîtements pour la tester.

Enfin pour ce qui est de l’implémentation des G-Codes standards sur la machine, c’est commencé mais pas encore au point.

À plus !

Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte