Le Raspberry Pi a surtout été conçu à des fins éducatives pour permettre à des jeunes de faire leurs premiers pas en programmation avec un ordinateur Linux bon marché. Mais l'électronique devient plus puissante chaque jour et avec l'ajout de Bluetooth 4.1 et du WIFI à la Raspberry Pi 3, cet appareil répond désormais aussi aux besoins des professionnels.
Un PC standard ne permet pas d'accéder aux broches du processeur. Il n'est pas possible, par exemple, de connecter un nouveau capteur communicant via un bus I2C vers un PC. Or, le Raspberry Pi donne accès aux GPIO. Ce type de fonctionnalité est d'habitude réservé aux microcontrôleurs. Mais cela réclame certaines connaissances en programmation intégrée, ce qui peut poser problème aux non-spécialistes. Le Raspberry Pi permet de programmer les GPIO à l'aide de quelques lignes de code en Python. Python est l'un des langages les plus faciles à apprendre et bénéficie d'une très large communauté qui n'est pas composée exclusivement d'informaticiens. Le Raspberry Pi a créé son propre marché, entre les PC standard et les microcontrôleurs. Voyons comment faire pour commuter une GPIO sur un Raspberry.
Le Raspberry Pi est équipé par défaut du système d'exploitation Raspbian, sur lequel la bibliothèque Python RPi.GPIO est déjà chargée. Il utilise actuellement la version 0.6.2, téléchargeable sur pypi.python.org.
On trouve sur le Web des sites en open source qui proposent des exemples montrant comment utiliser cette bibliothèque.
Puisqu'il s'agit d'un programme Python, les bibliothèques doivent être importées. Deux bibliothèques sont nécessaires : la bibliothèque RPI.GPIO, pour piloter les broches, et la bibliothèque temporelle, qui permet aux utilisateurs de créer une temporisation entre chaque transition des broches.
Il faut ensuite déclarer le type du système de numération. L'option BOARD utilise les broches exactement comme elles sont disposées sur le Pi. Ce connecteur et cette numération ne changent pas d'une version à l'autre. L'option BCM utilise le système de numération Broadcom SoC, qui diffère selon la version des broches du Raspberry. Le tableau ci-dessous montre les différences entre les deux systèmes de numération.
Dans notre programme, le numéro de carte est utilisé et sélectionné par la fonction de commande GPIO.setmode.
La broche 12 est ensuite configurée comme une sortie. C'est cette broche que nous commuterons. Dans une boucle infinie, la broche est mise sur Intense (3 V) pendant une seconde, puis mise à la terre (0 V) pendant une seconde.
Le format du Raspberry Pi offre un accès physique facile aux GPIO. On connecte un oscilloscope à une broche de terre (broche 25) et à la broche 12.
Comme le confirme la copie d'écran de l'oscilloscope, la broche 12 bascule entre 0 et 3 V à une fréquence de 0,5 Hz, conformément à ce qui a été programmé dans le script Python.
Le script Python ne peut pas être utilisé dans un système en temps réel, puisque l'OS Linux ne garantit pas l'exactitude du minutage pour piloter la broche. D'autres priorités peuvent retarder le pilotage d'une GPIO, qui ne bénéficie pas d'une priorité élevée. Cependant, pour communiquer avec le monde extérieur, c'est un moyen rapide, simple et efficace que n'offrent pas les PC classiques.