🛠 Faire clignoter une LED via le GPIO avec libgpiod
Objetivos
Descubrir el conector de 40 pines de la Radxa ROCK 3B (Rockchip RK3568) y hacer parpadear un LED con libgpiod, la API GPIO moderna de Linux que Radxa recomienda oficialmente — el antiguo mecanismo sysfs « gpio export » está obsoleto. Aprenderás a identificar el chip correcto (gpiochip) y la línea correcta con gpiofind/gpioinfo en lugar de copiar números heredados de tutoriales de Raspberry Pi.
Material
- Radxa ROCK 3B con Radxa OS (Debian) o imagen mainline, alimentada por USB-C (se recomienda PD 12 V / 2 A según la documentación oficial)
- 1 LED + resistencia de 330 Ω, cables Dupont hembra-macho
- Pantalla HDMI o sesión SSH
Código completo
sudo apt update && sudo apt install -y gpiod
gpiodetect # RK3568 : gpiochip0..gpiochip3 (banques GPIO0..GPIO3)
gpiofind PIN_7 # renvoie « gpiochipLigne » pour la broche 7 du connecteur
# Nommage Rockchip : GPIO3_C5 -> gpiochip3, ligne 21 (banque*8 + groupe + index)
sudo gpioset -m signal $(gpiofind PIN_7) 1 & # reste haut jusqu'au Ctrl-C
sudo gpioget $(gpiofind PIN_11) # lire une autre broche
# Clignotage 10 cycles sans compiler :
for i in $(seq 1 10); do sudo gpioset --time=0.2 $(gpiofind PIN_7) 1; sleep 0.3; done
Verificación esperada
gpiodetect muestra gpiochip0 a gpiochip3. gpiofind PIN_7 devuelve un par chip/línea; con el cable correcto, el LED se enciende ~0,2 s en cada vuelta del bucle. El LED RGB heartbeat (controlador « heartbeat » en el device tree) ya parpadea bajo Linux: puedes desactivarlo con echo none | sudo tee /sys/class/leds/*/trigger si interfiere con tus mediciones.
Errores frecuentes
- Buscar números BCM de Raspberry Pi: bajo Radxa OS / kernel Rockchip, se trabaja con gpiochip + línea libgpiod, y el esquema del conector es el de Radxa (codificado por colores), no el del Pi.
- Olvidar
sudo: las líneas GPIO están reservadas mientras no se configure la regla udev « gpio » (vuelve a iniciar sesión tras añadirte al grupo gpio). gpiosetsin-m signalo--timetermina inmediatamente y pone el pin a 0: no se ve nada parpadear.- Conectar un GPIO a 5 V: la lógica del conector es de 3,3 V (5 V solo en los pines de alimentación 2/4).
- Conectar un HAT de Raspberry Pi « a la fuerza »: la compatibilidad es « mostly compatible » (ROCK Pi 4 / Pi 3-4) pero no exacta — compara el código de colores del conector antes, para evitar conectar una señal UART a un pin I2C.
Otros tutoriales para esta placa
- Lire un bouton poussoir en Python avec python3-libgpiod
- Premier réseau : Ethernet double gigabit, Wi-Fi optionnel et SSH
- Installer et booter le système sur un SSD NVMe (M.2 M-Key)
- Interroger un capteur I2C sur le connecteur 40 broches
- Surveiller température et fréquence CPU, piloter le ventilateur PWM
- Routeur / passerelle réseau double Gigabit avec OpenWrt et PoE
Ejemplos de código para esta placa
clignotante.pyPythonbouton-gpio.pyPythoncapteur-i2c.shBashsurveillance-temperature.shBashcapteur-dht11.pyPythonservo-pwm-sysfs.shBash