0% ont trouvé ce document utile (0 vote)
2 vues8 pages

Chapitre4 - Programmation Python - F

Ce document présente un cours sur la programmation des ports GPIO de la carte Raspberry Pi, en utilisant le langage Python et le logiciel Proteus. Il décrit les configurations nécessaires pour contrôler divers périphériques d'entrée/sortie et propose plusieurs exercices pratiques pour mettre en œuvre ces concepts. Les exercices incluent l'allumage de LEDs, la simulation de feux de signalisation et le contrôle d'un afficheur 7 segments.

Transféré par

gatlani98
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
2 vues8 pages

Chapitre4 - Programmation Python - F

Ce document présente un cours sur la programmation des ports GPIO de la carte Raspberry Pi, en utilisant le langage Python et le logiciel Proteus. Il décrit les configurations nécessaires pour contrôler divers périphériques d'entrée/sortie et propose plusieurs exercices pratiques pour mettre en œuvre ces concepts. Les exercices incluent l'allumage de LEDs, la simulation de feux de signalisation et le contrôle d'un afficheur 7 segments.

Transféré par

gatlani98
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

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

Vous aimerez peut-être aussi