Découvrez WiringPi - une librairie C pour developper sur RaspberryPi

Bonsoir à tous,
Nous venons de publier une nouvelle traduction sur notre Wiki... cette fois, c'est wiringPi de Gordon qui est à l'honneur.

WiringPi documenté en Français,
une traduction Open-Source par MCHobby


Cette traduction étant assez vaste, elle fera l'objet de plusieurs publications. Nous sommes très impatient de partager mes découvertes sur l'utilitaire gpio. qui permet de commande le GPIO depuis une ligne de commande :-)

Qu'est-ce que Wiring Pi?

WiringPi est une librairie écrite en C permettant l'accès au GPIO du BCM2835 utilisé par le Raspberry Pi. Elle est publiée sous la licence GNU LGPLv3 license et est utilisable en C et C++ ainsi qu'avec de nombreux autres langages à l'aide du Wrapper adéquat (voir ci-dessous). Elle est conçue pour être familière aux personnes qui utilise Arduino (le système wiring pour Arduino). Le Raspberry Pi dispose d'un connecteur 26-broches d'Entrée/Sortie d'utilisation générale (appelée GPIO acronyme de "General Purpose Input/Output") qui transporte des signaux et des bus (de données). Il y a 8 broches E/S digital d'utilisation générale – elles peuvent être programmée soit en entrée, soit en sortie digital. Une de ces broches peut également être désignée pour servir de sortie PWM. De surcroit, il existe une interface I2C 2-fils (2-wire), une interface SPI 4-fils (4-wire) avec une seconde ligne de sélection (ce qui fait 5 broches au total pour le SPI) et un UART série avec 2 broches complémentaires.
La révision 2 de Raspberry Pi dispose de 4 ligne GPIO supplémentaires sur un connecteur séparé que vous devez soudez vous même sur la carte.
Les interfaces I2C, SPI et UART peuvent aussi être utilisée comme E/S d'utilisation générale lorsqu'elles ne sont pas utilisée comme Bus. Cela fait un total de 8 + 2 + 5 + 2 = 17 broche E/S sur le connecteur P1 (plus 4 autres sur le connecteur P5 de la révision 2 du Pi).

WiringPi inclus un utilitaire GPIO en ligne de commande. Cet utilitaire peut être utilisé pour programmer et configurer les broches GPIO. Vous pouvez l'utiliser pour lire et écrire l'état des broches et même contrôler depuis des scripts shell.


WiringPi est extensible et des modules sont disponibles pour étendre wiringPi afin d'utiliser des périphériques à interfaces analogiques sur le Gertboard, d'utiliser les populaires circuits d'extension GPIO MCP23x17/MCP23x08 (I2C 7 SPI), ainsi que des modules qui peuvent permettre de constituer plusieurs blocs 4 * 74×595 registre à décalage (qui peuvent être chainer ensemble en daisy-chained pour constitué des unités de sorties 32 bits). Vous pouvez avoir plusieurs blocs de 4 * 74x595s ensemble). Un des modules d'extension permet d'utiliser un ATmega (ex. un Arduino, ou le Gertboard) des des GPIO d'extension complémentaires – via le port série du Pi.
Finalement, vous pouvez facilement écrire vos propres modules d'extension pour intégrer vos propres périphériques dans wiringPi si cela est nécessaire.

WiringPi supporte la lecture et l'écriture analogique, et même si Raspberry Pi ne dispose pas de support analogique matériel, les modules sont fournit pour supporter les circuits analogiques du Gertboards et d'autre convertisseurs A/D et D/A peuvent être implémenté assez facilement.

La librairie wiringPi

Ou "wiringPi devLib" pour les intimes.
La devLib est une librairie qui regroupe des routines utilisant wiringPi pour offrir un accès facile pour quelques un des périphériques les plus populaires. Les périphériques supportés sot des afficheurs LCD (utilisant des CI Hitachi HD44780U), et des afficheurs graphiques – par exemple les afficheurs 128×64 pixels utilisant les CI pilote générique 12864H). L'horloge temps réel DS1302 (RTC clock), senseurs basés sur les circuits intégrés Maxdetect (ex. RHT003), les cartes d'interface Gertboard et PiFace et ainsi de suite.

Ressources WiringPi

PiFace

WiringPi supporte totalement la carte PiFace. Voyez cette page (anglais) pour plus ce détails.

Gertboard

WiringPi supporte complètement la carte Gertboard. Voyez cette page (anglais) pour plus de détails.

Le tutoriel complet