Outils pour utilisateurs

Outils du site


projects:raspio32

Module d'extension de 32 GPIOs pour Raspberry Pi

J'ai pu expérimenter tout récemment l'emploi de composants I2C avec mon Raspberry Pi, et notamment le pilotage de MCP23017, circuit intégré permettant l'adressage de deux ports 8 bits via I2C. Je m'en suis notamment servi pour une adaptation du clavier de mon minitel, lors d'un prototypage, et sa facilité d'utilisation (notamment en Python) m'a vraiment fasciné. J'ai trouvé des modules d'extensions de GPIOs sur le net du même acabit, donc rien de nouveau sous le soleil. Ceci dit, c'est toujours fun de le faire soi-même, et c'est pourquoi j'ai conçu ma propre board 100% opensource et openhardware, tant qu'à faire.

Détails de la board

La board d'extension est constitué majoritairement de deux MCP23017, et possède un connecteur pouvant s'enficher directement sur le Raspberry Pi. Un sélecteur permet d'alimenter le circuit en 5V ou 3.3V, et deux condensateurs assurent le reset des MCP23017. Le reste n'est qu'un ensemble de 4 connecteurs 8 bits, permettant d'interfacer (sans protection si ce n'est celle apportée par le MCP23017) 32 GPIOs. Elle ressemble grosso-modo à cela:

Le schéma électronique de principe est le suivant:

Commander la board

La board peut être commandée sur OSHPark, à cette adresse.

Les fichiers ayant trait au design (schematics & PCB) sont désormais disponibles sur Github.

Bibliothèque de développement

Lady Ada (de Adafruit) a déjà développé une bibliothèque permettant d'interfacer un ou plusieurs circuits d'extension de GPIOs via I2C, mais pour l'occasion je vais développer une bibliothèque dérivée afin de prendre en charge directement les 32 GPIOs, en prenant en compte l'adressage cablé sur la board.

Le code source de cette bibliothèque est disponible sur Github.

Récompense aux soutiens

Ceux qui sont intéressés par cette board, n'hésitez pas à me le dire: je me ferai un plaisir d'en produire autant que nécessaire, et celle-ci comptera comme récompense.

projects/raspio32.txt · Dernière modification: 2014/03/17 08:43 par virtualabs