====== 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.]]