🛠 Faire clignoter une LED sur la broche P8_03 avec libgpiod
Objectifs
Piloter une broche des nappes cape P8/P9 avec la bibliothèque moderne libgpiod : identifier le bon contrôleur GPIO (le AI-64 en a plusieurs), comprendre que P8_03 correspond à GPIO0_20 (muxmode 7 d'après le chapitre 7 du System Reference Manual) et faire clignoter une LED en Python.
Matériel
- 1 BeagleBone AI-64 avec l'image Debian officielle
- 1 breadboard, 1 LED, 1 résistance 330 Ω, fils de connexion
- Règle d'or : TOUS les signaux de P8/P9 sont en 3,3 V. Jamais de 5 V sur une broche, et ne jamais injecter de tension sur les broches quand la carte est éteinte (retour d'alimentation par les diodes ESD = processeur détruit, garantie annulée).
Code complet
sudo apt install python3-gpiod gpiod
gpiodetect # chercher la puce nommée 600000.gpio (contrôleur "main")
gpioinfo 600000.gpio | grep -i P8_03
#!/usr/bin/env python3
# blink.py — libgpiod v2, image Debian AI-64
import gpiod, time
# 4211000.gpio = wkup (petit contrôleur), 600000.gpio = main (broches P8/P9)
with gpiod.Chip("600000.gpio") as chip:
line = chip.get_line(20) # P8_03 == GPIO0_20
line.request(consumer="blink", type=gpiod.line_request.DIRECTION_OUTPUT)
try:
while True:
line.set_value(1); time.sleep(0.5)
line.set_value(0); time.sleep(0.5)
finally:
line.release
Vérification attendue
La LED clignote à 1 Hz. Pendant l'exécution, gpioinfo montre la ligne 20 de 600000.gpio comme « output » avec le consommateur « blink ». Le script libère proprement la broche à Ctrl+C.
Erreurs fréquentes
- Se tromper de gpiochip : le contrôleur wkup (4211000.gpio) n'expose pas les broches P8/P9 ; vérifier avec gpiodetect.
- API libgpiod : sur les images en gpiod 1.x, l'appel diffère (gpiod.LINE_REQ_DIR_OUT) ; le code ci-dessus est pour l'API v2.
- Oublier la résistance : une LED directe sature la broche (respecter les 3,3 V et le courant de broche).
- Attendre du PWM matériel : le muxing eHRPWM vers les nappes est un angle mort documentaire connu de l'AI-64 (issue #19) — pour débuter, un PWM logiciel via libgpiod suffit.
- Câbler pendant que la carte est sous tension sans GND commun : lectures erratiques.
Autres tutoriels pour cette carte
- Flasher l'image officielle et démarrer la BeagleBone AI-64
- Surveiller la température et l'alimentation du TDA4VM
- Réseau : Ethernet Gigabit unique et module Wi-Fi en M.2 E-key
- Caméra MIPI CSI et encodage H.264 matériel via GStreamer
- Remoteproc : inventorier et démarrer les co-processeurs R5F et C66x
- Inférence de réseau de neurones sur le C7x+MMA avec edgeai-tidl-tools
Exemples de code pour cette carte
clignotante.pyPythonbouton-gpio.pyPythoncapteur-i2c.shBashsurveillance-temperature.shBashcapteur-dht11.pyPythonservo-pwm-sysfs.shBash