PiBrella-Utiliser
La carte
La carte utilise un circuit UN2003A pour amplifier les sorties (voir la fiche technique, PDF, Texas Instrument).
Le UN2003A permet de brancher directement des relais, solénoïdes et petits moteurs puisqu'il est capable de conduire jusqu'à 500mA sur une broche.
Comme ce circuit dispose de diode de protection en roue libre, vous pouvez contrôler des éléments actifs comme des relais.
Soigner votre alimentation
Comme votre Pi, Pibrella et vos relais utilisent la même source d'alimentation, vous devez vous assurer que celle-ci soit assez puissante pour alimenter le tout (certains relais ou moteurs peuvent consommer pas mal de courant)
Sortie en 5V uniquement
Vous ne pouvez pas utiliser de moteur/relais/etc de plus de 5V avec votre PiBrella (vous ne pouvez pas utiliser de périphérique 12v et une masse commune, la raison est décrite sur cette page)
Équipement de la carte
Ce qu'il y a de bien avec le PiBrella, c'est que la carte est déjà pré-équipée avec:
- Un bouton
- Un buzzer
- 3 Leds (une rouge, une jaune, une verte)
Le bouton rouge
Le bouton rouge peut être testé à l'aide de
pibrella.button.is_pressed()
Cette fonction retourne True ou False en fonction de l'état du bouton.
Dans les premiers pas, un exemple montre comment utiliser le système événementiel avec ce bouton.
Pour obtenir de l'aide sur les fonctions du bouton, vous pouvez saisir les commandes suivantes:
import pibrella help( pibrella.input.bouton )
Ce bouton est branché sur la broche 11 du Raspberry-Pi.
Les Leds
Les LEDs peuvent être commandées en groupe mais le plus intéressant reste quand même de pouvoir les commander individuellement.
Il est également intéressant de connaître les traductions anglais-français suivantes:
- Green: Vert
- Yellow: Jaune
- Red: Rouge
Vous pouvez allumer les LED à l'aide des instructions suivantes:
import pibrella, time pibrella.LED.green.on() pibrella.LED.yellow.on() pibrella.LED.red.on() time.sleep(2) pibrella.light.off() # éteindre toutes les LEDs
Il est également possible de commander les LEDs avec un signal PWM ou de les faire pulser.
import pibrella, time pibrella.LED.pulse( 0.5 ) pibrella.LED.green.pwn( 1000, 2 ) time.sleep(1) pibrella.light.pulse(0.2) # faire pulser les 3 Leds de la carte
Pour votre information, voici le branchement des LEDs:
- La led rouge (red) est branchée sur la broche 27
- La led jaune (yellow) est branchée sur la broche 17
- La led verte (green) est branchée sur la broche 4
Le buzzer
Comme indiqué dans les premiers pas], le buzzer est accessible via pibrella.buzzer.
Pour obtenir de l'aide sur les fonctions du buzzer, vous pouvez utiliser la commande suivante:
import pibrella help( pibrella.buzzer )
Les méthodes intéressantes sont:
import pibrella, time pibrella.buzzer.fail() time.sleep( 1 ) pibrella.alarme() # fait retentir un signal d'alarme time.sleep( 5 ) pibrella.buzzer.stop() # Voyez aussi notre FAQ
Le buzzer dispose également d'autres fonctions permettant de jouer des mélodies, une note ou une tonalité.
Les entrées
Les entrées sont activées en pontant le connecteur face à la lettre de l'entrée. Vous pouvez donc utiliser tout type d'interrupteur/switch, bouton poussoir, contact magnétique.
Selon toute vraisemblance, les entrées disposent d'une résistance pull-down (qui ramène le potentiel à 0 Volts) et sont activées lorsque la tension est placée à (tension de 3.3v).
Exemple d'activation de entrée A par contact franc | Brancher un relay reed (magnétique switch) sur PiBrella |
Ce qu'il y a de bien avec ce modèle de bouton, c'est qu'il suffit de le brancher sur deux côtés opposés du bouton. |
Le Tilt ball, aussi appelé l'accéléromètre "du pauvre". Ces senseurs à inclinaison sont des contacts qui détectent des orientations ou des mouvements de base. Sur PiBrella il est aussi simple à brancher qu'un bouton. |
Il est préférable d'utiliser une résistance de 100 Ohms en série avec l'interrupteur pour éviter les contacts franc. Cela pourrait sauver votre Pi en cas d'erreur de manipulation.
Voici la correspondance entre Entrée et Broche (fort utilise si vous voulez exploiter le système événementiel de PiBrella)
Entrée | N° Broche | Test |
A | 9 | pibrella.input.a.is_high() |
B | 7 | pibrella.input.b.is_high() |
C | 8 | pibrella.input.c.is_high() |
D | 10 | pibrella.input.d.is_high() |
Bouton Rouge | 11 | pibrella.button.is_high() |
La lecture des entrées est également abordée dans les exemples premiers pas
Obtenir de l'aide
Utilisez la fonction help() de python pour obtenir de l'aide sur la manipulation d'une broche d'entrée.
Démarrez python en mode interactif
sudo python -i
Puis saisissez la commande suivante
import pibrella help( pibrella.input.a )
Brancher un Switch Magnétique
Un contact magnétique est constitué de deux parties.
- Un aimant
- Le contact magnétique (aussi appelé Reed switch).
Ces contacts,faciles à mettre en oeuvre, servent généralement à détecter l'ouverture d'une porte ou d'une fenêtre. Si vous disposez d'un système d'alarme à la maison vous avez probablement noté ces petits boitiers blancs à proximité des fenêtres.
Les contacts magnétiques sont généralement ouvert au repos (c'est a dire "non sollicité par un aimant").
Lorsque l'on place l'aimant à proximité, le contact se ferme. En étant attentif, il est parfois même possible d'entendre le contact se fermer.
Sur un Pibrella, le contact magnétique se branche comme n'importe quel bouton poussoir/switch/tilt ball.
Pour détecter l'ouverture du switch, vous pouvez:
Les sorties
Vous disposez de 4 sorties 5 volts sur votre Pibrella.
Ces sorties sont commandées par un circuit de puissance permettant de délivrer jusqu'à 500mA par broche. Comme le circuit intègre déja la diode de protection en roue libre, vous pouvez y brancher directement des éléments actif comme les relais et moteur sans risquer de détruire votre Pi.
Les sorties sont localisées à droite du bouton rouge et sont identifiées avec le libellé OUT (pour Output signifiant Sortie en anglais).
Comme vous pouvez le voir sur le circuit équivalent (simplifié à l’extrême), le circuit ULN2003 agit comme un interrupteur coupant le raccordement de la charge (votre moteur par exemple) à la masse.
Dans la réalisé, cette coupure (ou commutation) n'est pas réalisée par un interrupteur mais par un transistor. Cela implique aussi une petite chute de tension aux bornes du transistor (de l interrupteur). Cette chute de tension dépend du courant circulant dans la charge, plus le courant est élevé et plus la chute de tension est importante (la tension disponible pour la charge/le moteur est donc plus faible).
Les sorties:
- Fonctionne sous 5 Volts.
- peuvent être Activées/Désactivés (on / off)
- peuvent être commandée en PWM (signal en longueur d'impulsion, voyez cette page pour quelques explications)
permet de moduler la vitesse d'un moteur ou l'éclairage d'une LED. - Disposent d'une LED indiquant l'état de la sortie
Assurez vous d'avoir une source d'alimentation capable de supporter les besoins énergétiques de votre Pi + celui de votre montage. Si votre Pi plante ou fait un reset de façon imprévisible penchez vous d'abord sur votre source d'alimentation. |
Ne court-circuitez jamais une sortie. Cela pourrait endommager le PiBrella. |
Sortie | N° Broche | Changer l'état |
E | 22 | pibrella.output.e.on() |
F | 23 | pibrella.output.f.on() |
G | 24 | pibrella.output.g.on() |
H | 25 | pibrella.output.h.on() |
Obtenir de l'aide
Utilisez la fonction help() de python pour obtenir de l'aide sur la manipulation d'une broche d'entrée.
Démarrez python en mode interactif
sudo python -i
Puis saisissez la commande suivante
import pibrella help( pibrella.output.h )
Vous pouvez quitter python en tapant
quit()
Brancher un moteur
Vous pouvez brancher un moteur à condition de respecter les caractéristiques imposées par PiBrella.
Nous disposons justement d'un chouette moteur compatible avec ces caractéristiques.
- Température de fonctionnement: -10°C ~ +60°
- Tension de fonctionnement: 6.0VDC (de 4.5v à 9v)
- Charge de fonctionnement: 10 g*cm (Rated Load)
- Courant à vide: 70 mA max
- Vitesse à vide: 9100 ±1800 rpm
- Courant en charge: 250 mA max
- Vitesse en charge: 4500 ±1500 rpm
- Couple au démarrage: 20 g*cm
- Tension minimale: 2.0 Volts
- Courant de blocage: 500mA max
- Taille du corps: 27.5mm x 20mm x 15
- Axe: 8mm x 2mm diamètre
- Poids: 17.5 grammes
Le moteur se commande à l'aide des instructions suivantes:
import pibrella import time pibrella.output.h.on() time.sleep(2) pibrella.output.h.off()
Il est également possible de moduler la vitesse du moteur en utilisant un signal PWM.
Il faut indiquer:
- la fréquence du signal PWM (disons 20KHz, soit 20.000 Hertz) et
- le pourcentage du cycle utile (de 0 à 100%, 100% = marche continue, 50% = signal à 50% du cycle, 10% = signal à 10% du cycle).
import pibrella import time pibrella.output.h.pwm( 20000, 100 ) time.sleep( 2 ) pibrella.output.h.pwm( 20000, 50 ) time.sleep( 2 ) pibrella.output.h.pwm( 20000, 10 ) time.sleep( 2 ) pibrella.output.h.off()
Brancher un relais
Vous pouvez également brancher des relais sur votre PiBrella.
Un relais est un organe électrique permettant la commutation de liaisons électriques. Il est chargé de transmettre un ordre de la partie commande à la partie puissance d'un appareil électrique et permet, entre autres, un isolement galvanique entre les deux parties. Le relais est donc utile pour effectuer une commande de puissance de type tout ou rien.
Source [Wikipedia]
Source [Wikipedia]
Si les relais les plus répandus ne permettent pas de raccorder directement un chauffage électrique (trop puissant), ils acceptent néanmoins couramment une plus d'un ampère sous 230 Volts.
Cela offre déjà bien des possibilités :-)
Pour plus d'information sur les relais, voir l'article consacré aux relais électriques (sur Wikipédia).
Pour votre PiBrella, nous proposons l'usage de micro-relais. De faible encombrement, ils sont faciles à mettre en oeuvre et vous pourrez déjà réaliser de nombreux montages.
- Résistance de la bobine 120 Ohm
- Tension de fonctionnement 5V continu
- Courant maximum: 2A
- Tension maximale: 240V alternatif; 30V continu
- Pouvoir de coupure: 30 watt à 240 volts
Attention, ce relais est calibré pour une utilisation en base tension. N'essayez pas de réaliser un montage en haute tension (220VA) si vous ne disposez pas des compétences nécessaire, le risque d'électrocution et de morts est bien réel. |
Exemple de commande de relais
import pibrella import time for i in range(1, 10): pibrella.ouput.h.on() time.sleep( 0.5 ) pibrella.output.h.off() time.sleep( 0.5 )
Brancher une LED
Vous pouvez également brancher une LED 5mm, LED 10mm, des LEDs Infrarouge (pour la Caméra PiNoIR) ou autre LED sur une sortie.
Attention, lorsque vous utilisez une LED, il faut absolument utiliser une résistance pour limiter le courant! Vous pouvez utiliser une résistance de 330 Ohms pour une LED standard sous 5 volts.
Commander la LED est également très simple.
import pibrella import time pibrella.output.e.on() time.sleep(1) pibrella.output.e.off() time.sleep(1)
Pibrella dispose également d'une fonction permettant de faire pulser la LED. L'exemple suivant fait pulser la LED puis attend 10 secondes (10 secondes pendant lesquelles la LED pulse toute seule), puis éteint la LED.
import pibrella import time pibrella.output.e.pulse(0.5) time.sleep(10) pibrella.output.e.off()
Comme pour les moteurs, vous pouvez également contrôler la sortie en PWM pour contrôler plus finement la luminosité de la LED.
Pour utiliser la fonction pwm(), il faut indiquer:
- la fréquence du signal PWM (disons 1 KHz, soit 1000 Hertz - plus efficace pour les LED) et
- le pourcentage du cycle utile (de 0 à 100%, 100% = marche continue, 50% = signal à 50% du cycle, 10% = signal à 10% du cycle).
import pibrella import time pibrella.output.e.pwm( 1000, 100 ) time.sleep( 2 ) pibrella.output.e.pwm( 1000, 30 ) time.sleep( 2 ) pibrella.output.e.pwm( 1000, 0.5 ) time.sleep( 2 ) pibrella.output.e.off()
Les entrées - Utilisation avancée
Les entrées du PiBrella peuvent aussi être utilisé pour être utilisé avec des éléments actifs comme un senseur à effet Hall ou un Senseur PIR compatible Raspberry-Pi.
Mais pour pouvoir utiliser d'autres senseurs, il faut souvent pouvoir disposer d'une source d'alimentation 5V. Chose non prévue par PiBrella... mais rien n'arrête hacker!
Récupérer +5V sur PiBrella
A l'aide d'un fer à souder et d'une section de pinHeader nous allons récupérer la masse et +5 volts directement sur le GPIO du PiBrella. Voici comment faire.
1) Commencer par mettre votre Raspberry-Pi hors tension.
2) Coupez une section de 6 ou 7 broches (seules les 3 premières broches seront utilisés).
3) Etamer les 3 premières broches.
4) Placer ensuite le pinHeader comme indiqué sur le PiBrella comme indiqué
- Maintenez votre section de pinHeader en place en la tenant par la partie inutile (histoire de ne pas se bruler les doigts).
- Chauffer l'une des broches pour qu'elle tienne en place (même temporairement, c'est pour cela qu'il est important d'étamer).
- Passez aux autres broches...
- Faite chauffer 3 ou 4 secondes
- Ajouter juste une pointe de soudure... ca y est c'est soudé :-)
- Terminez l'opération de soudure par la broche de fixation.
5) Coupez ensuite la partie inutile de la section de pinHeader
6) Pour finir, utilisez de simple connecteur (issu de cet assortiment) pour récupérer facilement la masse et le +5 Volts.
Senseur PIR
Avec un senseur PIR, vous pourrez utiliser un votre PiBrella pour détecter un mouvement ou le passage d'une personne.
Le senseur PIR s'active pendant 6 secondes (environ) lorsqu'il détecte un mouvement. Même s'il est alimenté en 5 volts, ce senseur PIR est compatible avec Raspberry-Pi car le signal ne dépasse pas la tension critique du GPIO du Raspberry-Pi.
La lecture de l'état est aussi simple que
pirActif = pibrella.input.d.is_high()
La preuve par l'exemple
Senseur à Effet Hall
Les senseurs à Effet Hall permettent de détecter si un aimant est a proximité. Ils sont très utiles pour constituer un senseur SANS contact et résistant à l'eau. Ils peuvent aussi servir comme senseur de position, encodeur, détection de rotation.
Détecter la présence d'un aimant est une opération qui présente un avantage majeure en prototypage électronique.
Un senseur US5881LUA et un aimant permet de mettre en oeuvre de détecteur de type "switch" là ou il serait impossible de placer un vrai switch
Par exemple, vous pouvez détecter la rotation d'un élément rotatif. C'est grâce à ce senseur que je peux détecter l'ouverture de ma poubelle.
Parmi les nombreux senseurs à effet Hall disponibles sur le marché, l'un des meilleurs est certainement le US5881LUA. de Melexis
Nous avons déjà écrit un article très détaillé expliquant le fonctionnement et contenant de nombreux exemples/cas d'utilisation de ce senseur. Vous pouvez consulter cet article ici |
La lecture se fait à l'aide de
pibrella.input.d.is_high()
Vous obtiendrez:
- True lorsque le senseur n'est pas activé par un aimant
- False lorsque le senseur est activé par le pole sud d'un aimant.
En respectant le montage, l'entrée est correctement activée même si la LED elle ne s'allume pas (à cause de la résistance pull-up de 10 K sur le senseur Hall). Montage testé et approuvé. |
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.