🛠 Premier script Python : LED et informations système
Objetivos
Escribir su primer script de Python 3 en el ODROID-C4: mostrar información sobre el SoC Amlogic S905X3 (4 núcleos Cortex-A55) y hacer parpadear el LED de estado mediante sysfs, sin dependencia externa de GPIO. Aprenderá a crear, hacer ejecutable y lanzar un script, y a manipular los archivos de /sys desde Python.
Material
- ODROID-C4 con Armbian current
- Teclado + pantalla HDMI o sesión SSH
- Python 3 está preinstalado en Armbian (
python3 --version)
Código completo
#!/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.")
Ejecución: chmod +x hello_c4.py && ./hello_c4.py
Verificación esperada
La terminal muestra Architecture : aarch64, Cœurs détectés : 4, y luego el LED azul parpadea 5 veces (0,4 s por estado) antes de apagarse. El script termina solo y devuelve el control. Si lo vuelve a ejecutar sin tocar el trigger, el parpadeo sigue funcionando: trigger=none persiste mientras el sistema esté en marcha.
Errores frecuentes
PermissionErroren/sys/class/leds/...: vuelva a ejecutar consudo ./hello_c4.pyosudo python3 hello_c4.py.- Olvidar el shebang
#!/usr/bin/env python3y luego ejecutar./hello_c4.py: el shell rechaza o interpreta mal el archivo. - La ruta del LED se escribe
blue:statuscon dos puntos: tenga cuidado con la autocompletación del shell que la escapa comoblue\:status. - Confundir
brightness(0 o 1 aquí, el LED no tiene variación PWM en este nodo) con un valor 0-255 como en otras tarjetas. - Ejecutar el script con Python 2:
pathliby las f-strings requieren Python 3.
Otros tutoriales para esta placa
Ejemplos de código para esta placa
clignotante.pyPythonbouton-gpio.pyPythoncapteur-i2c.shBashsurveillance-temperature.shBashcapteur-dht11.pyPythonservo-pwm-sysfs.shBash