Outils pour utilisateurs

Outils du site


Panneau latéral

ACCUEIL

Support de cours

SNT

Semestre 1

Semestre 2


Semestre 3 et 4

Les livres du BTS SIO

Archives

Semestre 1

Semestre 2

ICN

isn:raspberry_motorshieldfleche

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

isn/raspberry_motorshieldfleche.txt · Dernière modification: 2018/05/03 12:45 (modification externe)