🛠 Comprendre les triggers en pilotant les 4 LED utilisateur
Objetivos
Descubrir el subsistema LED de Linux sin soldar nada: la BeagleBone Black dispone de 4 LED de usuario definidas en el device tree principal (am335x-bone-common.dtsi) bajo los nombres beaglebone:green:heartbeat, mmc0, usr2 y usr3. Cada LED expone un «trigger»: una fuente de activación gestionada por el kernel (latido de corazón, actividad de la tarjeta SD, temporizador...). Es la puerta de entrada al control de hardware bajo Debian.
Material
- 1 BeagleBone Black alimentada (basta con el simple cable mini-USB)
- Acceso SSH o consola serie (el conector de depuración de 6 pines 3,3 V TTL está disponible si falta la pantalla)
Código completo
# Lister les LED exposées par le device tree
ls /sys/class/leds/
# beaglebone:green:heartbeat beaglebone:green:mmc0
# beaglebone:green:usr2 beaglebone:green:usr3
# Voir les triggers disponibles ; l'actif est entre crochets [ ]
cat /sys/class/leds/beaglebone:green:usr2/trigger
# Chaque LED prend son rôle métier :
echo heartbeat > /sys/class/leds/beaglebone:green:heartbeat/trigger
echo mmc0 > /sys/class/leds/beaglebone:green:mmc0/trigger
# usr2 en minuteur 250 ms allumée / 500 ms éteinte
echo timer > /sys/class/leds/beaglebone:green:usr2/trigger
echo 250 > /sys/class/leds/beaglebone:green:usr2/delay_on
echo 500 > /sys/class/leds/beaglebone:green:usr2/delay_off
# Reprise la main : retirer le trigger puis piloter la luminosité
echo none > /sys/class/leds/beaglebone:green:usr3/trigger
echo 255 > /sys/class/leds/beaglebone:green:usr3/brightness
echo 0 > /sys/class/leds/beaglebone:green:usr3/brightness
Verificación esperada
El LED heartbeat pulsa al ritmo del kernel, mmc0 parpadea durante las escrituras en la tarjeta SD (pruebe con dd si hay una microSD insertada), usr2 parpadea al ritmo configurado. Con el trigger none, usr3 obedece instantáneamente a los comandos echo.
Errores frecuentes
- Olvidar los dos puntos en los nombres de rutas (beaglebone:green:usr2): la autocompletación con tabulación es su amiga.
- Escribir en brightness sin cambiar el trigger a none: el trigger activo sobrescribe permanentemente su valor.
- Confundir los LED: heartbeat es un LED de usuario programable, no es el LED del puerto Ethernet ni el LED de alimentación.
- En las revisiones muy antiguas A5B, los LED se hicieron intencionadamente más débiles (la resistencia pasó de 820 Ω a 4,75 kΩ): un LED tenue no es un LED muerto.
- El trigger heartbeat se ralentiza cuando el sistema está muy cargado: es intencional (refleja la carga del kernel).
- Esperar estos LED en los pines P8/P9: están soldados en la placa, los pines de la cape son otro ejercicio.
Otros tutoriales para esta placa
- Premier boot de la BeagleBone Black avec un seul câble mini-USB
- Bouton et LED avec Adafruit_BBIO, la bibliothèque historique
- Lire l'ADC 12 bits sans griller le SoC : la règle des 1,8 V
- Ajouter une horloge temps réel sur le bus I2C des capes
- Micro-HDMI : exploiter les limites d'affichage de la BBB
- Capes historiques : capemanager, EEPROM d'identification et pièges des broches
Ejemplos de código para esta placa
clignotante.pyPythonbouton-gpio.pyPythoncapteur-i2c.shBashsurveillance-temperature.shBashcapteur-dht11.pyPythonservo-pwm-sysfs.shBash