J'en parlais récemment, j'ai profité de mon temps libre de ces dernières semaines pour apporter la touche finale à mon Super Minitel. Le résultat est plutôt probant, bien qu'il y ait des améliorations à apporter, à mon humble avis.
Ajout d'un support pour Raspberry Pi
J'ai ressorti mon bon vieux OpenScad afin de concevoir un support pour tenir le Raspberry Pi et sa carte d'adaptation vidéo/clavier dans le Minitel. J'ai opté pour une fixation par collage sur le Minitel, avec un espace pour laisser passer le connecteur de clavier. Le Raspberry Pi est fixé avec un vis, tandis qu'un ergot vient se loger dans le second emplacement de vis et empêcher tout mouvement.
Je l'ai ensuite imprimé sur ma Prusa i3, puis testé à blanc avec le Raspberry Pi. J'ai enfin monté le tout dans le Minitel, en prenant soin de maintenir l'ensemble avec des pinces serrantes. C'est franchement pratique ces pinces, j'ai découvert leur utilité grâce à Babozor et ses conseils de la Grotte du Barbu !
Après une nuit de séchage, j'ai pu fixer le Raspberry Pi dessus et tester le bon fonctionnement du clavier rétractable (qui passe du coup en dessous du Rasp).
Intégration du son
Après avoir commandé tout un lot de composants pour ajouter un ampli audio dans le minitel et les avoir soudé, j'ai pu tester le rendu. C'est pas trop mal, mais il y a un shhh de fond qui est plutôt gênant, ça doit être du au fait que mon ampli n'intègre pas de filtre ... Ceci dit en ajustant correctement le volume, on ne l'entend quasimment plus.
Pour la fixation, même recette que précédemment: j'ai conçu un support adapté au PCB (avec une seule vis pour la fixation, j'ai été radin), je l'ai imprimé et collé dans le Minitel.
Le rendu son n'est pas merveilleux, mais ça donne un bon vieux son old school, j'aime bien :). Pour terminer, j'ai conçu et imprimé un guide de perçage afin de faire des petits trous sur le côté du Minitel à l'endroit où se trouve le haut-parleur afin de laisser le son se diffuser.
Je l'ai imprimé, et je m'en suis servi de guide pour percer les trous sur le Minitel. Le rendu est très propre, et n'a nécessité aucun tracé particulier, juste la fixation du guide avec une pince auto-serrante.
Déco finale
S'il y a bien un domaine dans lequel je suis une quiche, c'est la déco. Je suis une bille en peinture, pochoirs, dessin, etc. Mais je ne voyais qu'une seule manière de décorer ce super Minitel: repeindre la carcasse en blanc cassé, et peindre un sigle «Super Minitel» au pochoir.
J'ai donc commencé par concevoir un pochoir sur Inkscape. En reprenant des polices de Nintendo et en bidouillant un peu, j'ai réussi à imprimer un motif noir sur blanc sur du papier photo. Après un petit tour chez Cultura pour acheter de la peinture en bombe et à pochoir, quelques babioles et de la colle repositionnable en spray, j'ai entamé à la main la découpe des caractères. Un bon gros fail. Peu de précision malgré l'utilisation d'un cutter très fin, et l'encre bavait sur mes mains. Il fallait trouver autre chose.
Je me suis rabattu sur l'impression 3D: en effet, quoi de mieux que d'imprimer un pochoir en 3D et de s'en servir pour peindre le motif ! C'était sans compter deux éléments importants pour des pochoirs. Le premier, c'est que lorsque l'on crée des pochoirs, on ne peut pas raisonnablement réaliser de belles lettres possédant des vides, comme les lettres P ou R. On est obligé de laisser une liaison pour que la partie masquant l'intérieur "tienne". Le rendu en est forcément moins bon. Second point, il doit être assez fin pour masquer et tenir correctement sur le support. Avec l'imprimante 3D, imprimer fin c'est imprimer pour rien. Lorsque l'on décolle le motif imprimé, il se plie et généralement cette déformation reste. C'est du plastique (PLA dans mon cas), donc assez difficile à reformer, et la colle repositionnable n'y a rien fait. Il ne me restait qu'à tester mon pochoir épais (1mm) afin de voir si le rendu serait correct.
Ma dernière erreur avec les pochoirs a été de penser que la colle repositionnable c'était LA solution. En réalité, elle a créé des petits points de colle sous le pochoir, et l'encre s'est enfournée sous le pochoir à cause de l'irrégularité de celui-ci et de l'espace vacant laissé par la colle en spray. Merci les tutos Youtube, mais cette fois-ci ça ne m'a pas aidé. heureusement que j'avais fait des tests sur carton et papier avant de me lancer sur le Minitel...
J'étais pas loin d'abandonner quand j'ai eu une idée toute simple: pourquoi ne pas imprimer les lettres avec l'imprimante 3D et les coller de façon jolie sur la carcasse du Minitel ? De cette façon, on obtient un effet de relief et un beau contraste blanc cassé/noir qui est du plus bel effet (enfin je crois). J'ai donc modélisé les lettres en convertissant le modèle SVG en SCAD (merci paths2openscad !) et les ai imprimé à l'envers pour que le côté lisse corresponde à la partie visible (de face) et donne un rendu moins "imprimante 3D". Le résultat est très probant je trouve.
j'ai ensuite placé les lettres, les ai collé et ai attendu que cela sèche. J'ai fait l'erreur de marquer l'alignement au crayon papier, et cela se voit encore un peu de très près, c'est dommage. Je prendrais une équerre pour le prochain exemplaire et ne tracerai aucun trait, cela sera plus propre.
Résultat final
Au final, j'ai un Super Minitel qui ressemble exactement à ce que je voulais, qui accepte jusqu'à deux manettes Super NES en USB (pratique pour Street Fighter, mais on peut aussi jouer grâce au clavier), et qui attire la curiosité avec son aspect "presque" Super Nintendo.
Je vais le beta-tester à la maison afin de déceler de potentiels défauts de conception avant de le donner à un généreux soutien du projet OpenIt, et d'en faire deux autres pour les deux autres soutiens ayant choisi cette récompense.
Il me reste encore quelques Minitels un brin différents à la maison, certainement l'occasion de me faire la main sur la soudure CMS à air chaud ;). Il me faut absolument un exemplaire à la maison, et les minis-moi auront obligation d'y jouer (vous en conviendrez: Super Mario World, Street Fighter II, Bomberman 3 et Worms sont des jeux formidables o/).
Ah et si vous voulez tenter de reproduire ce hack, j'ai mis des ressources à disposition (majoritairement les PCBs, les fichiers de conception 3D ainsi que le software permettant d'interfacer le clavier). Il manque encore des éléments (comme la liste des composants pour les PCBs, mais ça viendra -- il y aura peut-être des modifications suite au beta-test).
Cela va faire quelques mois que je me suis plongé dans l'impression 3D, à la fois pour découvrir le monde des RepRap (ces imprimantes opensource permettant le prototypage rapide) mais aussi pour avoir un nouveau terrain de jeu. Du coup, c'est tout plein de possibilités et de challenges qui s'offrent au hacker curieux que je suis !
Un autre compilateur
A l'instar d'un compilateur, l'imprimante 3D permet de donner vie à des idées. Plus que cela, elle se révèle être un outil permettant de créer ses outils. Mon intérêt quant à cet objet est donc important, similaire à celui que j'ai eu lorsque j'ai découvert la programmation. A cette époque j'avais plein d'idées d'outils à mettre au point, et la programmation m'a permis de concrétiser cela. Dès lors, plus aucune limite: je pouvais combler le manque d'un outil par la programmation, moyennant quelques efforts de conception et d'implémentation. Je redécouvre cela avec mon imprimante 3D. L'analogie avec le compilateur n'est pas anodine car ces derniers temps je m'essaie à OpenScad, un outil fabuleux permettant de littéralement programmer ses pièces. Du code pour produire des pièces réelles, c'est simplement efficace !
A force d'utiliser mon imprimante 3D, j'ai eu des idées de pièces (des outils en quelque sorte) qui pourraient me simplifier la vie, de corrections de petits défauts de mon imprimante ou encore des idées de projets assez fun. J'ai commencé à modéliser des pièces selon mes premières idées, avec un résultat fonctionnel (cf. mon billet précédent), et j'en étais déjà très content ! Mais j'ai aussi rapidement compris que non seulement une imprimante 3D était capricieuse, mais qu'en plus la conception des pièces avait à la fois une influence sur le temps d'impression, la quantité de filament consommé et la résistance des pièces finales. Rien que cela. C'est à ce moment que j'ai compris que créer une pièce résistante qui consomme le moins de filament possible tout en assurant un temps d'impression relativement court relève du défi.
Surtout lorsque je me suis mis en tête de créer mon propre support de bobine de filament de plastique, parce que bon, aucune ne me convenait (il fallait à chaque fois plusieurs pièces supplémentaires commes des vis spécifiques, des écrous, des roulements, des tiges filetées, etc ...). Les ennuis ont commencé à ce moment précis (pour mon plus grand bonheur).
Les dures lois de la mécanique
Avant d'entrer plus dans les détails des contraintes de la conception de pièce 3D à destination d'une imprimante 3D par dépôt de fil, je dois préciser tout de même certains pré-requis en terme de mécanique.
La première chose que l'on m'a enseigné en mécanique durant mes années de Première et Terminale S option Sciences de l'Ingénieur a été les différents types de liaisons existantes. Tant que l'on ne conçoit pas réellement de système mécanique, on ne voit pas l'intérêt de connaître ces liaisons, tout comme la réalisation de ces différentes liaisons en pratique.
Prenons l'exemple de mon support de bobine: il nous faut donc un assemblage de pièces permettant une rotation sur un axe (on parle alors d'un degré de liberté) et seulement cette rotation. La liaison équivalente est un pivot, qui n'autorise qu'un degré de liberté. Bon, ça c'est la théorie. En pratique, il semble nécessaire d'utiliser au moins un roulement à bille pour assurer une rotation optimale, comme c'est le cas pour plusieurs pièces de l'imprimante.
Le hic, c'est qu'on ne peut pas en utiliser qu'un seul, car le jeu (même minime) du roulement fait que la liaison associée n'est pas un pivot mais une rotule. Autrement dit, si on envisage de monter un axe de rotation vertical supportant la bobine, il a de grandes chances de basculer d'un côté ou de l'autre et donc de ne pas remplir son office. C'est pourquoi on emploie généralement au moins deux roulements montés sur un même axe quand on cherche à réaliser ce genre de liaison. Or qui dit utiliser un axe dit employer de la tige filetée ou pire, un axe en plastique imprimé ou une tige lisse (qui coûte les yeux de la tête). Cet exemple sur Thingiverse ou encore [celui-là->http://www.thingiverse.com/thing:545954] montrent bien la solution communément adoptée.
Or je m'étais fixé des contraintes spécifiques quant à mon support de bobine: * montage/démontage facile * si possible sans vis/écrou/tige filetée * utilisation de roulements en surplus type 608zz * support d'un maximum de diamètres de bobines
Aucun des supports que j'ai trouvé sur Thingiverse ne remplit ces critères, par contre l'imprimante micro delta d'Emotion Tech que j'ai eu l'occasion d'apercevoir au dernier Toulouse Hacker Space Factory utilise un mécanisme reposant sur trois roulements servant à faire pivoter la bobine, associés à trois butées. Seule la rotation sur l'axe vertical est possible (la translation étant supprimée du fait de la gravité). C'est l'équivalent d'une liaison pivot, mise en oeuvre à l'aide de trois roulements. Ce principe m'a semblé très intelligent, et j'ai donc décidé de m'en inspirer pour mon design.
Début de conception
Après avoir gratté pas mal de schémas sur papier, j'ai fini par avoir une idée précise du fonctionnement de mon support.
Le support est constitué d'une base à trois pieds, suffisamment large pour éviter le basculement, et chaque pied supporte un roulement en son extrémité. Le roulement est incliné de 45° vers le centre du support, ce qui permet de supporter un plateau tout en empêchant la translation sur deux axes (X et Y). On peut très aisément choisir un plateau adapté au diamètre de la bobine: le fait que le plateau soit posé sur les trois roulements permet une manipulation simple et un changement rapide.
Afin d'éviter toute vis et écrou, j'ai pris la décision de faire en sorte que les roulements soient clipsables, c'est à dire que les axes supportant ces derniers ressemblent à ceux de cette pièce Lego:
En théorie, cette conception semblait parfaite.
Première réalisation, premier fail
Avant de me lancer dans la réalisation du trépied de support, j'ai d'abord conçu le support de roulement clipsable. Je l'ai par la suite imprimé, et il m'a bien fallu trois essais afin d'arriver à trouver les bons ajustements permettant une insertion aisée tout en assurant un maintien en place efficace.
Une fois ce support testé et approuvé, je l'ai intégré sur un montage de trépied, sans grande difficulté. Je l'ai ensuite imprimé, et testé malgré un plantage de l'ordinateur en cours d'impression (ce qui explique que les axes ne soient pas terminés, mais même avec cela ça fonctionne parfaitement). J'ai par ailleurs conçu une première version du plateau, que j'ai imprimé et testé. Et c'est là que tout a commencé à ... pas marcher.
Un des inconvénients de l'impression 3D par dépôt de filament est que la précision de l'imprimante varie selon la précision de la mécanique (liée aux courroies, réglages moteurs et accélérations/décélération subies) mais aussi selon la précision du filament. En effet le diamètre de ce dernier peut ne pas être constant, et la quantité de plastique apportée varier en conséquence. Il en résulte des surfaces relativement propres, mais qui d'un point de vue micrométrique possèdent des imperfections.
Rappelez-vous, j'utilise trois roulements pour réaliser une liaison pivot théoriquement parfaite, sauf qu'avec ces imperfections la surface de contact entre le plateau et un roulement se résume à un seul point: c'est une liaison appui-plan, et c'est le drame ! En effet, trois appuis-plan sur trois plans inclinés à 45° et concourant forment une liaison rotule et non une liaison pivot. Ce qui devait arriver arriva: lorsque j'ai testé en conditions réelles mon support, le plateau ne faisait que basculer comme un culbuto. Inutilisable en l'état.
Seconde conception
En considérant donc mes trois roulements en liaison rotule avec le plateau, il me fallait ajouter un appui-plan pour former un équivalent de liaison pivot. En gros, assurer un ou plusieurs appuis afin d'éviter tout basculement. Ce problème fut donc résolu en faisant en sorte que la partie horizontale du plateau entre en contact avec la bague extérieure du roulement, assurant ainsi un appui-plan d'un côté et rotule de l'autre. Autrement dit, une véritable liaison pivot.
Afin d'assurer l'appui-plan, il m'a fallu ajouter une tolérance entre la partie en contact avec les roulements et les roulements: un ajustement trop serré aurait eu pour conséquence de former à nouveau une liaison rotule. En autorisant une très légère translation (un jeu) sur les axes X et Y on assure le bon fonctionnement du mécanisme tout en permettant une qualité d'impression variable (dans les limites du tolérable).
En contrepartie, le roulement subit un effort radial et axial, mais le type de roulement choisi encaisse sans encombre ces efforts, tout comme le trépied qui les supporte.
Il me restait toutefois un problème: comment concevoir un disque imprimable sur une imprimante 3D ayant des anneaux des deux côtés ? Il faut bien avoir une bague centrale afin d'éviter toute translation de la bobine et assurer la rotation du plateau, cependant il y a aussi de l'autre côté du plateau un anneau dont un des pans est incliné à 45° et qui repose sur les roulements. Impossible d'imprimer sur une surface plane en l'état: on ne peut déposer de matière en suspension.
Si l'on ne peut pas imprimer la pièce en un bloc, on peut tout de même la décomposer en deux pièces faciles d'impression qui peuvent être par la suite assemblées: une première pièce est constituée du plateau et du support incliné sur lequel vont reposer les roulements tandis que la seconde est une bague surmontée d'ergots venant s'enficher dans le plateau, dans lequel on aura prévu des trous adéquats. Grâce à cette astuce, aucune vis ni écrou: la bague est insérée de force dans les trous, et le tout tient en place grâce à la flexibilité du PLA. Et le tout est facilement imprimable.
Le design final du support de bobine est donc le suivant:
Optimisation des pièces
Cette seconde version de mon support de bobine a demandé environ quatre heures d'impression cumulées, ce qui est beaucoup vu les pièces. Il y a plusieurs explications qui justifient cette durée:
Le support seul prend environ 1h40 à imprimer (avec un remplissage à 10%), mais vu les détails requis pour les axes supportant les roulements, ce n'est pas trop cher payé. Le plateau quant à lui prenait initialement le même temps, ce qui est excessif.
C'est donc ce dernier qui a subit un lifting pour réduire la durée d'impression et la consommation de filament, bien qu'il n'en utilise pas tant que cela. Pour ce faire, j'ai réduit l'épaisseur du support principal à 1 mm, ce qui a trois avantages: réduire la quantité de matière requise et le temps d'impression, mais aussi avoir un nombre de couches exact car j'imprime par couche de 0.2 mm.
En complément, l'épaisseur globale a été revue à la baisse ce qui fait que ce plateau prend moins d'une heure à être imprimé. Cela fait un total d'environ trois heures pour l'impression du support complet, je ne pense pas pouvoir descendre en dessous sans impacter la robustesse de celui-ci.
Pour terminer, j'ai tout simplement modifié les axes de support de roulement pour retirer la partie clipsable: l'impression était vraiment horrible, et les segments trop petits pour une impression de précision avec ma Prusa i3. Je les ai remplacés par des axes pleins mais en prenant soin de bien ajuster le diamètre pour que le passage des roulements se fasse sans encombre, tout en assurant un bon maintien.
Au final, j'ai conçu un support de bobine polyvalent, qui n'a besoin d'aucun élément externe autre que les roulements, qui se monte et se démonte facilement, et qui supporte tout type de bobine du moment que l'on place la bague adéquate sur le plateau.
OpenScad FTW
Pour la conception des pièces de mon support de bobine, j'ai utilisé la solution opensource OpenScad. Ce logiciel permet comme je le disais en introduction de programmer ses pièces à l'aide d'un langage adéquat, ce qui permet de créer des pièces paramétriques (on peut faire varier certaines composantes) et de les générer dynamiquement. Il permet par ailleurs de déboguer/tester/adapter les pièces sans avoir à tout refaire, contrairement à un logiciel de CAD standard.
Le code source de l'ensemble des pièces est disponible sur Thingiverse.
Hacker ou Maker ?
Grâce à ce petit projet j'ai pu replonger dans mes résidus de cours de mécanique, ce qui ne s'est pas fait sans mal, et goûter aux joies du «making». C'est fun, on crée d'une manière différente mais plus concrète, et on apprend. Je crois qu'au final c'est ça l'essentiel: découvrir encore de nouvelles choses et apprendre. Et il me reste encore beaucoup de choses à apprendre !