0% ont trouvé ce document utile (0 vote)
61 vues4 pages

GPIO sur Raspberry Pi 4 avec Python

Le document décrit l'utilisation des GPIO sur la Raspberry Pi avec la bibliothèque Python RPi.GPIO. Il explique comment configurer et utiliser les GPIO en entrée et sortie, ainsi que la détection d'événements avec des interruptions.

Transféré par

Mohamed Ali Daymi
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)
61 vues4 pages

GPIO sur Raspberry Pi 4 avec Python

Le document décrit l'utilisation des GPIO sur la Raspberry Pi avec la bibliothèque Python RPi.GPIO. Il explique comment configurer et utiliser les GPIO en entrée et sortie, ainsi que la détection d'événements avec des interruptions.

Transféré par

Mohamed Ali Daymi
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

GPIO

Christian Dupaty
BTS Systèmes Numériques
Lycée Fourcade - Gardanne
Académie d’Aix-Marseille
RASPBERRY PI et PYTHON : GPIO

1) TP : GPIO
17 GPIO (General Purpose Input/Output) sont disponibles sur le connecteur de la Raspberry Pi. La
plupart des broches supportant les GPIO peuvent être réassignées à des périphériques de communication.
En mode GPIO ces broches peuvent être configurées soit en entrée binaire soit en sortie binaire.

[Link]
Le matériel : [Link]
La bibliothèque : [Link]

Installation :
Installation de [Link], la bibliothèque de gestion Entrées/Sorties
Legende des
1) récupérer la bibliothèque : wget couleurs
[Link]
[Link] +5 V
2) Décompresser : tar xvzf [Link] (remplacer le numéro de version
si nécessaire) +3.3 V
3) Aller dans le répertoire de la bibliothèque : cd [Link]-0.3.1a
Ground, 0V
4) Installation : sudo python [Link] install
5) détruire l’archive et le dossier d’installation UART
cd ..
sudo rm –tf [Link]-0.3.1a/ GPIO
rm [Link]

6) OU avec PIP SPI


apt-get remove [Link]
pip install --upgrade [Link] I²C

Utilisation dans un code Python


import [Link] as GPIO # charge la bibliotheque
[Link]([Link]) # numérotation du connecteur Rasperry, ex 7 pour GPIO4
[Link]([Link]) # numérotation du circuit BCM2835, ex 4 pour GPIO4

[Link](11, [Link]) # place la broche (ou le GPIO) en sortie


[Link](7, [Link], initial=[Link]) # GPIO en sortie , initialisé à 1
[Link](17, [Link]) # place la broche (ou le GPIO) en entree
[Link](channel, [Link], pull_up_down=GPIO.PUD_UP) # active une resistance
[Link](channel, [Link], pull_up_down=GPIO.PUD_DOWN)

[Link](11, True) # met le GPIO à l’état 1 (True ou 1)


[Link](11, false) # met le GPIO à l’état 0 (False ou 0)
[Link](7) # retourne l’état du GPIO
# ex a= [Link](7) ou if ([Link](7)) :

[Link]() # replace tous les GPIO en entrées


GPIO.RPI_REVISION # version de la carte
[Link] # version de la bibliothèque

BTS systèmes numériques [Link] 2/4


RASPBERRY PI et PYTHON : GPIO

TESTS :
Placer une LED rouge en série avec une résistance de 150 ohms entre la broche 7 du connecteur (GPIO4) et le
0v et un bouton poussoir avec une résistance de pull-up (10K) sur la broche 11 (GPIO17)

Le programme suivant fait clignoter la LED avec une période de 1S.

import [Link] as GPIO


import time
[Link]([Link])
[Link](4, [Link])

while True:
print("Allume")
[Link](4,1) # Allume la LED
[Link](0.5)
print("Eteind")
[Link](4,0) # eteind la LED
[Link](0.5)

Pour tester un front montant sur un GPIO:


while [Link](channel) == [Link]:
[Link](0.01) # laisser 10mS au processeur pour faire autre chose

La function wait for edge fait la même chose mais sans [Link]
GPIO.wait_for_edge(channel, [Link]) # RISING, FALLING, BOTH

BTS systèmes numériques [Link] 3/4


RASPBERRY PI et PYTHON : GPIO

Détection d’évènements (Interruptions) :


Une interruption est un processus répondant à une sollicitation matériel asynchrone et déclenchant
l’exécution d’un sous-programme, ex :
L’appui sur un bouton
Le débordement d’un TIMER
L’arrivé d’un caractère dans une UART

Lorsque l’évènement est détecté par le matériel et suivant les niveaux de priorité accordés à l’évènement, le
programme en cours est interrompu et un sous-programme d’interruption est exécuté.
L’utilisation des interruptions évite la scrutation et donc libère du temps pour d’autres tâches. Un évènement
ne peut être manqué, l’évènement est mémorisé, si la tâche associée n’est pas prioritaire il peut être traité
plus tard.

Commandes python d’activation des interruptions sur GPIO :

GPIO.add_event_detect(channel, [Link]) # active detection


faire_un_truc()
if GPIO.event_detected(channel):
print('bouton appuye')

Annulation de la détection:
GPIO.remove_event_detect(channel)

Création d’une fonction qui sera appelée automatiquement lors de la détection de l’évenement.

def fonctionIT(channel):
print('le bouton a été enfoncé!')
print('sur le GPIO %s'%channel)

GPIO.add_event_detect(channel, [Link], callback=fonctionIT)

Pour éviter les rebonds:


La fonction add_event_detect recheche un front actif (FALLING ou RISING) et temporise (bouncetime) pour
attendre la fin des rebonds

GPIO.add_event_detect(channel, [Link], callback=fonctionIT, bouncetime=200


)

BTS systèmes numériques [Link] 4/4

Vous aimerez peut-être aussi