🛠 Premier script Python sur le Pi
Objectifs
Écrire, rendre exécutable et lancer un premier script Python 3 sur le Raspberry Pi 3 Model B. Comprendre le shebang (#!/usr/bin/env python3), les droits d'exécution (chmod +x), et piloter la LED du tutoriel précédent depuis Python avec gpiozero (préinstallé sur Raspberry Pi OS). C'est la base de tous les automates qu'on fera tourner en service systemd plus tard.
Matériel
- Raspberry Pi 3 Model B sous Raspberry Pi OS Lite (Python 3 inclus)
- LED + résistance 330 Ω sur GPIO17 (broche physique 11), comme au tutoriel 1
- Éditeur
nano(inclus) et terminal SSH - Aucune bibliothèque à installer :
gpiozeroest préinstallé
Code complet
#!/usr/bin/env python3
"""clignot.py — premier script : message console + LED sur GPIO17.
gpiozero est préinstallé sur Raspberry Pi OS (Pi 3B inclus)."""
from gpiozero import LED
from time import sleep
led = LED(17) # BCM17 = broche physique 11 (logique 3,3 V)
print("Bonjour depuis le Raspberry Pi 3 Model B !")
for i in range(5):
led.on
print(f"Cycle {i + 1} : LED allumée")
sleep(0.2)
led.off
sleep(0.3)
print("Terminé.")
Enregistrer sous clignot.py, puis :
chmod +x clignot.py # droit d'exécution
./clignot.py # lancer depuis le dossier courant
Vérification attendue
Le terminal affiche « Bonjour depuis le Raspberry Pi 3 Model B ! » puis les 5 lignes de cycle, pendant que la LED clignote (200 ms allumée, 300 ms éteinte). Le script se termine proprement sur « Terminé. ». Relancer avec python3 clignot.py doit donner exactement le même résultat — le shebang n'est qu'un raccourci.
Erreurs fréquentes
Permission deniedau./clignot.py: oublierchmod +x— ou fichier créé sur une carte SD montée en FAT depuis Windows.bad interpreter: fichier écrit avec des fins de ligne Windows (CRLF) ; corriger avecdos2unix clignot.py.ModuleNotFoundError: gpiozero: sur une distribution tierce (Ubuntu, Alpine), installerpython3-gpiozerooupip install gpiozero.RuntimeError: No suitable pin factory: lancer en root sans environnement graphique ; sur Raspberry Pi OS Lite, laissergpiozeropar défaut et ne passudoinutilement.- Indentation Python mélangée (espaces/tabulations) :
nanopeut coller des tabulations, préférer 4 espaces. - Oublier que GPIO17 est en 3,3 V : ne jamais relier une entrée 5 V sur la broche.
Autres tutoriels pour cette carte
Exemples de code pour cette carte
led_blink.pyPythonbutton_led.pyPythonservo_sweep.pyPythondht_temp.pyPythonoled_i2c.pyPythonmcp3008_read.pyPython