05
nov.
'15

Minitel, imprimante 3D: les projets avancent

Publié le 05 novembre 2015

Je me rends compte que cela fait plusieurs mois que je n'ai rien publié ici, et je m'en désole. Cependant les choses avancent bien de mon côté, quoique pas aussi vite que je le souhaiterais. Et j'ai encore beaucoup de retard sur les contreparties du projet Open It, mais comme le titre l'indique j'avance doucement mais sûrement.

Une fournée de Minitels

J'ai continué la collecte de Minitels afin de pouvoir en fournir trois aux gentils soutiens, ainsi que la carte v3 d'adaptation. J'ai reçu les PCBs récemment, mais vu que je vadrouille énormément ces derniers temps (j'ai fait le tour de l'Europe et c'est pas fini), je n'ai pas pris le temps d'en monter une et de tout souder. D'autant plus que j'ai pu repérer quelques défauts que je vais devoir corriger dans une v4 (avec une autre commande de PCB du coup), mais ça ne devrait pas a priori impacter le fonctionnement de celle-ci.

Depuis presqu'un an mon entourage sait que je recherche des Minitels, et ils m'en ont récupéré quelques-uns: récemment une fournée de 4 minitels m'attendait ! Le problème est qu'il s'agit de modèles Matra, un brin différents de celui pour lequel ma carte d'adaptation a été conçue, et je vais peut-être devoir adapter un peu celle-ci s'il n'est pas possible de régler cela via la connectique.

L'imprimante au chaud sur le plan de travail.

A fond sur l'impression 3D

Cela fait presque un an que je travaillais sur mon imprimante 3D (Prusa i3), et j'ai récemment pu la terminer (via une savante combinaison de commandes et de temps disponible) et la tester. Elle fonctionne bien, mais il y a quelques réglages à faire afin de sortir des pièces de bonne qualité.

En parlant de qualité, je me suis rendu compte que certaines pièces se fendillaient, et qu'elles pourraient casser dans pas très longtemps. J'en ai donc profiter pour les réimprimer tant que l'imprimante fonctionne toujours, histoire d'avoir du surplus en cas de casse. Je pense aussi réimprimer d'autres pièces moins critiques une fois les réglages fins terminés. Ce n'est pas du luxe: le PLA est apparemment cassant, et si des pièces ont été insérées de force (c'était le cas pour certaines pièces fêlées), alors les risques de casse augmentent. Et je n'ai pas envie de me retrouver bloqué et dépenser des sous pour les faire imprimer et livrer alors que j'avais une imprimante fonctionnelle sous le coude.

Fêlures observées sur le support de guide de l'axe Z

De manière générale, l'imprimante fonctionne bien et je pense qu'une fois les réglages terminés et les pièces fêlées remplacées, elle devrait être aux petits oignons et parée à imprimer de nouveaux kits, si certains sont intéressés. Je me suis aussi initié à la CAD sous Linux (OpenSCAD et FreeCAD) afin de pouvoir commencer à concevoir des pièces liées à des projets connexes. J'ai une petite préférence pour OpenSCAD, car l'aspect programmatique (et donc paramétrique) des pièces qu'il permet de concevoir est très intéressant. Quant à la conception rapides de pièces, FreeCAD est d'un bon secours. Ça me rappelle mes années de SolidWork.

Quadcopter

Avant de me lancer dans la réalisation d'un quadcopter maison, j'étais persuadé qu'il fallait apprendre à bien les piloter afin de pouvoir manipuler un engin expérimental. Coup de chance, en participant à un CTF il y a quelque temps, j'en ai gagné un et cela fait bientôt un an que je m'entraîne avec. Pour le coup, j'ai bien pris en main la mécanique de vol de ces engins, et entre temps décortiqué leur conception.

Ainsi, je compte bien me servir de l'imprimante 3D pour concevoir le cadre d'un petit quadcopter, et développer la carte de contrôle en mode opensource et basée sur des éléments simples. Dans un premier temps, je pense que je me pencherai sur une carte de contrôle existante, histoire de bosser sur des adaptations au niveau firmware, puis je passerai à la phase de conception et de test. L'idée est d'utiliser un émetteur/récepteur 2.4Ghz pas cher pour assurer la transmission radio, et du matériel standard pour construire le quadcopter. Au final, les plans divers seront publiés en espérant que cela soit fun et instructif.

Transition 2015/2016

Une grande partie de l'année 2015 est passée à une vitesse folle, et du coup je commence déjà à planifier (et limiter) les projets pour 2016: * minitel v3 avec carte aux petits oignons avant Noël (pour faire des cadeaux aux soutiens qui les attendent depuis 2 ans) * finalisation de l'imprimante 3D (réglages et modifications techniques) * conception d'une borne d'arcade basée sur du RaspPi2 ou RIoTboard (selon les tests) * quadcopter de la mort (ou pas)

Je compte aussi comme depuis quelques années proposer une présentation pour la Nuit du Hack, et pourquoi pas participer une année de plus à Ndh Kids. Ou alors faire un atelier, mais pas les deux car cela demande beaucoup d'investissement.

17
mars
'14

Raspio32, un module d'extension de GPIOs OpenSource pour Raspberry Pi

Publié le 17 mars 2014

Lorsque j'ai bidouillé mon clavier de minitel, et que j'ai notamment essayé de l'interfacer avec un Raspberry Pi (acheté chez Farnell, rappelez-vous), je me suis rendu compte que les GPIOs de ce dernier étaient vraiment limitées. Pour interfacer correctement le clavier, j'avais besoin de 17 GPIOs, alors que le RaspPi ne m'en offrait que 10 maximum. J'ai donc décidé de créer un module d'extension pour pouvoir prototyper sur Raspberry Pi, fournissant 32 GPIOs.

Raspberry Pi et son bus I²C

Après avoir passé un peu de temps à chercher sur Internet les solutions techniques connues pour Raspberry Pi, j'ai opté pour la solution la plus évidente: l'emploi du bus I²C («Inter Integrated Circuit»). Ce bus permet d'interfacer des composants électroniques, et notamment des convertisseurs série vers parallèle, comme le MCP23017. La communication avec ce composant est réalisé via deux fils (un signal d'horloge et un signal de donnée, ce qui correspond à une communication série) et permet d'utiliser 16 entrées/sorties (aussi appelées GPIOs pour «General Purpose Input/Output»).

