🛠 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.

Objectifs

Écrire votre premier script Python sur l'Orange Pi PC (Armbian, Python 3 préinstallé) sans aucune bibliothèque exotique : le script liste les LED disponibles, lit leurs triggers kernel, puis prend le contrôle manuel de la LED rouge PA15. Vous comprendrez la philosophie mainline : tout est fichier dans /sys, pas de driver vendor nécessaire.

Matériel

Code complet

Enregistrez dans ~/leds.py puis exécutez avec 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

Rendez-la exécutable : chmod +x leds.py && ./leds.py

Vérification attendue

Le script affiche la liste des LED (orangepi:green:pwr et orangepi:red:status), la LED rouge pulse en rythme cardiaque 5 secondes, clignote 10 fois rapidement, puis redevient un indicateur de charge CPU. Aucune erreur ni permission refusée.

Erreurs fréquentes

Autres tutoriels pour cette carte

Exemples de code pour cette carte

← Retour à la fiche 🛠 Tous les tutoriels