🛠 Premier script Python : faire clignoter la LED
Objectifs
Passer des commandes aux programmes : écrire, exécuter et arrêter proprement un premier script Python 3 qui fait clignoter la LED du tuto 1, en utilisant la bibliothèque RPi.GPIO encore fournie sur les images legacy (ARMv6).
Matériel
- Raspberry Pi Model B+ sous Raspberry Pi OS legacy 32 bits
- LED + résistance 330 Ω câblées sur GPIO17 (broche 11) et GND (broche 14), comme au tuto 1
- Clavier/écran HDMI ou session SSH sur l'Ethernet du B+
Code complet
# Installation de la bibliothèque GPIO pour Python 3
sudo apt update && sudo apt install -y python3-rpi.gpio
nano blink.py # coller le script ci-dessous, puis Ctrl+O, Ctrl+X
sudo python3 blink.py
#!/usr/bin/env python3
"""Clignotant LED sur GPIO17 (broche 11) — Raspberry Pi Model B+."""
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BCM) # on raisonne en numérotation BCM
GPIO.setup(17, GPIO.OUT)
try:
for _ in range(10): # 10 clignotements
GPIO.output(17, GPIO.HIGH)
time.sleep(0.3)
GPIO.output(17, GPIO.LOW)
time.sleep(0.3)
finally:
GPIO.cleanup # rend la broche propre à la sortie
Vérification attendue
La LED clignote 10 fois (0,3 s allumée / 0,3 s éteinte) puis le script se termine sans message. Ctrl+C interrompt le programme et déclenche quand même GPIO.cleanup grâce au bloc finally.
Erreurs fréquentes
- Oubli de sudo : RPi.GPIO lève une exception « No access to /dev/gpiomem ».
- setmode oublié ou BCM/BOARD confondus : « Please set pin numbering mode » ou LED muette.
- python (Python 2) au lieu de python3 sur une image récente : module introuvable.
- Script lancé deux fois : la broche est déjà occupée, éteindre l'autre terminal.
Autres tutoriels pour cette carte
- Allumer une LED depuis la GPIO 17 avec libgpiod
- Lire un bouton et afficher les appuis dans la console
- Variation d'intensité d'une LED avec le PWM matériel (GPIO18)
- Interroger un capteur I2C (BME280) sur le bus du 40 broches
- Mettre le B+ en réseau par Ethernet et piloter en SSH
- Amorçage microSD, pannes de boot et procédure de recouvrement
Exemples de code pour cette carte
led_blink.pyPythonbutton_led.pyPythonservo_sweep.pyPythondht_temp.pyPythonoled_i2c.pyPythonmcp3008_read.pyPython