04.txt
2025-10-30 16:08<< Retour
_______ _______ _______ _______ | _ | _ | _ | _ | | | | 1___|. | |. | | \___ |. \|. | |. | | |: 1 |: 1 |: 1 |: 1 | |::.. . |::.. . |::.. . |::.. . | `-------`-------`-------`-------' bauds ┌──────────────────────────────┐ │ ISSUE No 1 - Oct 2025 04.TXT └───────────────────────────────────────────────┐ | Wall-E: sueur, fils et plastique fondu | | Axelle Apvrille<< Retour(cryptax) | | Sophia Hack Lab (Sophia Antipolis) | └──────────────────────────────────────────────────────────────────────────────┘ -- CONTENT -- Il y a quelques mois, je me suis embarquée dans la construction d'un robot Wall-E. Dans le film d'animation (2008), c'est un robot cubique qui est chargé de nettoyer la Terre de ses déchets, vous vous rappelez ? J'ai choisi un projet conçu par "jeje95". Le robot est ressemblant, il parle, allume une ampoule et sert de réveil sur une table de chevet. C'est surtout un objet de décoration geek, pour le plaisir. J'ai pour objectif d'y mettre ma petite touche perso, avec quelques fonctionnalités de mon cru, comme l'affichage de la météo de notre station météo locale ou l'affichage de quelques photos du célèbre Pico le Croco (https://pico.masdescrocodiles.fr). Un projet simple, documenté et réfléchi puisque Jeje95 fournit une vidéo de montage sur YouTube [VIDEO], des plans d'impression 3D sur Thingiverse [WALL1], une liste de composants [JEJE] et du code open source sur GitHub [CODE]. J'ai tout lu attentivement, sauf le code source, où j'ai globalement plus d'expérience et m'estime plus capable de faire à ma propre sauce. Tout parait clair et faisable. Je ne me lance pas dans des choses compliquées comme articuler le robot, ou lui faire tourner la tête. Si cela vous tente, de tels projets plus avancés existent [WALL2]. Facile ? En théorie, c'est l'affaire de deux ou trois semaines. Dans la réalité, j'y suis depuis plus de 8 mois. Je suis allée de difficultés en difficultés : j'en ai rencontrées là où je n'aurais jamais imaginé qu'il puisse y en avoir. Et j'ai appris. Cet article est le récit de mon aventure. -- Le stringing -- Le premier problème auquel je me confronte est un fort "stringing" de la part de mon imprimante 3D. Elle imprimait bien, puis s'est progressivement mise à laisser couler des petits filaments lors de ses déplacements, "cheveux d'ange". Cela s'appelle le *stringing*. Ma buse étant vieille et complètement émoussée, je la change, ainsi que le corps de chauffe. Cela va mieux, mais pas assez, le stringing est encore présent. J'accuse tout de suite l'humidité de ma bobine. Elle est vieille (largement plus d'un an) et entreposée dans un garage sans grande précaution. Je découvre qu'il existe des armoires à atmosphère contrôlée, des séchoirs à bobines [SEC] etc. J'opte pour une solution simple : monter la bobine à l'étage, où il fait plutôt trop sec. Pendant qu'elle sèche, je sonde les personnes de mon Hacker Lab quant à leur bobine de PLA préférée, en restant à des prix raisonnables. J'acquièrs une bobine eSUN, et je réimprime. ___ / \ | O | \___/_____________ C'est beaucoup mieux, mais le stringing est quand même là. Je suis tenace, car je sais que j'ai déjà eu de bien meilleures impressions. Je me documente [RETRAC]. A ce stade, j'aurais pu écrire un article complet sur le stringing sous toutes ses formes :) Cela peut provenir de la distance et de la vitesse de rétractation du fil notamment : si le filament continue à couler pendant que la buse se déplace, on obtient ce fameux fil inesthétique. Je joue avec la configuration, mais c'est sans effet. Au hacker lab, on me parle alors de température d'impression. Sur la boite de mon filament, il est marqué que je dois imprimer vers les 210°C. Mais: 1. Est-ce que je suis vraiment à 210° lorsque l'imprimante croit y être ? 2. Cette température est une recommandation générale. Dans la pratique, chacun imprime à la température adéquate pour son imprimante, le filament et la pièce où on se trouve. Pour trouver cette température, une pratique simple est l'impression d'une "tour de température" [TEMP]. Chaque étage de la tour est imprimé avec une température croissante, par paliers, du genre de 180 à 230°. A l'impression, on voit très nettement la meilleure température pour son cas. C'est donc ce que je fais, et ô surprise, la meilleure température pour moi est vers 186°C. C'est assez bas, éloigné des 210°C : je n'avais jamais tenté d'imprimer à cette température alors que cela fonctionne à merveille. Au passage, quand même, j'en profite pour contrôler le PID de la température [PID] de mon imprimante. Le PID est l'algorithme qui régule la température de la buse et du plateau. S'il n'est pas bon, cela peut poser des problèmes comme le stringing (ou des problèmes plus graves). Mais tout va bien, ouf. J'ai donc maintenant des pièces qui s'impriment bien, sans stringing, et de bonne qualité. Je suis contente d'être allée jusqu'au bout de cette étape, de ne pas avoir abandonné en me disant "oh, il y a un peu de stringing, c'est pas grave, je poncerai". En m'y penchant, j'ai beaucoup appris, et je suis maintenant bien mieux armée pour faire face à des problèmes similaires. -- Les chenilles du Wall-E -- En guise de pieds, Wall-E est affublé d'une chenille de chaque côté de son corps. Les chenilles sont constituées de bandes étroites et assemblées sur leur côté long. Pour éviter d'imprimer une centaine de bandes, le concepteur a directement pré-assemblé une vingtaine de bandes d'un seul coup et on imprime cette plaque pré-montée. Très bonne idée. Chaque "pied" est fait de deux plaques qu'on accroche l'une à l'autre pour faire une chaine plus longue. De petites attaches de la première plaque viennent se loger dans les encoches de la 2ème plaque. Cela permet de les relier. Sur la vidéo de Jeje95, cela marche très bien. Très honnêtement, je ne sais pas comment il a fait. Moi, c'est impossible. Ces attaches sont trop petites : elles se tordent. Pareil, les encoches sont petites et comme on ne peut pas utiliser de support d'impression à ces endroits, le PLA "goutte" un peu, et l'impression n'est pas totalement précise. Du coup, les attaches ont du mal à rentrer. J'en rentre une, l'autre sort. Je bataille, je casse des attaches, je réimprime, je re-casse etc. Je tente une impression non pas en PLA mais en TPU. C'est un filament fait pour les parties flexibles. Je me dis qu'il conviendra bien pour des chenilles, et que, peut être, il sera plus facile de relier les bandes en TPU. Cependant, l'impression de TPU est plus compliquée que celle du PLA : mes bandes ont bien cet aspect souple que je recherche pour des chenilles, mais la précision est moins bonne, donc les attaches et encoches sont moins précises et au final j'abandonne ce matériau. Je suis prête à passer les chenilles par la fenêtre. J'expose le problème à mon cher et tendre qui regarde, essaie, et décrète que ça ne marchera jamais, qu'il faut opter pour une autre solution. Il me propose de relier les deux plaques par du fil de fer, en perçant des trous aux points d'attaches. C'est un peu moins beau - quoique cela donne un aspect "récup" qui convient très bien à Wall-E, puisque c'est un robot poubelle. - mais c'est très solide. -- D'autres péripéties d'impression -- J'ai oublié de dire que les chenilles s'enroulent autour d'une structure d'engrenages. Ces engrenages sont censés entrainer la chenille. C'est un peu serré, c'est fait exprès car sinon la "chenille va flotter" et sortir de son emplacement. Mais ce n'est pas facile à assembler non plus. A force de tirer par ci et par là, évidemment, je casse des engrenages. N'allez pas croire que j'ai deux mains gauches. Sans me vanter, j'ai l'habitude de faire des maquettes et du travail assez minutieux. Il faut donc les réimprimer. Si vous n'avez jamais imprimé en 3D, une impression c'est toujours lent. Rares sont les pièces qui s'impriment en moins d'une heure. Les impressions prennent vite 1 ou 2 heures pour des pièces d'une dizaine de centimètres carrés. La même histoire se répète sur la tête de Wall-E : lorsque j'insère la tête dans le cou, paf, la pièce se casse. Autant réimprimer un engrenage prend moins de 2 heures, autant la tête est un gros élément qui nécessite plus de 8 heures d'impression. Plutôt que de réimprimer, et aussi parce que le système d'assemblage ne parait pas très rusé / solide, mon conjoint me propose de percer et visser le cou dans la tête : simple, mais beaucoup plus solide. Enfin, je tais quelques petits problèmes de précision sur l'assemblage du corps de Wall-E. Le corps est un cube, assemblé côté par côté. Mes impressions sont plutôt bonnes, mais tout de même, sur certains côtés, il faut que je ponce pour que cela s'ajuste bien. Poncer, c'est la seconde nature des gens qui font de l'impression 3D ! Il y a les erreurs bêtes aussi, du genre j'ai imprimé deux jambes gauches (j'appelle "jambe" la connexion entre le corps de Wall-E et sa chenille). Ces déboires sont assez bénins, mais ils prennent du temps. Ils laissent également planer une interrogation : pourquoi est-ce que rien de tout ça n'est montré sur la vidéo d'assemblage ? Suis-je vraiment bête (aie) ? Je ne vois pas comment éviter certains des problèmes que j'ai rencontrés - à mois de posséder une imprimante vraiment haut de gamme... -- Parlera-t-il ou ne parlera-t-il pas ? -- Au niveau de la programmation, je suis plus à l'aise donc je peux plus facilement voler de mes propres ailes. A la place de l'ESP32 prévu par Jeje95, j'opte pour un vieux Wemo D1 mini [WEMO] parce que je l'ai en stock. Prudente, je commence à câbler et tester les composants un à un. Notamment, je n'ai jamais utilisé le player MP3-TF-16P [MP3], qui permet de jouer des MP3 stockés sur une carte SD. Je relie le composant à mon Wemo et à un haut parleur. Je récupère des sons de Wall-E et je les mets sur la carte micro SD en respectant les noms de répertoires : les fichiers doivent être mis dans un répertoire "MP3" et s'appeler 0001.mp3, 0002.mp3 etc. J'essaie de jouer les sons, mais le lecteur n'est même pas reconnu :( + -------------------------------------------------+ | Initializing DFPlayer ... (May take 3~5 seconds) | | Unable to begin: | + -------------------------------------------------+ Il me faudra bien trop de temps pour réaliser que je me suis trompée sur le schéma de câblage, que RX et TX ne vont pas du tout au bon endroit... Je rectifie, cette fois-çi mon player est reconnu, mais pas moyen de jouer les MP3. J'y passe un bon moment, je ne vois aucun problème. Je finis par incriminer le composant en lui même et tester sur un autre MP3-TF-16P: même résultat. Je teste de nombreuses librairies (DFRobotDFPlayerMini, DFPlayerMini_Fast...), je rajoute un peu de temporisation entre deux requêtes au cas où ça aille "trop vite" pour le player, je re-formatte la carte SD en testant d'autres casses pour les répertoires et fichiers: mp3, 0001.MP3... Rien n'y fait. Là, je me souviens d'un vieux problème qu'un créateur de challenge avait rencontré pour ph0wn CTF : son challenge ne fonctionnait qu'avec des cartes micro SD *8G*, pas avec des cartes plus grosses comme 32 ou 64G. Je regarde donc ma carte : non c'est bien une petite 8G, mais j'ai une carte 16G: si je testais avec ? Et voilà, c'est la solution ! Ma carte 8G n'était pas reconnue (timeout), tandis que la 16G fonctionne. _________ | | | MICRO | | SD | | | |_|_|_|_|_| Je teste à nouveau : j'obtiens un son, mais pas moyen de jouer tous les sons à la suite les uns des autres : mon programme n'arrête pas de rebooter. J'inclus de bêtes printf dans mon code pour mieux comprendre ce qui se passe. C'est horrible à déboguer, car ça reboote intempestivement, pas toujours au même endroit et je me lance dans de fausses corrélations sur mon code et les crashs. Puis, au bout d'un moment, j'ai un sursaut d'intelligence (ben oui, ça sert...) : si c'était juste un problème d'alimentation ? Et oui, j'alimente mon équipement via une rallonge USB fixée à un hub USB sous forme de R2D2. Oui, oui, ça va, arrêtez de rigoler ;-) L'objectif est d'éviter de connecter mes devices USB sous le bureau, car ma tour est dessous. Mais évidemment, c'est un très mauvais choix en terme d'alimentation pour des composants comme les Arduino, Raspberry Pi etc. Je connecte donc directement mon matériel au port USB de ma tour, et là, miracle, ça joue nickel. -- Exit le Wemo -- Je décide de passer au test de l'écran LCD. Oh la la : ça fait un paquet de fils sur un breadboard ça. C'est là que je réalise en comptant tous les GPIO qu'il me faudra qu'il en manque (de peu) sur le Wemo. Je ne vais pas pouvoir les inventer, je vais devoir changer de composant. N'ayant rien d'autre en stock avec plus de pins, j'achète un ESP32-WROOM32-32. Je porte mon code soigneusement codé pour ESP8266 sur ESP32: les librairies changent, l'interface n'est pas tout à fait la même, mais ça se passe bien, et assez vite. Ça marche : j'arrive à afficher à l'écran. Je donne un peu libre court à mon imagination pour afficher des Pico le Croco, le logo de Ph0wn, le logo du SHL (mon hacker lab). Je m'amuse un peu :) J'ajoute le player MP3 et le haut parleur : ça marche toujours. Voici où j'en suis actuellement : le robot est terminé en terme d'impression, il faut un jour que je m'arrête d'ajouter des gadgets inutiles dans mon code, et que je teste l'aspect tactile de l'écran (je n'ai pas encore câblé cette partie). Ensuite, il faudra souder l'ensemble sur une plaque de prototypage plutôt qu'un breadboard, mettre dans le corps du Wall-E, refermer et profiter :) -- Conclusion -- Mon Wall-E sera "bientôt" terminé (enfin, il faut que je dégage un peu de temps pour m'y plonger), et je l'exhiberai avec plaisir. Je suis certaine que, même s'il fera son effet, et que je glousserai de joie devant les "aaah" et les "oooh" des amis, aucun d'eux ne réalisera le temps que cela m'a pris. Un temps tout à fait déraisonnable pour un objet "qui ne sert (quasi) à rien". C'est clairement le *chemin* qui compte. Je n'ai pas seulement monté un Wall-E, j'ai surtout appris et passé du bon temps. Ceci n'est pas réservé aux projets de Hackerspace d'ailleurs. On retrouve le même principe avec les fameux "write-up" de CTF. Ils ne nous montrent (généralement) que le chemin gagnant. C'est oublier le fait qu'on passe une grande partie du temps à se tromper, recommencer, réessayer, sans parler des effets de la fatigue après 6h de compétition. Vous avez devant vous une vidéo de 10 minutes qui vous explique comment réaliser votre projet ? Soyez lucides : les vidéos montrent rarement le revers de la médaille, vous mettrez donc beaucoup plus de temps. Mais si la partie "bricolage" vous plaît, si vous aimez expérimenter, tester, re-tester, alors foncez. Au final, c'est un passe-temps intéressant et peu coûteux. -- Cryptax [VIDEO] https://www.youtube.com/watch?v=2QGqMb3aLg4 [WALL1] https://www.thingiverse.com/thing:6578977 [JEJE] https://jeje-linge.fr/en/products/alarm-clock-and-wall-lamp [CODE] https://github.com/jejelinge/WALL-E [WALL2] https://www.thingiverse.com/thing:3703555 [SEC] https://all3dp.com/fr/2/secher-filament-pla-abs-nylon/ [RETRAC] https://www.youtube.com/watch?v=GXSqZ68UdsE [TEMP] https://www.youtube.com/watch?v=N4Yt4tmFxho [PID] https://teachingtechyt.github.io/calibration.html#pid [WEMO] https://www.wemos.cc/en/latest/d1/d1_mini.html [MP3] https://www.instructables.com/Tutorial-of-MP3-TF-16P/ -- EOF --