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.

12
mars
'14

Les deux ans du FacLab

Publié le 12 mars 2014

Cela faisait un bon moment que je tentais de me faire violence pour rendre visite au [FacLab de l'université de Cergy-Pontoise->http://www.faclab.org], qui se trouve être à une quinzaine de minutes de mon lieu de travail, sans avoir vraiment trouvé le temps. Lundi dernier, plusieurs messages sur Twitter mentionnant le second anniversaire de ce FabLab m'ont enfin motivé à y faire un tour: ils proposaient une série de présentations animées par des barbus, un apéro et un nocturne.

Le FacLab, c'est bien !

Je m'y suis donc rendu avec un collègue et ami actuellement alternant à l'université de Cergy-Pontoise, et qui connait relativement bien les managers de ce FabLab. On y arrive donc vers 19h, au lieu des 18h prévu suite à un imprévu au boulot auquel se sont ajoutés les bouchons quotidiens de la vie parisienne. Première surprise: il y a pas mal de monde ! Je m'attendais à trouver des barbus, des geeks et makers de tout poil, quelle ne fut pas ma surprise d'y voir des enfants (dont le plus jeune avait 3 mois), des adultes plus ou moins vieux, et un bon nombre de membres de la gente féminine adeptes de bidouillage sur tissus et de fabrication d'objets ! Impressionné, et admiratif.

Les domaines dans lequel naviguent le FacLab sont multiples: on y trouve aussi bien des réalisations imprimées en 3D que des objets pyrogravés ou des vêtements "numériques" intégrant des LEDs, et même des PC dans des jerrycans (à l'allure de minions). Sans parler des outils présents, tels qu'imprimantes 3D en tout genre (Mendel Prusa i2, Foldarap, DOM), découpe laser et presse à t-shirt. Le tout sur un espace assez important, avec un coin détente bien confortable.

Les projets

Les projets du FacLab sont en réalité les projets portés par les personnes qui y viennent, aussi divers et variés. C'est ce qui fait la force des FabLabs, mais aussi ce qui leur est de temps en temps reproché. Cependant, on oublie une chose essentielle: le FabLab est un lieu d'échange où celui qui sait partage et celui qui veut savoir apprend, où chacun peut apporter sa brique à un édifice commun. Un brin utopique, mais les retours que j'ai pu récolter durant cette soirée ont été globalement positifs et m'ont même poussé à y participer.

Parmi les projets que j'ai pu voir: * Le jerryCan, un ordinateur dans un jerrycan * UrbanPotager, un potager sur étagère irriguée avec un circuit autonome * FoldaRap, une imprimante 3D pliable

La philosophie du FabLab

Lorsque je me suis lancé dans la réalisation d'une imprimante 3D Prusa i3, j'avais contacté le FacLab pour savoir s'il était possible de venir imprimer les pièces de base de mon imprimante, et un des responsables m'avait indiqué que l'ensemble des imprimantes 3D étaient HS. Sur le coup, je me suis demandé l'utilité de la chose, et j'ai trouvé un autre moyen de me procurer les pièces. Lorsque j'en ai discuté avec Adel, à cet apéro du FacLab, celui-ci a pointé du doigt ma fainéantise (assumée) mais surtout le fait que si j'étais si motivé par une imprimante 3D, j'aurais pu venir réparer celles présentes. Et cela m'aurait permis de rencontrer des problèmes que je vais de toute manière rencontrer avec la réalisation de mon imprimante 3D, de les résoudre (et donc de les documenter), afin de pouvoir rendre à nouveau utilisable les imprimantes, pour le bien de tous. Il a aussi ajouté que si je cherchais "juste" des imprimantes pour créer mes pièces, d'autres endroits qu'un FabLab étaient plus indiqués, comme ceux proposant un accès payant pour utiliser des imprimantes 3D. Avec le FabLab, tout le monde est gagnant. Et cela montre aussi que je n'avais pas forcément bien saisi la philosophie des FabLabs, et que ce passage au FacLab n'était donc en rien inutile !

Ils ont prévu de faire quelques nocturnes et d'ouvrir certains samedis après-midi durant les prochains mois, et je sens que je vais aller y faire un tour pour tenter de réparer les imprimantes 3D qui sont sur place, afin de me familiariser au fonctionnement de ces bestioles et pouvoir continuer le montage de la mienne en parallèle. Encore mieux, Adel m'a dit que d'autres personnes étaient sur la construction d'une Prusa i3, et que cela serait intéressant de confronter nos expériences et nos montages, durant une entrevue au FacLab. Je pense que je vais être amené à en reparler.

Le FacLab vous intéresse ?

Le site officiel du FacLab regorge de ressources sur les projets qui y sont menés, et il y a toutes les indications nécessaires si vous souhaitez vous y rendre (ce que je vous invite à faire si vous êtes en région parisienne), ou si vous souhaitez participer.

crédit photo: Ophelia Noor, via Flickr

08
janv.
'14

2014, cette grosse marade

Publié le 08 janvier 2014

La nouvelle année s'annonce plutôt pas mal, après une année 2013 plutôt mouvementée: les révélations de Snowden, des hacks en tout genre, le lancement du projet Open It, la nuit du hack, etc ... Toujours des hacks en cours, des projets dans les cartons, et des idées plein la tête !

Open It

Hourra ! Les fêtes sont passées, les délais de livraison aussi et avec 2014 arrive le moment de dresser un calendrier des jalons à venir =). Ainsi, la 12ème édition de la Nuit du Hack aura lieu les 28 et 29 juin 2014, pour laquelle je proposerai un workshop de bidouille hardware/électronique/informatique co-animé avec Tixlegeek. De même, plusieurs soutiens ont des récompenses en attente, à savoir les Minitels et pour certains des journées de hack en ma compagnie, ce sera l'occasion de booker rapidement les dates: je vais communiquer très bientôt sur celles-ci.

L'imprimante 3D suit son cours, je vais relancer une série de commandes cette semaine, en espérant être livré rapidement et pouvoir entamer le montage de la base. L'électronique viendra sur la fin, idéalement il me faudrait le cadre, la visserie/boulonnerie/quincaillerie et 5 moteurs NEMA17. La commande va être passée.

Côté acquisition de matériel, j'ai reçu en cadeau de noël une superbe clef USB permettant de faire de l'acquisition radio sur des plages de fréquences allant de 54Mhz à 1.76Ghz, je me suis installé tout le logiciel et j'ai quelques idées en tête pour les applications: une occasion de fourrer le nez dans GnuRadio et dans le SDR.

La saga du clavier USB continue, j'ai reçu les derniers composants permettant de tester l'interface USB cette semaine. Ne reste plus qu'à câbler, coder et tester, je compte m'y mettre sérieusement un soir cette semaine ou la prochaine. Rien de bien compliqué techniquement parlant, mais si ça fonctionne je pourrais designer un PCB de derrière les fagots et tenter un truc au propre (compter 4 semaines entre le design et la réception du PCB).

Côté Minitel, la carte d'adaptation v2 a bien avancé, encore une fois reste juste à boucler le draft de driver python et finaliser le montage sur breadboard en ce qui concerne le support de clavier. Idem pour la connectique GPIO du raspberry Pi et l'alimentation. Les composants ont été commandés, j'attends que ça arrive.

Comme vous pouvez le voir, pas mal de trucs en cours qui viendront nourrir le blog durant les prochaines semaines, et la documentation OpenSource sur le wiki OpenIt.

Meilleurs voeux

Avec tout ça, je pense que j'ai de quoi être occupé jusqu'à l'année prochaine. Les mômes en plus, et les interactions sociales auxquelles s'ajoute le boulot finiront de me convaincre que l'année de mes 30 balais ne sera pas chômée. Je vous souhaite une très bonne année à tous, tout plein de hacks, de leaks, de nouvelles révélations sur la NSA et ses grandes oreilles, plein de vidéos de l'ami JCFrog et toutes ces sortes de choses !



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.