PiBrella-Débuter
Débuter avec le PiBrella
Pour faire nos première découvertes PiBrella, nous allons utiliser l'interpréteur Python en mode interactif pour faire nos premiers essais.
Pour démarrer Python en mode interactif, nous allons utiliser la ligne de commande sudo python -i depuis une ligne de commande
sudo python -i
Le sudo est utilisé pour permettre Python de manipuler librement le GPIO du Raspberry-Pi, le -i démarre le mode interactif.
En mode interactif, l'interpréteur exécute les commandes immédiatement après la saisie d'un retour clavier (passage à la ligne). C'est bien pratique pour tester rapidement des rapidement fonctionnalités.
Lorsque vous voulez quittez le mode interactif, vous appelez la fonction quit() en tapant la ligne suivante:
quit()
Un tout premier bout de code
Nous allons démarrer Python en mode interactif en tapant la commande suivante dans LXTerminal (ou ligne de commande)
sudo python -i
Tapez ensuite le code suivant:
import pibrella pibrella.buzzer.fail() pibrella.light.pulse(0.2)
Après vos tests, tapez la commande quit() pour quitter le mode interactif
quit()
Ecrire un code plus évolué
Démarrez Python en session interactive à l'aide de la commande suivante sur LXTerminal ou une ligne de commande:
sudo python -i
Typez le code suivant (ou copiez/collez le directement depuis le site de pibrella.com).
# Alarme Cambriolage! (attrapé les curieux et les fuineurs) import pibrella, signal def alarm(pin): pibrella.buzzer.fail() # Faire de bruit pibrella.light.pulse() # Faire clignoter la LED def reset(pin): pibrella.light.stop() # Re-initialiser l'alarme (la désactiver) pibrella.input.a.changed(alarm) # Surveiller l'entrée et détecter l'intrus pibrella.button.pressed(reset) # désactiver l'alarme en pressant le bouton... au cas ou ce serait un stupide chat! signal.pause() # Attendre l'intrus!
Pressez enter pour terminer la ligne...
Pour tester
Connectez la broche 2 de l'entrée A avec un fil où une résistance (Pressez le gros bouton rouge pour réinitialiser)
En cours de traduction/élaboration. |
Quelques explications
Déclenchement de l'alarme
La ligne
pibrella.input.a.changed(...)
Cette ligne surveille le changement d'état de l'entrée A. Et lorsque l'entrée A change d'état...
pibrella.input.a.changed(alarm)
... il faut appeler la fonction alarm.
Le paramètre de changed() est la fonction à appeler, soit alarm.
Réinitialisation/désactivation de l'alarme
De même, la ligne
pibrella.button.pressed(...)
surveille le bouton de la carte et attend qu'il soit pressé.
Lorsque le bouton est préssé, la ligne de code...
pibrella.button.pressed(reset)
... indique qu'il faut appeler la fonction reset lorsque le bouton est pressé.
Utiliser le système d'évènement
Le programme se termine avec la ligne
signal.pause()
Cette ligne met le programme en pause en attendant l'arrivée d'un signal, signal qui sera traité par la bibliothèque PiBrella.
Bien que cela soit totalement invisible, la bibliothèque Pibrella utilise des signaux. Ces signaux permettent de mettre en oeuvre des systèmes à base d'événement (comme la pression d'un bouton ou le clique d'une souris). Vous pouvez très bien concevoir par vous même le fonctionnement d'un signal dans la vie réelle en imaginant le cas suivant:
En cours de traduction/élaboration. |
Source: PiBrella.com, PiBrella est un produit de Cyntech Component Ltd.
Traduit avec autorisation de Cyntech. Traduction significativement augmenté par Meurisse D. pour MCHobby.be
Contient des informations relatives à ScratchCPIO en provenance de Cymplecy. Traduit par Meurisse D. avec l'autorisation de Cymplecy
Toute référence, mention ou extrait de cette traduction doit être explicitement accompagné du texte suivant : « Traduction par MCHobby (www.MCHobby.be) - Vente de kit et composants » avec un lien vers la source (donc cette page) et ce quelque soit le média utilisé.
L'utilisation commercial de la traduction (texte) et/ou réalisation, même partielle, pourrait être soumis à redevance. Dans tous les cas de figures, vous devez également obtenir l'accord du(des) détenteur initial des droits. Celui de MC Hobby s'arrêtant au travail de traduction proprement dit.