Présentation de Gpiozero

Gpiozero est une bibliothèque Python pour Raspberry Pi qui simplifie la programmation des périphériques GPIO en utilisant l'abstraction. Au lieu de penser en termes de canaux de broches, de tensions, de résistances de tirage et de fronts montants ou descendants, les utilisateurs pensent en termes de boutons pressés et relâchés, de capteurs détectant la lumière ou le mouvement, et de moteurs tournant dans un sens ou dans l'autre.

Fonctionnement de Gpiozero

Gpiozero utilise une API orientée périphériques, et différents modèles de programmation ont émergé. Il existe trois types de programmation : procédurale, basée sur les événements et déclarative. Par exemple, pour allumer une LED lorsqu'un bouton est pressé, on peut utiliser les trois approches suivantes :

while True:
       if button.is_pressed:
           led.on()
       else:
           led.off()

ou

button.when_pressed = led.on
button.when_released = led.off

ou

led.source = button

Manipulation des flux de valeurs

Gpiozero fournit des fonctions pour manipuler les flux de valeurs entre les périphériques. Par exemple, on peut utiliser la fonction negated pour inverser la logique d'un bouton, ou la fonction sin_values pour générer une onde sinusoïdale pour contrôler un servo.

Les périphériques peuvent avoir des plages de valeurs standard, comme des booléens pour les boutons et les LED, ou des valeurs numériques pour les moteurs et les capteurs. Les utilisateurs peuvent combiner ces flux de valeurs pour créer des comportements complexes.

Interface graphique de Gpiozero Flow

Gpiozero Flow est une interface graphique web qui permet aux utilisateurs de créer des circuits logiques en faisant glisser des périphériques sur un canevas et en les connectant. L'interface génère du code Python équivalent pour le projet. Les utilisateurs peuvent également sauvegarder et partager leurs projets.