|\__/ | (`\
    _.|o o  |_ ) )
---(((---(((--------
GRENOBLE HACKERSPACE

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  (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 --
<< Retour