Utilisation de GPIO Zero avec le PumpkinPi

C’est cette période de l’année … les fantômes et les goules sont en force, les citrouilles sont sculptées et les sorcières préparent leurs balais, c’est Halloween! Et pour célébrer, nous avons ce tutoriel sur la façon de commencer à utiliser GPIO Zero et notre nouvelle carte programmable PumpkinPi. Laisse tomber et effrayant avec notre Raspberry Pi …

Une fois que votre carte est construite et connectée au Raspberry Pi, ouvrez un terminal et tapez:

git clone https://github.com/modmypi/Programmable-Pumpkin

Cela téléchargera la bibliothèque Pumpkin Pi. À l’intérieur de pumpkinpi.py, il y a une extension de la bibliothèque GPIO Zero qui vous permet d’utiliser les commandes GPIO Zero avec PumpkinPi.

À l’aide du Gestionnaire de fichiers, accédez au dossier Programmable-Pumpkin et démarrez une session IDLE.

Tout d’abord, nous devons importer la classe PumpkinPi dans le shell IDLE:

from pumpkinpi import PumpkinPi

Et créez un objet PumpkinPi à utiliser en Python:

pumpkin = PumpkinPi()

Maintenant, nous pouvons allumer toutes les lumières du PumpkinPi en utilisant:

pumpkin.on()

Utilisation de GPIO Zero avec le PumpkinPi

Et nous pouvons désactiver la citrouille en utilisant

pumpkin.off()

Chacune des LED du PumpkinPi a un nom et peut être allumée individuellement par exemple, si nous voulons allumer l’œil gauche:

pumpkin.eyes.left.on ()

1591857504 368 Utilisation de GPIO Zero avec le PumpkinPi

Les LED sont étiquetées de la manière suivante:

Utilisation de GPIO Zero avec le PumpkinPi

Vous pouvez donc allumer les yeux, chaque côté et chaque LED en utilisant son nom.

Si vous vouliez tourner sur les côtés de la citrouille, nous pouvons utiliser:

pumpkin.sides.on()

1591857506 390 Utilisation de GPIO Zero avec le PumpkinPi

Ou plus précisément les LED centrales:

pumpkin.off() # To clear the lights so we can see what we're doing.
pumpkin.sides.left.middle.on()
pumpkin.sides.right.middle.on()

1591857507 625 Utilisation de GPIO Zero avec le PumpkinPi

Une fois que nous avons allumé certaines LED, nous pouvons maintenant mettre certains motifs en boucle pour toujours jouer.

while True:
pumpkin.sides.left.on()
pumpkin.eyes.right.on()
sleep(.5)
pumpkin.off()
pumpkin.sides.right.on()
pumpkin.eyes.left.on()
sleep(.5)
pumpkin.off()

Cela fera s’allumer le côté gauche et l’œil droit, puis il basculera de l’autre côté et de l’autre œil jusqu’à ce que vous appuyiez sur CTRL C pour terminer.

Au lieu de cette longue boucle de commandes on off, nous pouvons utiliser la commande bascule

pumpkin.off() # Just to make sure our pumpkin starts off.
pumpkin.sides.left.on()
pumpkin.eyes.right.on()
while True:
pumpkin.toggle()
sleep(.5)

Cela fera la même chose que la première boucle longue que nous avons utilisée, sauf que nous n’avons pas besoin des instructions off ou des instructions on supplémentaires.

YouTube video

En plus de basculer, il y a un clignotement, essayez de taper:

pumpkin.blink()

Et votre citrouille vous clignera des yeux.

YouTube video

On peut changer la vitesse du clignotement en ajoutant quelques paramètres:

pumpkin.blink(2,.5)

Cela fera clignoter votre citrouille pendant 2 secondes et s’éteindra pendant une demi-seconde.

Lorsque vous avez terminé de faire cligner les yeux, n’oubliez pas d’utiliser une commande close | pour fermer les broches GPIO.

pumpkin.close()

En plus d’activer, désactiver, clignoter et basculer, nous pouvons faire briller notre citrouille avec une configuration PWM (modulation de largeur d’impulsion) effrayante.

Maintenant que nous avons fermé notre citrouille, nous en avons besoin d’une nouvelle, alors faisons-en une en utilisant la commande suivante:

pumpkin = PumpkinPi(pwm=True)

Toutes les commandes d’activation, de désactivation, de basculement et de clignotement fonctionneront toujours, mais nous obtenons maintenant la commande d’impulsion supplémentaire.

pumpkin.pulse()

Ce qui fait que notre citrouille s’estompe et disparaît à un rythme donné.

YouTube video

Permet de tout rassembler et de créer un script qui peut être exécuté tout le temps en utilisant certaines des fonctions PWM, en référençant les LED et certaines des fonctions normales marche / arrêt

Ouvrez un nouveau fichier appelé spooky_display.py et ajoutez le code suivant:

from pumpkinpi import PumpkinPi
from time import sleep

# Define a function to control our Pumpkin which takes a PumpkinPi as an argument.
# This script contains flashing LEDs, please take care if you are sensitive to flashing lights.
def pump_pulse(pumpkin):
pumpkin.sides.left.bottom.pulse(5, 0.5, 1) # Fade in for 5 seconds, fade out for .5 seconds and do this once.
pumpkin.sides.right.bottom.pulse(5, 0.5, 1)
sleep(.5)
pumpkin.sides.left.midbottom.pulse(4.5, 0.5, 1)
pumpkin.sides.right.midbottom.pulse(4.5, 0.5, 1)
sleep(.5)
pumpkin.sides.left.middle.pulse(4, 0.5, 1)
pumpkin.sides.right.middle.pulse(4, 0.5, 1)
sleep(.5)
pumpkin.sides.left.midtop.pulse(3.5, 0.5, 1)
pumpkin.sides.right.midtop.pulse(3.5, 0.5, 1)
sleep(.5)
pumpkin.sides.left.top.pulse(3, 0.5, 1)
pumpkin.sides.right.top.pulse(3, 0.5, 1)
sleep(.5)
pumpkin.eyes.blink(.1, .1, 0, 0, 12) # Blink on for .1 seconds, off for .1 seconds, do not fade and do this 12
sleep(3)
pumpkin.off()

pumpkin = PumpkinPi(pwm=True)

while True:
pump_pulse(pumpkin)
else:
pumpkin.close()

Maintenant, appuyez sur F5 dans IDLE pour démarrer le script et regardez votre citrouille effrayer vos amis et votre famille …

YouTube video

Pour d’autres projets utilisant GPIO Zero, jetez un œil au site gratuit de la Fondation Raspberry Pi Électronique simple avec GPIO Zero livre qui peut être téléchargé à partir de leur site Web.

Si vous avez des scripts effrayants à partager à l’aide de PumpkinPi, assurez-vous de les partager dans les commentaires ci-dessous.