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)
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 |
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 )
Un peu de hacking
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é. |
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. |
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 de 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()
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.