clignotante.py
El script de arranque en un SBC: un LED en el conector GPIO parpadea a 1 Hz. python3-gpiod controla el chip GPIO directamente por el kernel, sin librerías propietarias.
Hardware
Un Orange Pi 5 Plus (Rockchip RK3588, 4 Cortex-A76 + 4 Cortex-A55, hasta 16 GB de RAM) con Armbian/Debian, conector GPIO de 40 pines y doble Ethernet gigabit. 1 LED + resistencia de 330 Ω (los pines son de 3,3 V en todas estas placas).
Cableado
Ánodo del LED en el pin GPIO elegido (mira el esquema de la placa y gpioinfo) mediante 330 Ω, cátodo a GND.
Funcionamiento
El script configura el pin como salida, alterna nivel alto/bajo con sleep(1) y libera la broche limpiamente (finally) incluso con Ctrl-C.
Ejecución
Graba Armbian para RK3588 y sudo apt install python3-gpiod gpiod. Identifica el chip con gpiodetect y los pines con gpioinfo, adapta el script y ejecútalo (python3 o ./script.sh).
Variantes
Sustituye sleep por un patrón (rampa PWM con gpiozero PWM / gpiod + hilos), o conecta varios LED en anillo.
clignotante.py
#!/usr/bin/env python3
# Clignotement LED avec python3-gpiod (API 1.x, Debian/Armbian).
# Installation : sudo apt install python3-gpiod gpiod
# Puce disponible : gpiodetect ; broches : gpioinfo <puce>
import gpiod
from time import sleep
PUCE = "gpiochip1" # a verifier avec gpiodetect (varie selon la carte)
LIGNE = 17 # numero GPIO du schema de la carte
chip = gpiod.Chip(PUCE)
line = chip.get_line(LIGNE)
line.request(consumer="clignotante", type=gpiod.LINE_REQ_DIR_OUT,
default_val=0)
print("Clignotement (Ctrl-C pour arreter)")
try:
while True:
line.set_value(1)
print("LED ON")
sleep(1)
line.set_value(0)
print("LED OFF")
sleep(1)
finally:
line.release()