Bouebdelli University Année Universitaire
4ème Année Ingénieur en Mécatronique (ASIIN) 2025-2026
Programmation Python
L A
Chapitre4 : Programmation Basique des Ports GPIO de
FA
la Carte Raspberry Pi
ER
Objectif :
GU
Se familiariser avec l’environnement du Logiciel Proteus 8.14 côté câblage schéma
électrique avec la carte Raspberry Pi programmable sur l’environnement «
Schematic Capture ». Programmation directe avec le langage Python sur l’éditeur
ajih
interne « Source Code » de Proteus et simulation du montage câblé avec le code
implémenté.
Comprendre comment configurer les ports GPIO de la carte Raspberry Pi 3B pour
contrôler un ensemble de périphériques d'entrée/sortie.
dW
Se familiariser avec l’environnement de programmation Python Thonny IDL
me
3 - Programmation du Port GPIO de la carte Raspberry Pi
Les modèles A+, B+, B2, B3, B4 et B5 possèdent un port GPIO à 40 broches (pins), dont
26 broches correspondant aux broches d’entrées / sorties numériques de la carte avec
ha
14 broches supplémentaires pour l’alimentation (3.3 V, 5V et GND). Un circuit
conçu pour les versions Pour la suite, nous développons nos scripts de programmation sur le
Mo
modèle B3 de la carte Raspberry Pi.
Mohamed Wajih GUERFALA 1
Bouebdelli University Année Universitaire
4ème Année Ingénieur en Mécatronique (ASIIN) 2025-2026
Le port GPIO (General Purpose Input/Output, ou Entrées/Sorties pour un usage générique)
mettra à votre disposition de nombreuses entrées-sorties, une alimentation, un port PWM, un
A
port SPI, un port I2C, et un port série UART. L'ensemble de ces fonctionnalités peuvent
L
être activées une à une selon vos besoins.
FA
ER
GU
Figure.2 Fonctionnalités normales du port GPIO
ajih
dW
Figure.3 Fonctionnalités étendues du port GPIO
Il existe de nombreuses bibliothèques dédiées au Raspberry Pi. Elles sont stockées, pour la
me
plupart, sur Pypi ou dans Advanced Packaging Tools. Celle que nous étudierons ici est la
bibliothèque du port GPIO " [Link] ".
ha
Pour l'installer, il suffit donc de taper les commandes suivantes dans l'interpréteur de
commandes "LX Terminal" :
Mo
sudo apt-get update
sudo apt-get install [Link]
Mohamed Wajih GUERFALA 2
Bouebdelli University Année Universitaire
4ème Année Ingénieur en Mécatronique (ASIIN) 2025-2026
Le port GPIO n'est accessible qu'en mode Administrateur 'root'. N'oubliez donc pas de
lancer le programme Python avec la commande 'sudo', sinon cela ne fonctionnera pas.
L A
sudo python3 mon_script.py
FA
La bibliothèque GPIO
L'appel du module "[Link]" dans notre script se fait à travers la commande import du
ER
langage Python qui importe le contenu d'un module quelconque de la bibliothèque avec ses
fonctions déjà programmées. Dans notre cas, nous écrivons cette ligne au début du script :
import [Link] as GPIO
Configuration générale
GU
La carte Raspberry Pi autorise deux numérotations : celle de la sérigraphie du connecteur de
la carte ([Link]), ou la numérotation électronique de la puce ([Link]). À vous de
ajih
choisir celle que vous voulez. La numérotation électronique BCM est largement utilisée dans
les applications utilisant la carte d'extension (40 pins) et le câble GPIO Raspberry Pi.
dW
me
Figure.4 En noir la numérotation [Link]. En rouge, la numérotation [Link]
Le choix de la numérotation BOARD ou BCM se fait par la fonction setmode du module
ha
"[Link]" comme suit :
[Link]([Link])
Mo
[Link]([Link])
Mohamed Wajih GUERFALA 3
Bouebdelli University Année Universitaire
4ème Année Ingénieur en Mécatronique (ASIIN) 2025-2026
Configuration des entrées-sorties
Afin d'initialiser une broche (pin) d'E/S, il suffit de préciser son numéro, en fonction de la
A
configuration précédemment choisie, son paramétrage (entrée ou sortie) comme suit :
L
[Link](12, [Link]) # broche 12 est une entrée numérique
FA
[Link](12, [Link]) # broche 12 est une sortie numérique
Lire une entrée numérique
ER
Afin de lire l'état d'une entrée, il suffit de préciser le numéro d'une broche (pin) d'E/S et la
fonction input du module "[Link]" renvoie le résultat True ou False selon l'état de
l'entrée.
[Link](12)
GU
Changer l'état d'une sortie numérique
Concernant l’état des entrées / sorties (E/S), le module "[Link]" accepte des variables
ajih
dédiées, des entiers ou des booléens.
Ainsi, l'état haut peut valoir au choix [Link], 1 ou encore True. De même, l'état bas
peut valoir [Link], 0 ou False.
dW
Pour modifier l'état d'une sortie, il faut indiquer le numéro de la sortie, ainsi que l'état désiré.
[Link](12, [Link])
[Link](12, [Link])
me
Exercice 1 :
Ecrivez un programme « TP4_Ex1.py » permettant de faire allumer la LED1 de façon
permanente et de faire clignoter la LED2 de façon à travers un Bouton tactile B1. Le mode
ha
de configuration des ports GPIO imposé par le logiciel Proteus est le mode de numérotation
[Link].
La LED1 sera branchée sur la broche (GPIO25) du GPIO comme broche de sortie.
Mo
La LED2 sera branchée sur la broche (GPIO24) du GPIO comme broche de sortie.
Pour protéger les deux LED, il faut les mettre chacune en série avec une résistance R 330
qui est elle-même reliée à la masse GND. Le Bouton tactile sera branché sur la broche
(GPIO4) du GPIO comme broche d'entrée reliée à une résistance R2 10k .
Mohamed Wajih GUERFALA 4
Bouebdelli University Année Universitaire
4ème Année Ingénieur en Mécatronique (ASIIN) 2025-2026
Attention : Le bouton est aussi relié la masse GND "pin 6" (Board) et l’alimentation du pin
A
de 3,3 V et non pas au pin de 5 V puisque les entrées Raspberry Pi sont conçues pour
L
fonctionner en 3,3 V.
Nous allons utiliser le module "[Link]" pour configurer le port GPIO de notre carte
FA
Raspberry Pi 3B et le module "time" pour temporiser l'appui du bouton (à 0.2 seconde) à
travers la fonction "sleep".
ER
Composant nécessaire à l’expérience : Carte Raspberry Pi 3B ; plaque à essais électronique ;
deux diodes LED rouge ; un Bouton tactile ; trois résistances (deux résistances R 330 et
une autre résistance R2 10k ); Female-to-male jumpers ; Male-to-male jumpers.
GU
ajih
dW
me
Exercice 2 :
Ecrivez un programme « TP4_Ex2.py » permettant de faire clignoter 6 LEDs (2 rouges, 2
jaunes et 2 vertes) représentant deux Feux de signalisation routière.
ha
Mo
Feux 1 Feux 2
Figure.5 Feux de signalisation routière
Mohamed Wajih GUERFALA 5
Bouebdelli University Année Universitaire
4ème Année Ingénieur en Mécatronique (ASIIN) 2025-2026
Le temps de séquence pour chaque feu est le suivant :
Un délai de trois secondes entre le feu vert et le feu jaune
A
Un délai d’une seconde entre le feu jaune et le feu rouge
L
Un délai de trois secondes entre le feu jaune et le feu vert
FA
Pour le premier Feux, la LED rouge sera branchée sur la broche numérique (GPIO17) de la
carte Raspberry Pi 3B comme broche de sortie. La LED jaune sera branchée sur la broche
numérique (GPIO18) comme broche de sortie. La LED verte sera branchée sur la broche
ER
numérique (GPIO27) comme broche de sortie.
Pour le deuxième Feux, la LED rouge sera branchée sur la broche numérique (GPIO23) de la
GU
carte Raspberry Pi 3B comme broche de sortie. La LED jaune sera branchée sur la broche
numérique (GPIO24) comme broche de sortie. La LED verte sera branchée sur la broche
numérique (GPIO25) comme broche de sortie.
ajih
Composant nécessaire à l’expérience : Carte Raspberry Pi 3B ; plaque à essais électronique ;
6 LEDs (2 rouges, 2 jaunes et 2 vertes) ; six résistances R 330 ; Male -to-male jumpers.
dW
me
ha
Mo
Mohamed Wajih GUERFALA 6
Bouebdelli University Année Universitaire
4ème Année Ingénieur en Mécatronique (ASIIN) 2025-2026
Exercice 3:
Ecrivez un programme « TP4_Ex3.py » permettant de contrôler un afficheur 7 segments à
A
cathode commune pour afficher un compteur numérique de 0 à 9. Le compteur doit être
L
incrémenté de 0 à 9 via le bouton B1 et décrémenté de 9 à 0 via le bouton B2.
FA
ER
GU
Figure.6 Afficheur 7 segments à cathode commune
ajih
L'afficheur 7 segments (common cathode) sera connecté aux broches GPIO suivantes de la
carte Raspberry Pi 3B :
Segment A → broche (GPIO17)
dW
Segment B → broche (GPIO18)
Segment C → broche (GPIO27)
Segment D → broche (GPIO22)
Segment E → broche (GPIO23)
me
Segment F → broche (GPIO24)
Segment G → broche (GPIO25)
Common Cathode → broche GND "pin 39"(Board)
Les boutons seront connectés comme suit :
ha
Bouton B1 (Incrémentation) → broche (GPIO5) en entrée avec résistance pull-up
Bouton B2 (Décrémentation) → broche (GPIO6) en entrée avec résistance pull-up
Mo
Les deux boutons seront également reliés à l'alimentation 3.3V "pin 1" (Board) et à la masse
GND via les résistances appropriées.
Mohamed Wajih GUERFALA 7
Bouebdelli University Année Universitaire
4ème Année Ingénieur en Mécatronique (ASIIN) 2025-2026
Composant nécessaire à l’expérience : Carte Raspberry Pi 3B ; plaque à essais électronique ;
Afficheur 7 segments à cathode commune; deux Boutons tactile ; neuf résistances (7
A
résistances R 330 et deux autres résistances); Male -to-male jumpers.
L
FA
ER
GU
ajih
dW
me
ha
Mo
Mohamed Wajih GUERFALA 8