Ces modules sont adressables, avec un codage d'adresse sur 3 bits. Cela signifie que l'on peut en chaîner au maximum 8, et potentiellement adresser 8*16 = 128 GPIOs. 32 seront suffisantes pour ce que je veux faire, et de plus il faudrait que le PCB soit à peu près de la taille du Raspberry Pi, pour que l'on puisse l'enficher un peu comme un shield Arduino. Plus intéressant, Lady Ada (une ingénieure en électronique/informatique qui a créé le site AdaFruit -- une référence -- a écrit une série d'articles sur la manière d'interfacer le Raspberry Pi avec un ou plusieurs MCP23017.

Plusieurs modules d'extension de ce type existent déjà sur Internet (comme [celui-ci->https://www.modmypi.com/protect-your-pi], ou encore [celui-la->http://www.abelectronics.co.uk/products/3/Raspberry-Pi/18/IO-Pi-32-Channel-Port-Expander-for-the-Raspberry-Pi-computer-boards]), mais il faut débourser d'une dizaine d'euros (sans les frais de port) à une trentaine d'euros. Pis, aucun PCB n'est disponible, et les schémas jalousement gardés. Qu'à cela ne tienne, j'ai alors opté pour la conception d'une version 100% OpenSource, et peu onéreuse.

Prototypage

La phase de prototypage a été rapide, une fois les composants reçus de mon fournisseur préféré. Quelques fils, un MCP23017 et le clavier de mon minitel m'ont servi à tester cette solution. Bien sûr, quelques réglages sont à effectuer sur le Raspberry Pi, notamment pour activer le support de l'I²C, mais au final c'est quand même relativement simple. Voici une photo montrant le montage:

Et le schéma électronique du prototype:

Et pour finir, le module en place sur le Raspberry Pi:

La bibliothèque Python de Lady Ada

AdaFruit fournit sur son Github un ensemble de bibliothèques Python permettant de manipuler l'I²C, et en particulier le MCP23017. Seulement voilà, bien que tout à fait fonctionnelle, cette bibliothèque n'est pas forcément utilisable en l'état vu que j'ai mis en place deux de ces composants et que j'en ai profité pour renommer les GPIOs. C'est pour cela que j'ai implémenté un dérivé de cette bibliothèque, dont le code source est libre et réutilisable, disponible sur Github.

Voici un exemple de configuration du module en Python, qui permet d'allumer une LED connectée entre la broche A0 et A1 du module (avec une résistance de 330ohms bien sûr):

from raspio import Raspio


board = Raspio()
board.config(board.A0, board.OUT)
board.config(board.A1, board.OUT)
board.output(board.A0, 0)
board.output(board.A1, 1)

Toute amélioration et/ou critique est la bienvenue, n'hésitez pas à faire des Pull Requests ;).

Une récompense aux soutiens OpenIt

Je possède actuellement deux de ces modules, dont un reste à monter, et me propose de les envoyer à deux personnes ayant soutenu le projet. Si d'autres personnes ayant soutenu le projet OpenIt sont intéressées, je peux éventuellement en produire à nouveau et les envoyer.

Pour les personnes n'ayant pas soutenu le projet, vous pouvez commander la board (pcb) nue sur OSHPark, en suivant ce lien.

28
oct.
'13

Open It, ça continue !

Publié le 28 octobre 2013

Voilà seize jours que j'ai lancé mon projet de financement participatif baptisé "Open It", et je suis encore épaté du succès de cette initiative. Je demandais juste 400€ histoire de financer l'achat de matériel et de pouvoir accélerer la cadence de mes projets avec comme obligation de mon côté de redistribuer ce que je fais et de tout documenter à la manière de l'Open Source.

Un chiffre: 248%

A l'heure où je rédige ce billet, le projet est assuré d'être financé avec 995€ d'engagés, soit 248% du montant initial! C'est tout simplement énorme. Ce qui veut dire que je ne vais pas chômer dans les mois à venir, afin de réaliser tout un ensemble de projets qui me tiennent particulièrement à cœur.

La campagne de récolte de fonds n'est pas terminée bien que l'objectif soit atteint, alors si vous souhaitez la soutenir n'hésitez pas, surtout que j'ai ajouté deux achievements spéciaaux nommés "Bande de barbus malades" et "Flap Flap Master": le premier débloque un workshop sur le hardware hacking à la prochaine Nuit du Hack animé conjointement par TixLeGeek et moi-même, tandis que le second débloque la création d'un quadcopter maison mode DIY utilisant l'impression 3D et un système de contrôle maison !

Hop hop hop !

J'ai mis en place le portail réservé aux personnes ayant engagé 15€ ou plus (inaccessible pour le moment), et commencé à le peupler. Idem pour l'accès primeur aux articles, ce qui m'a valu d'ailleurs [une contribution sur Spip-Contrib->http://contrib.spip.net/Partager-un-article-pour-relecture]. La partie édition est donc prête à recevoir les heureux soutiens =).

Toujours dans la continuité, j'ai pris le temps de designer le sticker collector (une contrepartie pour les soutiens ayant engagé au moins 10€):

Et tant qu'à faire, j'ai déjà commencé à réfléchir aux premiers projets et à la manière dont je vais les réaliser. Ainsi, mon minitel a déjà montré à nouveaux ses entrailles, gEDA de nouveau utilisé, et quelques commandes parties pour du matériel notamment. Ainsi, le hardware collector promis si l'on dépassait les 150% a été conçu, et je devrais recevoir un prototype pour la fin du mois. S'il est ok et fonctionnel, je lance la production du nombre exact (ou presque) et les enverrai aux soutiens. Il s'agit d'un gadget collector qui fera l'objet d'un article, et la documentation sera ainsi accessible (principe, schéma, PCB notamment). Je n'en dis pas plus pour le moment, je préfère garder la surprise et agrémenter d'autres goodies (photos/vidéos) pour le coup ;).

Et la suite ?

Il reste 8 jours pour le financement de ce projet, deux Super Minitels Entertainment System ainsi que de nombreuses autres récompenses ! Si cela vous intéresse, ou que l'idée même de l'initiative vous botte, n'hésitez pas à participer ;).



Les contenus disponibles sur ce blog sont publiés sous licence Creative Commons BY-NC-SA.
Vous pouvez réutiliser tout ou partie de ces contenus à condition de citer l'auteur et l'origine, vous ne pouvez en faire une utilisation commerciale, et enfin vous devez partager tout travail ou œuvre dérivée sous les mêmes conditions — c'est-à-dire avec la même licence d'utilisation Creative Commons.