Introduction
Le Raspberry Pi est un micro-ordinateur abordable et puissant, idéal pour les débutants en électronique, IoT et programmation embarquée. En 2026, avec les modèles Pi 5 et Zero 2W, il reste la référence pour des projets comme la domotique, les robots ou les serveurs personnels. Ce tutoriel vous guide pas à pas pour installer Raspberry Pi OS, configurer votre appareil et créer votre premier projet : faire clignoter une LED via GPIO avec Python.
Pourquoi c'est important ? Contrairement à un PC classique, le Pi intègre GPIO pour interagir directement avec le hardware, comme des capteurs ou des moteurs. Vous apprendrez les bases en 30 minutes, avec du code 100% fonctionnel. À la fin, vous aurez un setup prêt pour des projets avancés comme un serveur web ou un assistant vocal. Pas de blabla : on passe à l'action avec des commandes copier-collables.
Prérequis
- Un Raspberry Pi (modèle 4, 5 ou Zero recommandé)
- Carte microSD ≥16 Go (classe 10)
- Alimentation USB-C 5V/3A
- Câble HDMI/micro-HDMI + écran (ou accès SSH)
- Ordinateur avec Raspberry Pi Imager (téléchargeable sur raspberrypi.com)
- LED, résistance 220Ω, câbles jumper (pour le projet GPIO)
- Connaissances basiques en terminal (Linux/Mac/Windows avec WSL)
Préparer la carte microSD
#!/bin/bash
# Sur Linux/Mac : remplacez /dev/sdX par votre carte SD (utilisez lsblk ou diskutil list)
# ATTENTION : Vérifiez le disque pour éviter d'effacer vos données !
disk=/dev/sdX
# Démonter les partitions
sudo umount ${disk}*
# Flasher Raspberry Pi OS Lite (téléchargez l'image au préalable depuis raspberrypi.com)
# Remplacez 'raspios_lite.img' par le nom de votre image
sudo dd if=raspios_lite.img of=${disk} bs=4M status=progress conv=fsync
# Synchroniser et éjecter
sudo sync
sudo eject ${disk}Ce script bash flashe Raspberry Pi OS sur la carte SD via dd. Il démonte les partitions pour éviter les erreurs et utilise bs=4M pour accélérer le processus. Piège courant : mal identifier le disque (/dev/sdX), ce qui efface vos données ; toujours vérifier avec lsblk.
Premier boot et configuration WiFi
Insérez la carte SD dans le Pi, branchez alimentation, HDMI et clavier. Le Pi bootera en 30s. Utilisez raspi-config pour activer SSH et configurer WiFi. Éditez wpa_supplicant.conf pour un accès headless (sans écran).
Configurer WiFi et SSH
# Créer wpa_supplicant.conf à la racine de la partition boot
cat > /boot/firmware/wpa_supplicant.conf << EOF
country=FR
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
ssid="VOTRE_WIFI"
psk="VOTRE_MOT_DE_PASSE"
}
EOF
# Activer SSH
sudo touch /boot/firmware/ssh
# Redémarrer
sudo rebootCe code configure WiFi et SSH pour un boot sans écran. Placez-le sur la partition boot avant insertion. Remplacez SSID et PSK ; country=FR évite les problèmes légaux. Piège : oublier sudo touch /boot/ssh bloque l'accès distant.
Mettre à jour le système
#!/bin/bash
sudo apt update
sudo apt upgrade -y
sudo apt install python3-pip python3-gpiozero git vim -y
sudo raspi-config nonint do_ssh 0 # Activer SSH si pas fait
sudo rebootMet à jour tous les paquets et installe gpiozero pour Python GPIO (plus simple que RPi.GPIO). nonint automatise raspi-config. Lancez via SSH après boot. Piège : oublier le reboot, les libs ne chargent pas.
Comprendre les GPIO
Les GPIO (General Purpose Input/Output) sont 40 pins sur le Pi pour connecter LED, boutons, capteurs. Pin 17 = sortie pour LED, pin 2 = 5V, pin 6 = GND. Utilisez gpiozero : abstraction simple, gère PWM et interruptions.
Premier script : LED clignotante
from gpiozero import LED
from time import sleep
led = LED(17) # Pin GPIO17
try:
while True:
led.on()
sleep(0.5)
led.off()
sleep(0.5)
except KeyboardInterrupt:
led.off()
print("LED éteinte.")Ce script crée une LED sur GPIO17 qui clignote 1s on/off. gpiozero.LED simplifie : pas de setup pinMode. Branchez LED+ via résistance sur pin17, - sur GND. Ctrl+C arrête proprement. Piège : polarité LED inversée = rien ne s'allume.
Script avancé : LED avec bouton
from gpiozero import LED, Button
from signal import pause
led = LED(17)
button = Button(2, pull_up=True) # Pin GPIO2, pull-up interne
button.when_pressed = led.on
button.when_released = led.off
print("Appuyez sur le bouton pour allumer/éteindre la LED")
pause() # Boucle infinie sans bloquerAjoute un bouton sur GPIO2 : appui allume LED, relâche éteint. pull_up=True évite un pull-up externe. pause() garde le script vivant. Idéal pour interagir. Piège : sans pull-up, bouton flotte et déclenche faux positifs.
Lancer au boot
#!/bin/bash
# Copier script dans systemd service
sudo cp blink.py /home/pi/
sudo chown pi:pi /home/pi/blink.py
cat > /etc/systemd/system/blink.service << EOF
[Unit]
Description=LED Blink
After=multi-user.target
[Service]
ExecStart=/usr/bin/python3 /home/pi/blink.py
WorkingDirectory=/home/pi
Restart=always
User=pi
[Install]
WantedBy=multi-user.target
EOF
sudo systemctl daemon-reload
sudo systemctl enable blink.service
sudo systemctl start blink.serviceCrée un service systemd pour lancer blink.py au boot. Restart=always relance si crash. Vérifiez avec systemctl status blink. Piège : mauvais chemin absolu = service échoue silencieusement.
Bonnes pratiques
- Toujours utiliser des résistances (220Ω) pour limiter courant LED/GPIO (max 16mA/pin).
- Pull-up/pull-down pour entrées stables, via
gpiozero. - Services systemd pour autostart, pas crontab.
- Logs :
journalctl -u blink.servicepour debug. - Backup SD régulièrement avec
ddoursync.
Erreurs courantes à éviter
- GPIO en root :
gpiozeronécessitepiuser ; sudo casse PWM. - Alim insuffisante : Pi brownout = freezes ; utilisez 5V/3A officiel.
- Pins BCM vs Board :
gpiozeroutilise BCM (17), pas numéros physique. - Overclock sans ventilo : Chauffe → throttling ; testez
vcgencmd measure_temp.
Pour aller plus loin
- Documentation GPIO : gpiozero docs
- Projets IoT : Docker sur Pi, Home Assistant
- Hardware avancé : Capteurs DHT22, moteurs avec L298N
- Découvrez nos formations Learni sur l'IoT et Raspberry Pi.