====== Raspberry : gestion synchrone des flèches de la carte Motor Shield ======
Voici un **programme synchone** pour permettre de gérer les flèches avec le clavier :
* les touches **a et e** pour les flèches **gauche et droite**,
* les touches **p et l** pour gérer les flèches **avancer et reculer**,
* la touche **q** pour quitter le programme
Page de Wikipedia sur le sheban : https://fr.wikipedia.org/wiki/Shebang
#!/usr/bin/python3
import RPi.GPIO as GPIO
import time
#bibliothèque de gestion des touches en ligne de commandes
import click
GPIO.setwarnings(False)
def flecheAvancer():
print("a")
GPIO.output(fleche["avancer"],GPIO.HIGH)
time.sleep(temporisation)
GPIO.output(fleche["avancer"],GPIO.LOW)
def flecheReculer():
print("r")
GPIO.output(fleche["reculer"],GPIO.HIGH)
time.sleep(temporisation)
GPIO.output(fleche["reculer"],GPIO.LOW)
def flecheDroite():
print("d")
GPIO.output(fleche["droite"],GPIO.HIGH)
time.sleep(temporisation)
GPIO.output(fleche["droite"],GPIO.LOW)
def flecheGauche():
print("g")
GPIO.output(fleche["gauche"],GPIO.HIGH)
time.sleep(temporisation)
GPIO.output(fleche["gauche"],GPIO.LOW)
# Utiliser la numerotation electronique du GPIO
GPIO.setmode(GPIO.BCM)
# définir les broches du GPIO a utiliser en sortie dans un tableau associatif
fleche={"avancer":16, "reculer":19, "droite":13, "gauche":26}
# Configurer les broches en sortie
GPIO.setup(fleche["avancer"],GPIO.OUT)
GPIO.setup(fleche["reculer"],GPIO.OUT)
GPIO.setup(fleche["droite"],GPIO.OUT)
GPIO.setup(fleche["gauche"],GPIO.OUT)
temporisation = 3
# variable utilisee pour terminer la boucle While
continuer=1
while continuer :
key = click.getchar()
if key=='p' :
flecheAvancer()
if key=='l' :
flecheReculer()
if key=='a' :
flecheGauche()
if key=='e' :
flecheDroite()
if key=='q':
#permettre de quitter la boucle while
continuer=0
GPIO.cleanup()
En exécutant ce **programme synchrone**, l'appui sur une touche lance l'éclairage de la flèche correspondante pendant 3 secondes. Pendant ce laps de temps, il **n'est pas possible** de lancer l'éclairage d'un autre flèche car le programme **attend** la fin de la temporisation.
==== Les activités ... ====
[[.:accueil|Je reviens à la liste des activités.]]