====== Robot traceur ====== {{{project picture:{{:usager:eve:img_014.jpg?200|}} machines: decoupeuse_laser impression_3d materiaux: carton PLA logiciels:Inkscape Arduino Python freecad fichiers: liens: https://fabmanager.simplon.co/#!/projects/robot-traceur-a-partir-d-un-dessin-svg-inskape tags: inkscape python arduino patron robotique Bézier xml svg usager:eve licence:cc-by-sa }}} Le but du robot traceur est de permettre, à partir d'un fichier SVG (ex : Inkscape), de faire un dessin de grandes dimensions (ex : patron de couture) ou sur une surface qui ne pourrait être mise dans une imprimante classique (sol, pierre...). Voir aussi : [[https://fabmanager.simplon.co/#!/projects/robot-traceur-a-partir-d-un-dessin-svg-inskape|Fabmanager]] ===== Presentation ===== Dans plusieurs situations, j'aurais voulu pouvoir tracer/imprimer un dessin sur une grande surface à partir d'une image numérique (**patronage** sur mesure, traçage du plan d'un événement visible de loin, report d'un tracé avant une découpe à la scie à chantourner / sauteuse sur du bois...). En général, la solution consiste à dessiner le schéma sur plusieurs feuilles, à les assembler avec du scotch ou de la colle, à les découper et à éventuellement reporter le schéma sur le support. S'il faut corriger et reprendre le schéma, comme dans le cas des ajustements des patrons de couture, cette méthode peut s'avérer fastidieuse et répétitive. Pour résoudre ce problème, je propose la construction d'un robot traceur. Le robot est constitué de deux roues motorisées par des **moteurs pas à pas**, et d'une roue folle. Les données sont récupérées à partir d'un **fichier SVG** (par exemple généré sous **Inkscape**), et un **GCODE** est généré. Le GCODE est mis sur une **carte SD** et inséré dans le robot qui trace alors le dessin. Le but de ce robot est d'une part de pouvoir faire des dessins de grandes dimensions, et d'autre part de dessiner sur des surfaces qui ne pourraient être mises dans une imprimante ou une découpeuse laser (sol, pierre...) Ce projet est mené au **Fablab Simplon** et au **Carrefour Numérique 2** ===== Documentation ==== La documentation détaillée du projet est disponible sur [[https://fabmanager.simplon.co/#!/projects/robot-traceur-a-partir-d-un-dessin-svg-inskape|Fabmanager]] === La construction du robot (Etape 2) === Un an avant, la construction d'un cocotix avait permis d'approfondir certains points : comment dessiner un châssis ? Comment fixer les pièces au châssis ? Comment fixer les roues sur les moteurs... J'y ai ajouté la construction d'une tour à étages empilables qui permet de maintenir et de cacher le montage électronique ainsi que la description du porte-outil sur cremaillère. === Programmation du robot (Etape 3) === Cette partie contient le schéma électronique et des détails sur la commande des moteurs pour suivre une trajectoire, la lecture d'un programme sur une carte SD === La création du GCODE (Etape 4) === Comme je n'ai pas réussi à obtenir un GCODE satisfaisant à partir des pluggins Inkscape ou des outils sur internet, j'ai fini par programmer mon générateur de GCODE en python. A partir du code du SVG, en xml, le programme récupère les informations sur le chemin et les traduit instruction GCODE. J'y explique aussi comment linéariser une courbe de Bézier en différents segments de droite ===== Quelques résultats ===== === Le beau robot === {{:usager:eve:gif_robot_compresse.gif?400|}} Cliquer sur l'image pour l'animer === Tracé d'une fractale de Koch === Ce sont les premiers pas du robot - et son premier bourrage de papier. Le dessin SVG n'est constitué que de segments de droite. La vidéo est accélérée 4 fois {{youtube>kA4TaNWf-Jk?medium}} . === Tracé d'un "a" en courbe de Bézier === Le dessin est un "a" en attaché uniquement constitué de courbes de Bézier qui ont été linéarisées. La vidéo est accélérée 4 fois {{youtube>7DmKzTJvXS0?medium}} . === Le porte-outil sur cremaillère === Un petit système à base d'un servo moteur, d'un engrenage et d'une cremaillére permet de monter et descendre le porte outil pour réaliser des traits discontinus {{:usager:eve:porteoutil.png?800|}}