bandeau

M4RC3L, robot dessinateur



________________________________________ M4RC3L V.01 ______________________________________




J'avais d'abord voulu dresser mon bras robot G4st0n au dessin, vaste entreprise... et puis je me suis rendu compte que le jeu n'en valait pas la chandelle car un système à trois segments qui se meuvent en arc de cercle n'est pas l'idéal pour ce genre de travail. J'ai laissé G4st0n en sommeil pour l'instant, il servira plus tard à d'autres choses, comme manipuler du morse par exemple.
Et je suis parti sur un autre concept, un robot capable de dessiner sur une surface verticale. L'occasion aussi pour découvrir les cartes SD associées à l'arduino, domaine que je n'avais pas encore exploré.

Première façon d'approcher le truc, le robot calcule le tracé à partir d'une photo importée, et le reproduit en temps réel sur le papier, gros calculs, un arduino n'est pas l'idéal pour projet de ce genre. Deuxième façon, le dessin est précalculé. C'est déjà plus dans les cordes du petit atmega328. Je vais utiliser un gcode simplifié en ne travaillant qu'avec les coordonnées polaires XY, le Z servira seulement à relever et baisser le crayon.
D'abord mettre en place l'environnement de développement, l'occasion de tester ma breadboard améliorée. 4 fils et hop, module SD branché, 1 fil et hop, un poussoir qui va me servir de point d'arret pour le debuggage. Le confort total.
Je teste le débuggage par poussoir, il suffit d'insérer la ligne "debug;" à l'endroit voulu dans le programme pour le stopper et le poursuivre ensuite après un appui poussoir (plus d'infos sur ce procédé sur ma page IDE ).

M4rc3l

Deuxième chose, créer un gcode de test pour faire les essais, merci à David DH42 pour toutes ses explications et son aide sur le fonctionnement des postpro de Cambam. Le motif comporte des lignes penchées, des angles et des courbes. Pas d'informations de vitesses ni d'outils, les G0 et G1 sont ignorés par le programme qui ne traitera que les coordonnées XY.

M4rc3l

Le résultat obtenu après lecture de la carte SD, épuration et traitement des infos.

M4rc3l


Parallèlement à mon travail sur le code j'ai commencé le hardware. En premier lieu un système de protection des L298, ces drivers vieux et dépassés ne coutent pas chers sur le net mais ils ont le défaut de ne pas accepter les fausses manips d'alimentation. Le +5v doit impérativement être connecté avant la HT (ici du +12v), sinon c'est les larmes. J'ai fais une petite platine relais qui assure la sécurité.

M4rc3l
M4rc3l

J'avais découvert un site dont j'ai oublié le lien qui propose gratuitement une vue 3D des fichiers Eagle. Ca m'a amusé un moment mais finalement çà ne sert pas à grand chose, la bibliothèque de composants 3D est pauvre et il faudrait les créer soi-même. C'est chronophage, amusant mais pas franchement utile, en plus je n'ai pas trouvé le moyen de raccourcir les pattes des composants coté cuivre. Je salue quand même la prestation du gars qui a pondu ce soft.

M4rc3l

Beaucoup de temps perdu, autant avoir la vraie version dans les mains.

M4rc3l


Un peu de copeaux c'est bien aussi, le système de relevage du stylo. Il y a plein de systèmes possibles, je n'ai pas adopté les plus simples, j'ai commencé par fabriquer un montage qui abaisserait le crayon verticalement. Il demandait trop de force au servo, dommage j'aimais bien le principe.

M4rc3l

J'ai finalement opté pour un truc plus basique, un porte-crayon fixé sur le bras du servo. Pas plus mal finalement car une fois fini ce projet finira comme les autres dans un carton et je pourrai toujours ré-utiliser ce montage pour équiper une de mes cnc d'un stylo.

M4rc3l
M4rc3l
M4rc3l


C'est ce qu'il y a de génial avec la robotique, on touche à tout: électronique, usinage métal, usinage bois, ficelle...

M4rc3l

Reprise au tour pour former les poulies. Ø42, ===> (42*PI)/200=0.6594mm par pas. Les paps vont pas mal tourner et j'ai un peu peur pour les drivers équipés de leurs radiateurs trop petits. Il va falloir penser à bricoler de ce coté aussi. Déjà rien qu'aux essais quand on pose un doigt dessus c'est un tantinet chaud. Mais tout çà m'embête un peu, je cherche la légèreté, les pap sont de la récup sur des imprimantes, je ne les ai pas testés en charge et je ne sais pas trop de quoi ils sont capables. Soulèveront-ils tous le bazar ?

M4rc3l

De quoi faire un petit robot dessinateur, pas grand chose en fait, manque que la plaque support.

M4rc3l


M4rc3l entièrement câblé sur la breadboard, on imagine ce qu'aurait donné un montage sur table...

M4rc3l

Comment voulez-vous que j'y arrive...

M4rc3l


Premiers tours de poulies de M4rc3l. Tout à l'air de fonctionner comme il faut, le stylo se lève, les trajets libres se font, le stylo se s'abaisse aux bons moments et les trajets de traçage se font. A priori tout se passe bien et correspond aux données qui défilent sur l'écran mais çà ne reste que du visuel, l'étape suivante va être de construire la platine et monter tout le fouillis dessus.


Tout fonctionne sur les plaques, je passe au montage définitif sur une chute de CP 5mm. J'ai remplacé les moteurs par des NEMA17 plus costauds, avec un torque de 5,9kg çà devrait le faire.

M4rc3l

Finalement c'est pas terrible, maintenant que je peux le prendre en main je me rend compte que le montage est un peu lourd et je ne sais pas si les PAP pourront emmener tout çà verticalement sans peiner. Ils ont un torque de 12kg donc je mets en cause les drivers L298. J'ai commandé des TB6600 sur Ebay, je vais attendre de les recevoir pour continuer les essais.

M4rc3l


Sarah Connors ne fait rien pour m'aider, elle se met à faire des câlins aux robots... tout se perd.


Test avec une alim 24V, les pap consomment 6A, pas sur que les L298 qui sont donnés pour 3A tiennent le coup bien longtemps. En tout cas le robot semble apprécier les câlins et fait bien ce qu'on lui demande, les roues tournent bien en fonction des coordonnées calculées qui s'affichent dans l'interface série. Il est temps de le pendre sur sa planche pour valider tout çà mais je n'ai pas de câble USB assez long pour l'instant. Va falloir attendre que j'aille faire des emplettes.


Finalement les chiffres après la virgule n'apportent rien a la précision du dessin, on peut s'en passer. J'ai modifié le postprocesseur de Cambam pour ne sortir que des nombres entiers, ce qui me simplifie bien le programme. J'ai viré les G0 et G1 du gcode pour le simplifier.


Z15 ===> stylo relevé
Z1 ===> stylo baissé


M4rc3l

Pour la mise au point j'ai fais un dessin d'essai type avec des coordonnées bien précises et connues sous Cambam. Lors du déroulement du programme les infos de coordonnées défilent dans l'interface du port série ce qui me permet de faire des vérifications en temps réel. Ca ne vaut pas un vrai débuggeur mais on fait avec ce qu'on a.

M4rc3l

Petite aide bien pratique, j'ai créé une petite feuille de calcul sous le tableur d'Open Office pour vérifier les résultats au coup par coup; ce qui m'a permis de dénicher quelques bugs.

M4rc3l

Premiers essais, des soucis avec le gcode issu de Cambam, j'ai fais un gcode simple à la main qui dessine un carré. Le programme fonctionne bien mais le dessin n'est pas très propre, des soucis liés au hardware, le robot ne glisse pas bien sur la plaque de contre-plaqué malgré les patins en POMC, la plaque support en CP s'est déformée et l'apesanteur y met aussi du sien, quand le robot arrive sur un coté il a tendance à se déplacer en crabe. Peut-être est-ce dû à son poids de 1,3kg.



________________________________________ M4RC3L V.02 ______________________________________




Après examen, je me suis aperçu que la plaque en CP de 5mm s'était complètement voilée et qu'une poulie touchait le mur de dessin, d'ou les déplacements anarchiques. Après tout ce temps passé dans mon atelier gelé elle n'a pas supporté la chaleur du bureau et elle l'a pris de travers.

M4rc3l

J'ai refais une autre plaque, en POMC de 6mm cette fois, en espérant que le robot se comportera mieux. J'ai agencé les composants d'une façon plus rationnelle avec les moteurs en bas pour abaisser le centre de gravité. J'en ai profité pour remplacer la ficelle à rôti par du fil plus fin et plus solide genre bas de ligne pour pêche à la mouche.

M4rc3l

Les fils sont guidés par des petits oeillets en laiton que j'ai tournés dans une barre de Ø6mm. L'avantage c'est que l'écartement des deux fils est connu précisémment car il entre dans les calculs, c'était un peu empirique avec la première plaque en bois.

M4rc3l


________________________________________ M4RC3L V1.0 ______________________________________




Cette version n'aura pas vécu bien longtemps. Après quelques essais il s'avère que çà ne change pas grand chose, robot toujours trop lourd qui se dandine au bout de ses fils à chaque mouvement de PAP. Comme dit plus haut ce souci n'en serait plus un pour des dessins de grandes dimensions mais mon manque de place m'oblige à dessiner sur du format A4, A3 maxi. J'ai décidé cette fois de changer de concept pour une base mobile légère et les moteurs positionnés en fixe en haut du mur. Cette architecture me plait moyennement car çà complique pas mal le portage du robot mais pour dessiner sur de petites surfaces je ne vois pas d'autres issues. A force de bricoler sur le code pour essayer d'adapter c'est devenu un vrai foutoir, j'efface tout et je recommence propre à partir de zéro.
Pour les essais je travaille toujours sur un carré simple de 200x200 que le stylo va parcourir plusieurs fois, le gcode est simple à lire et les bugs d'autant plus faciles à dénicher. J'ai appris à programmer tout seul avec mes défauts et je fais toujours çà: d'abord un code à la pioche pour défricher le terrain et ensuite un nouveau proprement une fois que tout est clair et fonctionnel.
L'architecture ayant changée, les variables de la zone de dessin en ont fait autant et j'ai du refaire une autre feuille de calcul adaptée pour les vérifications.


M4rc3l
M4rc3l

J'ai décidé de ne pas utiliser de librairies pour piloter les deux moteurs pas à pas mais de faire mon code moi-même en travaillant sur les registres. Ca fonctionne plutôt bien mais pour le moment les deux PAP sont un peu trop rapides, j'y travaille pour essayer d'obtenir un mouvement un peu plus fluide. Pas simple mais enrichissant.


Et hop ! une nouvelle version de M4RC3L, cette fois en version allégée. Les deux PAP sont fixés en haut du mur et la plaque baladeuse ne supporte que le servo porte-crayon. J'utilise cette fois des modules TB6600HG, les L298 n'étaient pas assez fiables pour cette application, vu le courant important généré par les NEMA17 alimentés en 24v ils chauffaient et passaient en sécu, impossible de bosser de cette façon. Le servo n'est pas encore branché, pour l'instant je me débat avec la gestion des PAP.

M4rc3l

Les signaux issus des TB6600HG sont très propres et les moteurs ne crient plus de douleur.

M4rc3l

Autre petit problème rencontré, les poulies trop rapprochées, çà limitait la plage de travail de la plaque stylo, arrivé à un certain point elle se mettait à monter au lieu de continuer sa translation. J'ai rajouté deux bras mais j'y ai été un peu fort... heureusement je range tout çà quand je ne travaille pas sur le robot.

M4rc3l

Pour le moment on en est là, avec Waza on bosse dur pour faire avancer le truc.





cncv1




retour