🛠 Faire clignoter une LED sur la broche P8_03 avec libgpiod
Objetivos
Controlar un pin de los conectores P8/P9 con la biblioteca moderna libgpiod: identificar el controlador GPIO correcto (el AI-64 tiene varios), comprender que P8_03 corresponde a GPIO0_20 (muxmode 7 según el capítulo 7 del System Reference Manual) y hacer parpadear un LED en Python.
Material
- 1 BeagleBone AI-64 con la imagen oficial de Debian
- 1 protoboard, 1 LED, 1 resistencia de 330 Ω, cables de conexión
- Regla de oro: TODAS las señales de P8/P9 son de 3,3 V. Nunca aplicar 5 V a un pin, y nunca inyectar tensión en los pines cuando la placa está apagada (retorno de alimentación por los diodos ESD = procesador destruido, garantía anulada).
Código completo
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
Verificación esperada
El LED parpadea a 1 Hz. Durante la ejecución, gpioinfo muestra la línea 20 de 600000.gpio como «output» con el consumidor «blink». El script libera correctamente el pin al pulsar Ctrl+C.
Errores frecuentes
- Equivocarse de gpiochip: el controlador wkup (4211000.gpio) no expone los pines P8/P9; verificar con gpiodetect.
- API de libgpiod: en las imágenes con gpiod 1.x, la llamada difiere (gpiod.LINE_REQ_DIR_OUT); el código anterior es para la API v2.
- Olvidar la resistencia: un LED conectado directamente satura el pin (respetar los 3,3 V y la corriente del pin).
- Esperar PWM por hardware: el muxing eHRPWM hacia los conectores es un punto ciego documental conocido del AI-64 (issue #19) — para empezar, un PWM por software mediante libgpiod es suficiente.
- Cablear mientras la placa está encendida sin una masa común: lecturas erráticas.
Otros tutoriales para esta placa
- 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
Ejemplos de código para esta placa
clignotante.pyPythonbouton-gpio.pyPythoncapteur-i2c.shBashsurveillance-temperature.shBashcapteur-dht11.pyPythonservo-pwm-sysfs.shBash