Le guide complet pour GPIO Zero sur Raspberry Pi
L’utilisation des broches GPIO sur Raspberry Pi peut décourager les débutants. De nombreuses combinaisons sont possibles et il existe une multitude de composants, il peut donc être difficile de savoir par où commencer. C’est là où GPIO Zero intervient : il s’agit d’une bibliothèque Python toute simple qui facilite le contrôle de votre matériel.
GPIO Zero remplace l’ancienne bibliothèque RPI.GPIO, désormais obsolète. Elle est préinstallée sur la dernière version de Raspberry Pi OS et supporte différents composants comme des LED, des boutons et des capteurs.
Dans ce guide, je vais vous expliquer comment configurer GPIO Zero, travailler avec des composants courants, et exploiter tout le potentiel de votre Raspberry Pi. Je vous montrerai également comment migrer votre ancien code RPI.GPIO vers GPIO Zero. C’est parti !
Si, comme moi, vous mélangez parfois la syntaxe entre différents langages de programmation, j’ai exactement ce qu’il vous faut. J’ai créé une fiche mémo Python avec toute la syntaxe essentielle au même endroit, pour que vous puissiez l’avoir sous la main et éviter toute confusion. Téléchargez-la gratuitement ici !
Commencer avec GPIO Zero
GPIO Zero est une bibliothèque Python qui supporte le nouveau Raspberry Pi 5 et la dernière version de Raspberry Pi OS. Elle vous permet de contrôler les broches GPIO (General Purpose Input Output) sur votre Raspberry Pi. C’est une excellente alternative à l’ancienne bibliothèque RPI.GPIO.
Commençons par quelques prérequis, tant en termes de matériel que de concepts théoriques à connaître avant de taper la moindre ligne de code.
Prérequis
Avant de commencer avec GPIO Zero, assurez-vous d’avoir un Raspberry Pi avec tous les accessoires requis. Vous pouvez regarder ici (en anglais) pour voir une liste des accessoires Raspberry Pi recommandés.
En plus de ceux-ci, je vous recommande d’obtenir un kit de capteurs pour expérimenter avec les broches GPIO. Ce kit de SunFounder est fortement recommandé. Nous utiliserons des composants de ce kit pour la réalisation de ce guide.
En plus d’avoir tout le matériel nécessaire, assurez-vous que votre Raspberry Pi dispose de la dernière version de Raspberry Pi OS. Suivez ce guide pour installer la dernière version de Raspberry Pi OS sur votre Raspberry Pi.
Guides recommandés :
- Les meilleurs équipements Raspberry Pi choisis pour vous (en anglais)
- Installer Raspberry Pi OS Bookworm sur Raspberry Pi (guide illustré)
- 27 conseils essentiels pour Raspberry Pi que tout débutant devrait connaître
Numérotation des broches
Une notion clé à comprendre avant de commencer est de connaître la numérotation des broches GPIO. Deux schémas de numérotation différents sont utilisés, à savoir la numérotation Broadcom (BCM) et la numérotation physique (BOARD).
Dans le schéma Broadcom (BCM), le numéro suivant « GPIO » correspond au numéro de la broche. Par exemple, pour GPIO16, le numéro de la broche est le 16.
Cependant, dans le schéma physique (BOARD), le numéro exact de la broche est celui référencé sur la carte. Par exemple, pour GPIO16, le numéro de la broche sur le schéma physique (BOARD) est le 36.
Si comme moi, vous avez tendance à mélanger les langages, téléchargez mon antisèche pour Python au format PDF.
Télécharger maintenant
GPIO Zero suit par défaut le schéma de numérotation Broadcom (BCM).
Si vous souhaitez en savoir plus sur les GPIO du Raspberry Pi, plusieurs bons tutoriels sont disponibles.
Guides recommandés :
- Commencer avec les broches GPIO sur Raspberry Pi (Guide du débutant)
- Le schéma de broches GPIO du Raspberry Pi : diagramme et explication (en anglais)
Installation de GPIO Zero
GPIO Zero est préinstallé sur la dernière version de Raspberry Pi OS, et vous n’avez rien à installer.
Cependant, si vous utilisez Raspberry Pi OS Lite ou si GPIO Zero n’est pas préinstallé, suivez ces étapes pour l’installer depuis les dépôts officiels :
- Assurez-vous que votre système est à jour en utilisant cette commande :
sudo apt update && sudo apt upgrade
- Assurez-vous que Python et pip sont installés et mis à jour en utilisant cette commande :
sudo apt install python3 pip
- Maintenant, installez GPIO Zero en utilisant cette commande :
sudo apt install python3-gpiozero
Et voilà ! GPIO Zero est prêt à être utilisé. Lisez la suite, nous allons créer notre premier programme avec GPIO Zero.
Si les commandes Linux ce n’est pas trop votre truc, n’hésitez pas à jeter un œil à cet article qui vous explique les commandes qu’il faut absolument connaître. Je vous donne aussi une antisèche à télécharger pour les avoir toujours sous la main !
Format PDF pratique, avec les 74 commandes à retenir pour maîtriser son Raspberry Pi.
Télécharger maintenant
Vous voulez discuter avec d'autres passionnés de Raspberry Pi ? Rejoignez la communauté, partagez vos projets en cours et posez vos questions sur le forum (en anglais).
Utiliser GPIO Zero
La configuration étant terminée, voyons l’utilisation de GPIO Zero. GPIO Zero est une bibliothèque Python pouvant être utilisée dans n’importe quel programme Python.
Si vous débutez avec Python, je recommande vivement de lire mon livre Master Python on Raspberry Pi, qui vous mettra rapidement à niveau et se concentrera uniquement sur les concepts utiles pour les utilisateurs de Raspberry Pi.
Votre premier programme avec GPIO Zero
Pour notre premier programme, nous commencerons simplement et programmerons notre Raspberry Pi pour contrôler une LED et la faire clignoter à une fréquence fixe.
Câblage du circuit
Avant d’écrire le code, nous devons comprendre comment connecter nos composants. Pour cet exemple, vous aurez besoin d’un Raspberry Pi, d’une plaque d’essai, d’une LED et de câbles de connexion.
Câblez votre circuit comme indiqué ci-dessous :
Les connexions sont simples. Connectez une LED à la broche GPIO 16 via une résistance.
Une fois le câblage terminé, vous pouvez écrire votre premier programme en utilisant GPIO Zero.
Code
Maintenant, nous pouvons commencer à écrire le code en utilisant GPIO Zero. Pour ce faire, créez un nouveau fichier Python en utilisant un éditeur de texte approprié. Pour utiliser nano, vous pouvez entrer la commande suivante dans votre terminal :nano blinkingled.py
Maintenant, copiez et collez ce code dans l’éditeur de texte :
from gpiozero import LED
from signal import pause
myLED = LED(16)
myLED.blink(1)
pause()
Enregistrez et fermez ce fichier Python.
Si comme moi, vous avez tendance à mélanger les langages, téléchargez mon antisèche pour Python au format PDF.
Télécharger maintenant
Le code est simple et explicite :
- Nous importons initialement les fonctions nécessaires des bibliothèques en utilisant la commande d’importation :
from gpiozero import LED
from signal import pause - Ensuite, nous initialisons l’objet LED et associons GPIO 16 à cette LED en utilisant une fonction :
myLED = LED(16)
- Enfin, nous pouvons utiliser la fonction intégrée de led.blink() pour faire clignoter la LED à intervalles d’une seconde :
myLED.blink(1)
- De plus, nous devons utiliser la fonction signal.pause() pour maintenir le programme. Sinon, le programme se terminera à l’exécution de la dernière commande, et les broches GPIO peuvent être réinitialisées :
pause()
Résultats
Vous pouvez exécuter ce programme depuis le terminal en utilisant la commande :python3 blinkingled.py
Une fois que vous exécutez ce programme, vous pourrez voir que la LED connectée à votre Raspberry Pi commencera à clignoter à un intervalle d’une seconde.
Aller plus loin avec GPIO Zero
Nous avons créé notre tout premier programme en utilisant la bibliothèque GPIO Zero. Nous pouvons aller un peu plus loin cependant. Nous pouvons ajouter un bouton à ce projet afin que la LED s’allume chaque fois que ce bouton est pressé et vice versa.
Pour y parvenir, câblez votre circuit comme illustré ci-dessous :
Nous avons ici ajouté un bouton-poussoir entre la broche de terre et la broche GPIO 21 du Raspberry Pi.
Maintenant, vous pouvez modifier le programme comme ceci :
from gpiozero import LED, Button
from signal import pause
led = LED(16)
button = Button(21)
button.when_pressed = led.on
button.when_released = led.off
pause()
Alternativement, vous pouvez tirer parti de l’approche orientée objet de la bibliothèque GPIO Zero pour simplifier votre code, comme illustré ci-dessous :
from gpiozero import LED, Button
from signal import pause
led = LED(16)
button = Button(21)
led.source = button
pause()
Et voilà ! Lorsque vous exécutez ce programme, la LED s’allumera chaque fois que vous appuierez sur le bouton-poussoir, et lorsqu’il sera relâché, la lumière s’éteindra.
Si vous recherchez des exemples plus avancés utilisant d’autres capteurs ou appareils, la documentation officielle propose plusieurs exemples de base et avancés pour vous aider à démarrer.
Migration depuis RPI.GPIO
Si vous avez l’habitude d’utiliser la bibliothèque RPI.GPIO, vous aurez peut-être remarqué que GPIO Zero est assez différente.
GPIO Zero adopte une approche orientée objet, et au lieu de communiquer avec des broches individuellement, vous devrez souvent définir des objets faisant référence à un composant ou un appareil, et ensuite les utiliser via différentes fonctions.
Par exemple, pour allumer une LED avec RPI.GPIO, vous utiliserez un programme comme celui-ci :
import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BCM)
GPIO.setwarnings(False)
GPIO.setup(2, GPIO.OUT)
GPIO.output(2, GPIO.HIGH)
Ici, vous devez définir individuellement la fonction de chaque broche comme entrée ou sortie et ensuite définir l’état de cette broche comme haut ou bas.
Cependant, lorsque vous utilisez la bibliothèque GPIO Zero, la plupart de ces tâches de bas niveau sont automatisées, et vous suivez une approche orientée objet qui consiste simplement à définir une LED et ensuite utiliser une fonction pour l’allumer. Vous utiliseriez un programme simple, comme indiqué ci-dessous :
from gpiozero import LED
led = LED(2)
led.on()
Comme vous pouvez le voir, GPIO Zero peut simplifier vos programmes de manière significative, et une fois que vous vous y habituez, cela peut faciliter la programmation.
De plus, l’approche orientée objet de GPIO Zero vous permet d’effectuer une programmation plus complexe avec des commandes beaucoup plus simples. Par exemple, en utilisant l’objet LEDBoard, vous pouvez allumer ou éteindre plusieurs LED simultanément et même utiliser le slicing pour accéder à un sous-ensemble de toutes les LED.
from gpiozero import LEDBoard
from time import sleep
leds = LEDBoard(2, 3, 4, 5, 6, 7, 8, 9)
for led in leds[3:]: # leds 3 and onward
led.on()
sleep(1)
leds.off()
for led in leds[:2]: # leds 0 and 1
led.on()
sleep(1)
leds.off()
for led in leds[::2]: # even leds (0, 2, 4...)
led.on()
sleep(1)
leds.off()
for led in leds[1::2]: # odd leds (1, 3, 5...)
led.on()
sleep(1)
leds.off()
À mon avis, la meilleure façon de migrer un programme existant de RPI.GPIO vers GPIO Zero est de dessiner un diagramme de flux du programme original, puis de le reprogrammer en utilisant la fonctionnalité avancée disponible dans GPIO Zero.
Pour une comparaison beaucoup plus détaillée des deux bibliothèques, vous pouvez consulter la documentation officielle de GPIO Zero.
Format PDF pratique, avec les 74 commandes à retenir pour maîtriser son Raspberry Pi.
Télécharger maintenant
Ressources supplémentaires pour votre Raspberry Pi
Initiation au Raspberry Pi en vidéo
Si vous débutez et voulez passer rapidement à la vitesse supérieure, j’ai exactement ce qu’il vous faut.
Regardez ma formation vidéo qui vous aidera à démarrer du bon bien, choisir votre matériel, installer les meilleures applications et vous lancer directement dans vos premiers projets avec mon aide.
Regarder les vidéos dès maintenant
Maîtrisez votre Raspberry Pi en 30 jours
Vous avez besoin de plus ? Si vous êtes à la recherche des meilleures astuces pour devenir expert sur Raspberry Pi, ce livre est fait pour vous. Développez vos compétences sous Linux et pratiquez via de nombreux projets en suivant mes guides étape par étape. 10% de remise aujourd’hui !
Télécharger le livre au format PDF ici
Maîtrisez Python sur Raspberry Pi
Pas besoin d’être un génie pour coder quelques lignes pour votre Raspberry Pi.
Je vous apprends juste ce qu’il faut sur Python afin de réaliser n’importe quel projet. La seconde partie du livre est d’ailleurs consacrée à des exemples de projets où je vous guide pas à pas.
Ne perdez pas de temps, apprenez le strict nécessaire et économisez 10% avec ce lien :
Télécharger maintenant
Autres ressources pour profiter de votre Raspberry Pi
J’ai regroupé toutes mes recommandations de logiciels, sites utiles et de matériel sur cette page de ressources. Je vous invite à la consulter régulièrement pour faire les bons choix et rester à jour.
Visiter les pages ressources