🛠 Premier script Python : piloter les LED système

Orange Pi PC (Allwinner H3) · debutant · Schéma : IMG-orangepi-pc-debutant-3-opipc-premier-script-python.svg — Script Python traversant la couche leds-gpio du noyau Linux pour piloter les LED orangepi:red:status et orangepi:green:pwr de l'Orange Pi PC, sans bibliothèque propriétaire.

Objetivos

Escribir su primer script Python en la Orange Pi PC (Armbian, Python 3 preinstalado) sin ninguna biblioteca exótica: el script lista los LED disponibles, lee sus triggers del kernel y luego toma el control manual del LED rojo PA15. Comprenderá la filosofía mainline: todo es un archivo en /sys, no se necesita ningún driver del fabricante.

Hardware

Código completo

Guárdelo en ~/leds.py y ejecútelo con python3 leds.py:

#!/usr/bin/env python3
"""leds.py — découverte et contrôle des LED de l'Orange Pi PC (mainline)."""
from pathlib import Path
import time

LED = Path("/sys/class/leds/orangepi:red:status")   # PA15, du device tree

def main -> None:
    leds = sorted(p.name for p in Path("/sys/class/leds").iterdir)
    print("LEDs système :", leds)

    triggers = (LED / "available_triggers").read_text.split
    print("Triggers dispo :", triggers)

    # 1) Confier la LED à un trigger kernel (aucun bit-banging utilisateur)
    (LED / "trigger").write_text("heartbeat")
    print("Mode heartbeat pendant 5 s...")
    time.sleep(5)

    # 2) Reprendre la main et clignoter manuellement
    (LED / "trigger").write_text("none")
    for _ in range(10):
        (LED / "brightness").write_text("255")
        time.sleep(0.15)
        (LED / "brightness").write_text("0")
        time.sleep(0.15)
    # Rendre la LED au trigger par défaut (CPU)
    (LED / "trigger").write_text("cpu")
    print("Terminé, LED rendue au noyau.")

if __name__ == "__main__":
    main

Hágalo ejecutable: chmod +x leds.py && ./leds.py

Verificación esperada

El script muestra la lista de LED (orangepi:green:pwr y orangepi:red:status), el LED rojo pulsa con un ritmo cardíaco durante 5 segundos, parpadea 10 veces rápidamente y luego vuelve a ser un indicador de carga de CPU. Sin errores ni permisos denegados.

Errores frecuentes

Otros tutoriales para esta placa

Ejemplos de código para esta placa

← Volver a la ficha 🛠 Todos los tutoriales