🛠 GPIO en Python avec python3-libgpiod sur Le Potato
Objectifs
Piloter une LED en Python sur le Le Potato avec le module gpiod fourni par le paquet distribution python3-libgpiod — la voie officiellement documentée par Libre Computer pour remplacer les tutoriels RPi.GPIO.
Matériel
- Le Potato AML-S905X-CC sous Armbian ou Debian/Ubuntu mainline
- LED + résistance 330 Ω sur la broche physique 3 (GPIOAO_5 = chip 0, ligne 5), masse sur une broche GND
sudo apt install python3-libgpiod— surtout PASpip install gpiod
Code complet
#!/usr/bin/env python3
"""Clignotement broche 3 du Le Potato (chip 0, ligne 5). python3-libgpiod 1.x."""
import gpiod
import time
with gpiod.Chip("0") as chip: # /dev/gpiochip0
line = chip.get_lines([5])
line.request(consumer="blink", type=gpiod.LINE_REQ_DIR_OUT)
try:
for _ in range(10):
line.set_values([1])
time.sleep(0.2)
line.set_values([0])
time.sleep(0.2)
finally:
line.release
print("Terminé")
Vérification attendue
python3 blink.py allume/éteint la LED 10 fois. Un gpioinfo gpiochip0 lancé pendant l'exécution montre la ligne 5 réclamée par le consommateur « blink ».
Erreurs fréquentes
module 'gpiod' has no attribute 'Chip': le paquet pipgpiodentre en conflit avecpython3-libgpiod; désinstallez le paquet pip (pip uninstall gpiod) — erreur documentée sur le hub officiel.- API v2 : sur les distributions récentes,
chip.get_line/line.requestchangent de signature ; vérifiez la version installée avant de copier un exemple. - Oublier
line.release: la ligne reste demandée et bloque les autres programmes. - Permission refusée : groupe
gpioou root.
Autres tutoriels pour cette carte
- Faire clignoter une LED en C avec libgpiod sur Le Potato
- Lire un bouton poussoir avec libgpiod (pull-up interne)
- Fondu LED progressif avec PWM sous sysfs (meson)
- Capteur BME280 (I2C) sur Le Potato : overlay et lecture
- Console série (ttyAML0) et SSH sur Le Potato
- Boot SD/eMMC et récupération (pyamlboot) sur Amlogic S905X
Exemples de code pour cette carte
clignotante.pyPythonbouton-gpio.pyPythoncapteur-i2c.shBashsurveillance-temperature.shBashcapteur-dht11.pyPythonservo-pwm-sysfs.shBash