Au cours de cette séance, nous avons fait de la programmation sous Python avec un Raspberry PI.
L'objectif de cette séance était de voir les premiers mots clés de la syntaxe du langage. Nous
avons pris comme exemple, un programme qui permet de faire clignoter une LED et ensuite, nous avons
ajouté la possibilité d'interagir avec un bouton.
Le Raspberry PI possède un port appelé "GPIO", pour : Global Port Input Output, ce port est équipé de
broches qui permettent de brancher des actionneurs (LED) ou des capteurs (boutons). Ce port est numéroté
d'un point de vue physique et logique assez étrange : les numéros de ports ne sont pas dans l'ordre !
Il existe des librairies qui permettent de faciliter les accès et la programmation du port GPIO : gpiozero
.
Cette bibliothèque de fonctions possède (entre autres) les sous éléments LED
et Button
qui vous permettre de piloter respectivement une LED et de connaître l'état d'un bouton.
Le premier programme permet de faire clignoter une LED à une fréquence de 1 seconde, pendant 10 fois.
# Programme qui fait clignoter une LED branchée sur le GPIO 17
# à une fréquence de 1 seconde, pendant 10 fois.
# Importation de la librairie pour le port GPIO
import gpiozero
# Importation de la librairie pour la gestion du temps
import time
# Création d'un objet LED, branchée sur le GPIO 17
led = gpiozero.LED(17)
# Création d'un compteur, initialisé à 0
compteur = 0
# Tant que le compteur est inférieur à 10
while compteur < 10:
# On allume la LED
led.on()
# On attend 1 seconde
time.sleep(1)
# On éteint la LED
led.off()
# On attend 1 seconde
time.sleep(1)
# On incrémente le compteur de clignotement
compteur= compteur + 1
# Fin du programme, on affiche un message
print("Fin")
Le deuxième programme permet de démarrer le clignotement d'une LED à une fréquence de 1 seconde, pendant 10 fois, à partir du moment que le bouton est appuyé.
# Programme qui va faire clignoter une LED branchée sur le GPIO 17
# à une fréquence de 1 seconde, pendant 10 fois.
# Le clignotement commence uniquement quand le bouton branché sur le GPIO 21.
# Importation de la librairie pour le port GPIO
import gpiozero
# Importation de la librairie pour la gestion du temps
import time
# Création d'un objet LED, branchée sur le GPIO 17
led = gpiozero.LED(17)
# Création d'un objet bouton, branché sur le GPIO 21
button = gpiozero.Button(21)
# On attend que le bouton soit appuyé pour continuer
button.wait_for_press()
# Création d'un compteur, initialisé à 0
compteur = 0
# Tant que le compteur est inférieur à 10
while compteur < 10:
# On allume la LED
led.on()
# On attend 1 seconde
time.sleep(1)
# On éteint la LED
led.off()
# On attend 1 seconde
time.sleep(1)
# On incrémente le compteur de clignotement
compteur= compteur + 1
# Fin du programme, on affiche un message
print("Fin")
Le troisième programme permet d'allumer une LED lorsque le bouton est appuyé.
# Programme qui lit l'état du bouton connecté sur le GPIO 21.
# Si le bouton est appuyé, la LED branchée sur le GPIO 17 s'allume,
# sinon, la LED s'éteint.
# Importation de la librairie pour le port GPIO
import gpiozero
# Création d'un objet LED, branchée sur le GPIO 17
led = gpiozero.LED(17)
# Création d'un objet bouton, branché sur le GPIO 21
button = gpiozero.Button(21)
# Boucle infinie : la condition est toujours vraie
while True:
# Si le bouton est appuyé : l'état du bouton est donné par la propriété "is_pressed"
if button.is_pressed:
# On allume la LED
led.on()
else:
# On éteint la LED
led.off()