Mini projet : Commande d’une LED avec Raspberry Pi 4
OBJECTIF : Ce projet consiste à réaliser un programme qui sera implémenter sur la carte
Raspberry Pi 4 qui va permettre de contrôler une LED.
Réalisé par : RIBOUH OTHMANE
1
INTRODUCTION
Ce projet a pour objectif de démontrer l'utilisation des GPIO (General Purpose Input/Output) de la carte
Raspberry Pi 4 pour contrôler une LED. La Raspberry Pi est un micro-ordinateur puissant et polyvalent,
Largement utilisé dans les projets de bricolage électronique et les applications IoT (Internet of Things).
En exploitant les capacités de la Raspberry Pi, ce projet simple vise à allumer et éteindre une LED via un
Script Python. Ce processus implique l'utilisation de la bibliothèque RPi.GPIO pour la gestion des broches
GPIO, ainsi que des concepts de base en électronique, tels que l'utilisation de résistances pour protéger les
Composants.
Le projet est conçu pour fournir une introduction pratique aux principes fondamentaux de la programmation
Embarquée et du prototypage électronique. En réalisant ce projet, les utilisateurs acquerront une
Compréhension de base de la manière dont les signaux numériques peuvent être utilisés pour contrôler des
Composants physiques, ouvrant ainsi la voie à des projets plus complexes et à une exploration plus
Approfondie des capacités de la Raspberry Pi.
2
Définition de la Carte Raspberry Pi 4
La Raspberry Pi 4 est un micro-ordinateur à faible coût, de la taille d'une carte de crédit, développé par la
Fondation Raspberry Pi. Conçue pour être polyvalente et accessible, elle est largement utilisée dans
L’éducation, les projets de bricolage électronique, et les applications IoT (Internet of Things).
La Raspberry Pi 4 Est la quatrième génération de la série Raspberry Pi et offre des améliorations
Significatives par rapport à ses Prédécesseurs en termes de performances et de fonctionnalités.
Caractéristiques Techniques Principales :
1. Processeur : Quad-core Cortex-A72 (ARM v8) 64-bit SoC @ 1.5GHz.
2. Mémoire : Options de 2GB, 4GB, et 8GB de RAM LPDDR4-3200.
3. Stockage : Slot pour carte microSD pour le système d'exploitation et le stockage de données.
4. Connectivité :
o Ethernet Gigabit.
o Wi-Fi 802.11ac double bande.
o Bluetooth 5.0.
5. Ports :
o 2 ports USB 3.0 et 2 ports USB 2.0.
o 2 ports micro-HDMI (supporte jusqu'à 4Kp60).
o Port USB-C pour l'alimentation.
o Port GPIO à 40 broches pour les interfaces matérielles et les extensions.
o Port CSI pour caméra et port DSI pour écran tactile.
6. Graphiques : VideoCore VI GPU, capable de décoder des vidéos en H.265 (4Kp60) et H.264 (1080p60).
La Raspberry Pi 4 est compatible avec une variété de systèmes d'exploitation, y compris Raspberry Pi OS
(Anciennement Raspbian), Ubuntu, et d'autres distributions Linux, ainsi que des systèmes spécifiques pour
Les projets IoT et multimédia. Grâce à ses performances améliorées et à ses capacités étendues, la
Raspberry
Pi 4 est idéale pour des applications allant de l'apprentissage de la programmation à l'automatisation
Domestique, en passant par la création de serveurs et le développement de prototypes électroniques.
3
Matériel Nécessaire
1. Raspberry Pi 4 (avec Raspbian OS installé).
2. Une LED.
3. Une résistance (généralement 330Ω ou 220Ω).
4. Des câbles de connexion.
5. Une breadboard (plaque de prototypage).
4
LE MONTAGE DES COMPOSANTS
Connexion de la LED :
• J’ai inséré la LED sur la breadboard.
• Connectez la patte longue de la LED (anode, +) à une résistance (330Ω ou 220Ω).
• Connectez l’autre extrémité de la résistance à un GPIO de la Raspberry Pi (par
exemple, GPIO 17, pin 11).
• Connectez la patte courte de la LED (cathode, -) à la masse (GND) de la Raspberry Pi
(pin 6).
5
INSTALLATION DES BIBLIOTHEQUES
sudo apt-get update
sudo apt-get install python3-rpi.gpio
J’ai exécuté cette commande dans mon terminal pour ajouter la bibliothèque : RPi.GPIO
LE CODE PYTHON
import RPi.GPIO as GPIO
import time
# Utilisez le mode BCM pour se référer aux pins par leur numéro GPIO
GPIO.setmode(GPIO.BCM)
# Définissez le GPIO 17 comme une sortie
LED_PIN = 17
GPIO.setup(LED_PIN, GPIO.OUT)
try:
while True:
# Allume la LED
GPIO.output(LED_PIN, GPIO.HIGH)
Print ("LED allumée")
Time. sleep (1) # Attends 1 seconde
6
# Éteint la LED
GPIO.output(LED_PIN, GPIO.LOW)
print ("LED éteinte")
time.sleep(1) # Attends 1 seconde
except KeyboardInterrupt:
# Nettoie les réglages GPIO avant de quitter
GPIO.cleanup()
EXPLICATION DU CODE
import RPi.GPIO as GPIO
import time
RPi.GPIO : Cette bibliothèque permet de contrôler les broches GPIO de la Raspberry Pi.
Time : Cette bibliothèque permet de gérer les délais dans le programme (par exemple,
Attendre une seconde).
7
GPIO.setmode(GPIO.BCM)
GPIO.setmode(GPIO.BCM) : Configure le mode de numérotation des broches GPIO en
utilisant les numéros GPIO (Broadcom SOC channel numbers).
Une autre option est GPIO.setmode(GPIO.BOARD), qui utilise les numéros physiques des
pins.
LED_PIN = 17
GPIO.setup(LED_PIN, GPIO.OUT)
LED_PIN = 17 : Définit la variable LED_PIN pour représenter le GPIO 17.
GPIO.setup(LED_PIN, GPIO.OUT) : Configure le GPIO 17 comme une sortie
try:
while True:
# Allume la LED
GPIO.output(LED_PIN, GPIO.HIGH)
print("LED allumée")
time.sleep(1) # Attends 1 seconde
# Éteint la LED
GPIO.output(LED_PIN, GPIO.LOW)
print("LED éteinte")
time.sleep(1) # Attends 1 seconde 8
while True : Crée une boucle infinie pour allumer et éteindre la LED.
GPIO.output(LED_PIN, GPIO.HIGH) : Envoie un signal haut (3.3V) au GPIO 17, ce qui
allume la LED.
Print ("LED allumée") : Affiche un message indiquant que la LED est allumée.
time. sleep(1) : Attend 1 seconde avant d'exécuter la commande suivante.
GPIO.output(LED_PIN, GPIO.LOW) : Envoie un signal bas (0V) au GPIO 17, ce qui
éteint la LED.
print("LED éteinte") : Affiche un message indiquant que la LED est éteinte.
time.sleep(1) : Attend 1 seconde avant de recommencer la boucle
Except KeyboardInterrupt:
# Nettoie les réglages GPIO avant de quitter
GPIO.cleanup()
Except KeyboardInterrupt : Intercepte l'interruption clavier (Ctrl+C) pour permettre l'arrêt
propre du programme.
GPIO.cleanup() : Réinitialise les réglages des GPIO, libérant ainsi les ressources utilisées par
les broches GPIO.
9
CONCLUSION
Ce projet de contrôle d'une LED avec une Raspberry Pi 4 a permis d'illustrer de manière
concrète les principes fondamentaux de l'interaction entre le matériel et le logiciel dans les
systèmes embarqués. En partant d'un objectif simple - allumer et éteindre une LED - nous
avons pu explorer plusieurs aspects essentiels du développement embarqué, notamment la
manipulation des broches GPIO, la programmation en Python, et la mise en œuvre de circuits
électroniques de base.
Acquis Techniques
1. Compréhension des GPIO :
o Nous avons appris à configurer et utiliser les broches GPIO de la Raspberry Pi 4,
en utilisant le mode BCM pour référencer les broches par leurs numéros GPIO.
o La mise en œuvre d'un circuit avec une LED et une résistance a illustré
l'importance de protéger les composants électroniques tout en permettant leur
contrôle via des signaux numériques.
2. Programmation en Python :
o Le script Python développé a démontré comment envoyer des signaux
numériques à une broche GPIO pour contrôler une LED.
o L'utilisation de bibliothèques standard comme RPi.GPIO et time a mis en évidence
la simplicité avec laquelle on peut écrire des programmes interactifs pour des
systèmes embarqués.
3. Gestion des Ressources et Sécurité :
o L'implémentation d'un bloc try-except a permis de gérer proprement les
interruptions et de nettoyer les réglages des GPIO avant de quitter le programme,
évitant ainsi de laisser les broches dans un état indéterminé.
Applications Futures
Ce projet de base ouvre la voie à une multitude d'applications plus complexes. Voici quelques
idées pour étendre ce projet :
10
1. Ajout de Boutons :
o Ajouter des boutons pour contrôler l'allumage et l'extinction de la LED
manuellement.
o Implémenter des interruptions pour détecter les appuis sur les boutons et
répondre en conséquence.
2. Intégration de Capteurs :
o Utiliser des capteurs (température, lumière, mouvement) pour déclencher
l'allumage ou l'extinction de la LED en fonction des conditions environnementales.
3. Automatisation et IoT :
o Intégrer la Raspberry Pi à un réseau domestique et contrôler la LED via une
interface web ou une application mobile.
o Utiliser des protocoles de communication comme MQTT pour créer un système
IoT complet, où la LED pourrait être contrôlée à distance ou faire partie d'un
système plus grand.
4. Contrôle de Matrices de LEDs :
o Étendre le projet pour contrôler des matrices de LEDs, permettant ainsi la création
d'affichages visuels plus complexes.
Impact Éducatif
Ce projet constitue une excellente introduction à la programmation embarquée et à
l'électronique pour les étudiants et les amateurs. Il combine des aspects théoriques et
pratiques, renforçant ainsi la compréhension des concepts tout en fournissant une
satisfaction immédiate grâce à l'interactivité des résultats. De plus, il encourage
l'expérimentation et la créativité, des qualités essentielles pour tout ingénieur ou développeur.
Conclusion Générale
En résumé, ce projet de contrôle d'une LED avec une Raspberry Pi 4 est une démonstration
efficace et éducative des possibilités offertes par les systèmes embarqués. Il montre
comment un simple script Python et quelques composants électroniques peuvent interagir
pour créer des comportements dynamiques et programmables. Ce projet n'est que le début
d'une exploration plus vaste des capacités de la Raspberry Pi et des innombrables
11
Applications qu'elle peut permettre dans le domaine de l'électronique et de l'Internet des
objets (IoT).
En maîtrisant les compétences de base présentées ici, les utilisateurs sont bien équipés pour
entreprendre des projets plus ambitieux et innovants, contribuant ainsi à la croissance de la
technologie embarquée et à l'innovation dans divers domaines.
12