Python et Raspberry PI - 03/06/2023

Informations :

  • Orateurs : 1
  • Nombre de participants : 5

Compte-rendu :

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 !

Port GPIO

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()
                    

Prochaines séances :

  • 10/06/2023 (10H00..12H00) : [Débutant] Un coffre-fort !.
  • 10/06/2023 (18H00..20H00) : [Open Hours] On discute, on explique, on répare !
  • 17/06/2023 (10H00..12H00) : [Débutant] Python et Raspberry PI ?
  • 17/06/2023 (18H00..20H00) : [Open Hours] On discute, on explique, on répare !