🛠 Faire clignoter une LED sur les GPIO du CM3
Objectifs
Apprendre à piloter une sortie GPIO sur le CM3 avec la bibliothèque gpiozero (fournie avec Raspberry Pi OS). Le CM3 expose 48 lignes GPIO (GPIO0-45) sur le connecteur SODIMM, réparties en deux banques d'alimentation indépendantes : bank0 (GPIO0-27) et bank1 (GPIO28-45). Chaque banque fonctionne à la tension de sa broche VREF, de 1,8 V à 3,3 V — sur la CMIO3 le connecteur est en 3,3 V.
Matériel
- CM3 (ou CM3 Lite) sur CMIO3, Raspberry Pi OS démarré (voir « assembler-kit-cm3-cmio3 »)
- 1 LED + résistance 330 Ω entre GPIO17 et GND
- Pas de convertisseur de niveau nécessaire en 3,3 V ; en revanche, sur une carte porteuse custom avec une banque en 1,8 V, une LED standard ne s'allumera pas forcément — vérifier le rail VREF de la banque concernée
Code complet
#!/usr/bin/env python3
# blink.py — LED sur GPIO17 (bank0), numérotation BCM identique au Pi 3
from gpiozero import LED
from time import sleep
led = LED(17) # GPIO17, bank0 ; la tension de sortie = tension VREF de la banque
while True:
led.on
sleep(1)
led.off
sleep(1)
sudo apt update && sudo apt install python3-gpiozero
python3 blink.py
Vérification attendue
La LED clignote à 1 Hz (1 s allumée, 1 s éteinte). Ctrl-C arrête le programme. La commande gpioread 17 (wiringPi) ou gpiodetect / gpioinfo gpiochip0 (libgpiod) confirme que la broche est bien configurée en sortie.
Erreurs fréquentes
- Confondre GPIO SODIMM et broches du connecteur 40 broches d'un Pi 3 classique : ici la numérotation BCM correspond directement aux numéros GPIO du connecteur SODIMM.
- Toucher GPIO28, 29, 44 ou 45 sans pulls externes : ces broches n'ont PAS de résistance de pull par défaut (datasheet RP-008161-DS §9.1) et flottent au démarrage ; ajoutez des pulls off-chip sur une carte custom.
- Réutiliser HDMI_HPD_N_1V8 ou EMMC_EN_N_1V8 en GPIO : ces broches sont réservées au firmware, les détourner casse le boot ou le HDMI.
- Dépasser 16 mA par broche et 50 mA par banque : une LED sans résistance peut détruire la sortie.
Autres tutoriels pour cette carte
Exemples de code pour cette carte
clignotante.pyPythonbouton-gpio.pyPythoncapteur-i2c.shBashsurveillance-temperature.shBashcapteur-dht11.pyPythonservo-pwm-sysfs.shBash