🛠 Premier script Python : LED et informations système
Objectifs
Écrire votre premier script Python 3 sur l'ODROID-C4 : afficher des informations sur le SoC Amlogic S905X3 (4 cœurs Cortex-A55) et faire clignoter la LED status via sysfs, sans dépendance GPIO externe. Vous apprendrez à créer, rendre exécutable et lancer un script, et à manipuler les fichiers de /sys depuis Python.
Matériel
- ODROID-C4 sous Armbian current
- Clavier + écran HDMI ou session SSH
- Python 3 est préinstallé sur Armbian (
python3 --version)
Code complet
#!/usr/bin/env python3
"""hello_c4.py - infos système + clignotement LED status."""
import pathlib
import platform
import time
led = pathlib.Path("/sys/class/leds/blue:status")
led.joinpath("trigger").write_text("none") # libérer la LED du heartbeat
cpu = pathlib.Path("/proc/cpuinfo").read_text
coeurs = cpu.count("processor")
print(f"Architecture : {platform.machine}")
print(f"Cœurs détectés : {coeurs} (Amlogic S905X3, Cortex-A55)")
for i in range(10):
led.joinpath("brightness").write_text("1" if i % 2 == 0 else "0")
time.sleep(0.4)
led.joinpath("brightness").write_text("0")
print("Terminé : 5 clignotements effectués.")
Lancement : chmod +x hello_c4.py && ./hello_c4.py
Vérification attendue
Le terminal affiche Architecture : aarch64, Cœurs détectés : 4, puis la LED bleue clignote 5 fois (0,4 s par état) avant de s'éteindre. Le script se termine seul et rend la main. Si vous relancez sans toucher au trigger, le clignotement fonctionne encore : trigger=none persiste tant que le système tourne.
Erreurs fréquentes
PermissionErrorsur/sys/class/leds/...: relancer avecsudo ./hello_c4.pyousudo python3 hello_c4.py.- Oublier le shebang
#!/usr/bin/env python3puis exécuter./hello_c4.py: le shell refuse ou interprète mal le fichier. - Le chemin de la LED s'écrit
blue:statusavec un deux-points : attention à l'auto-complétion du shell qui l'échappe enblue\:status. - Confondre
brightness(0 ou 1 ici, la LED n'a pas de variation PWM sur ce nœud) avec une valeur 0-255 comme sur d'autres cartes. - Exécuter le script sous Python 2 :
pathlibet les f-strings exigent Python 3.
Autres tutoriels pour cette carte
Exemples de code pour cette carte
clignotante.pyPythonbouton-gpio.pyPythoncapteur-i2c.shBashsurveillance-temperature.shBashcapteur-dht11.pyPythonservo-pwm-sysfs.shBash