Différences entre versions de « PiBrella-Utiliser »

De MCHobby - Wiki
Sauter à la navigation Sauter à la recherche
 
(49 versions intermédiaires par le même utilisateur non affichées)
Ligne 15 : Ligne 15 :
 
=== Sortie en 5V uniquement ===
 
=== 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, [[ULN2803-Sch%C3%A9ma|la raison est décrite sur cette page]])
 
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, [[ULN2803-Sch%C3%A9ma|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 [[PiBrella-D%C3%A9buter|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:
 +
<nowiki>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</nowiki>
 +
 +
Il est également possible de commander les LEDs avec un signal PWM ou de les faire pulser.
 +
 +
<nowiki>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</nowiki>
 +
 +
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 [[PiBrella-Débuter|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:
 +
 +
<nowiki>import pibrella
 +
help( pibrella.buzzer )</nowiki>
 +
 +
Les méthodes intéressantes sont:
 +
<nowiki>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 </nowiki>
 +
 +
Le buzzer dispose également d'autres fonctions permettant de jouer des mélodies, une note ou une tonalité.
  
 
== Les entrées ==
 
== Les entrées ==
Les entrées sont activées en pontant le connecteur face à la lettre de l'entrée. Vous pouvez donc utiliser {{sl|switch|tout type d'interrupteur/switch}}, {{sl|bouton%20tactile|bouton poussoir}}, {{pl|60|contact magnétique}}.
+
Les entrées sont activées en pontant le connecteur face à la lettre de l'entrée. Vous pouvez donc utiliser {{sl|switch|tout type d'interrupteur/switch}}, {{sl|bouton%20tactile|bouton poussoir}}, {{pl|60|contact magnétique}} ou encore un {{pl|761|contact reed (cfr flotteur)}}.
 
   
 
   
 
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).
 
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).
Ligne 28 : Ligne 97 :
 
| <small>Exemple d'activation de entrée A par contact franc</small>  
 
| <small>Exemple d'activation de entrée A par contact franc</small>  
 
| <small>Brancher un {{pl|60|relay reed (magnétique switch)}} sur PiBrella</small>
 
| <small>Brancher un {{pl|60|relay reed (magnétique switch)}} sur PiBrella</small>
 +
|-
 +
| [[Fichier:RASP-PIBRELLA-Bouton.jpg]]
 +
| [[Fichier:RASP-PIBRELLA-Tilt.jpg]]
 +
|- align="center"
 +
| <small>Ce qu'il y a de bien avec ce {{pl|187|modèle de bouton}}, c'est<br />qu'il suffit de le brancher sur deux côtés opposés du bouton.</small>
 +
| <small>Le {{pl|32|Tilt ball}}, aussi appelé l'accéléromètre "du pauvre".<br />Ces senseurs à inclinaison sont des contacts qui détectent des<br />orientations ou des mouvements de base.<br />Sur PiBrella il est aussi simple à brancher qu'un bouton.</small>
 
|}
 
|}
 +
  
 
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.   
 
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.   
Ligne 65 : Ligne 141 :
 
La lecture des entrées est également abordée dans les exemples [[PiBrella-D%C3%A9buter|premiers pas]]
 
La lecture des entrées est également abordée dans les exemples [[PiBrella-D%C3%A9buter|premiers pas]]
  
=== Un peu de hacking ===
+
=== 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 )
 +
 
 +
=== Tester les entrées ===
 +
Voici un petit bout de code Python qui vous permettra de tester facilement toutes les entrées sur un PiBrella.
 +
 
 +
<syntaxhighlight lang="python">
 +
inputs = { pibrella.input.a : 'a', pibrella.input.b : 'b', pibrella.input.c : 'c', pibrella.input.d : 'd', pibrella.button : 'BUTTON' }
 +
 
 +
def testinputs():
 +
  # Vérifie chacune des entrées (celles enregsitrées dans le dictionnaire inputs)
 +
  # k sera l'objet pibrella.input.xxx et v le nom de l'entree correspondante
 +
  for k, v in inputs.items():
 +
      # SI l'entree est activee ALORS afficher son nom
 +
      if k.is_high():
 +
          print( v )
 +
 
 +
# boucle infinie de test (presser ctrl+c pour arrêter)
 +
while True:
 +
  testinputs()
 +
</syntaxhighlight>
 +
 
 +
=== Brancher un Switch Magnétique ===
 +
Un contact magnétique est constitué de deux parties.
 +
# Un aimant
 +
# Le contact magnétique (aussi appelé Reed switch).
 +
 
 +
[[Fichier:ReedSwitch.jpg]]
 +
 
 +
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").<br />
 +
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.
 +
 +
[[Fichier:RASP-PIBRELLA-Magnetic-Switch.jpg]]
 +
 
 +
Pour détecter l'ouverture du switch, vous pouvez:
 +
* [[PiBrella-Débuter#Tester_directement_une_entr.C3.A9e|Tester directement l'état de l'entrée]]
 +
* [[PiBrella-Débuter#Ecrire_un_code_plus_.C3.A9volu.C3.A9|exploiter le système événementiel de PiBrella décrit ici]]
 +
 
 +
== 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).
 +
 
 +
[[Fichier:PiBrella-Sortie-00.jpg]]
 +
 
 +
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 [[Rasp-Hack-L293-PWM|cette page pour quelques explications]])<br />permet de moduler la vitesse d'un moteur ou l'éclairage d'une LED.
 +
* Disposent d'une LED indiquant l'état de la sortie
 +
 
 +
{{ambox|text=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.}}
 +
 
 +
 
 +
{{ambox-stop|text=Ne court-circuitez jamais une sortie. Cela pourrait endommager le PiBrella.}}
 +
 
 +
{| class="wikitable" border="1"
 +
|-
 +
| align="center" | Sortie
 +
| align="center" | N° Broche
 +
| align="center" | Changer l'état
 +
|- style="font-size: 90%"
 +
| align="left" | E
 +
| align="left" | 22
 +
| align="left" | pibrella.output.e.on()
 +
|- style="font-size: 90%"
 +
| align="left" | F
 +
| align="left" | 23
 +
| align="left" | pibrella.output.f.on()
 +
|- style="font-size: 90%"
 +
| align="left" | G
 +
| align="left" | 24
 +
| align="left" | pibrella.output.g.on()
 +
|- style="font-size: 90%"
 +
| align="left" | H
 +
| align="left" | 25
 +
| align="left" | 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 {{pl|115|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
 +
 
 +
[[Fichier:PiBrella-Output-00.jpg]]
 +
 +
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 [[Rasp-Hack-L293-PWM|cycle utile]] (de 0 à 100%, 100% = marche continue, 50% = signal à 50% du cycle, 10% = signal à 10% du cycle).<br />[[fichier:Rasp-Hack-L293-PWM-01.jpg|360px]]
 +
 
 +
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.
 +
 
 +
[[Fichier:relais.png]]<br /><small>Source [[http://fr.wikipedia.org/wiki/Relais_%C3%A9lectrom%C3%A9canique Wikipedia]]</small>
 +
 
 +
[[Fichier:relais2.jpg]]<br /><small>Source [[http://fr.wikipedia.org/wiki/Relais_%C3%A9lectrom%C3%A9canique Wikipedia]]</small>
 +
 
 +
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 [http://fr.wikipedia.org/wiki/Relais_%C3%A9lectrom%C3%A9canique 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.
 +
 +
[[Fichier:PiBrella-Relais.jpg]]
 +
 
 +
* 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
 +
 
 +
{{ambox-stop|text=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.}}
 +
 
 +
[[Fichier:PiBrella-Relais-Montage.jpg]]
 +
 
 +
Exemple de commande de relais
 +
 
 +
<nowiki>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 )</nowiki>
 +
 
 +
=== Brancher une LED ===
 +
 
 +
Vous pouvez également brancher {{pl|66|une LED 5mm}}, {{pl|67|LED 10mm}}, des {{pl|417|LEDs Infrarouge}} (pour la {{pl|416|Caméra PiNoIR}}) ou {{cl|18|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.
 +
 
 +
[[Fichier:PiBrella-Led-Montage.jpg]]
 +
 
 +
Commander la LED est également très simple.
 +
 
 +
<nowiki>import pibrella
 +
import time
 +
pibrella.output.e.on()
 +
time.sleep(1)
 +
pibrella.output.e.off()
 +
time.sleep(1)</nowiki>
 +
 
 +
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.
 +
 
 +
<nowiki>import pibrella
 +
import time
 +
pibrella.output.e.pulse(0.5)
 +
time.sleep(10)
 +
pibrella.output.e.off()</nowiki>
 +
 
 +
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 [[Rasp-Hack-L293-PWM|cycle utile]] (de 0 à 100%, 100% = marche continue, 50% = signal à 50% du cycle, 10% = signal à 10% du cycle).<br />[[fichier:Rasp-Hack-L293-PWM-01.jpg|360px]]
 +
 
 +
<nowiki>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()</nowiki>
 +
 
 +
== Brancher un Moteurs pas-à-pas ==
 +
Comme l'indique Cymplecy, il est possible de connecter un petit moteur pas-à-pas 5 broches (5 volts) que vous connectez sur les sorties.
 +
 
 +
Avec le texte '''OUT''' des sortie face à vous:
 +
* Le Rouge sur n'importe quel connecteur à gauche (''Red to any left hand one'')
 +
* Les 4 autres fils sur la partie droite du connecteur.
 +
 
 +
[[Fichier:Pibrella-Scratch-Stepper.jpg|640px]]<small><br />Source: [https://projects.drogon.net/pibrella-from-pimoroni/ drogon.net], Rework: MCHobby</small>
 +
 
 +
Ce petit moteur à besoin de 768 impulsions (pas) pour faire un tour complet.
 +
 
 +
== 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 à {{pl|86|effet Hall}} ou un {{pl|61|Senseur PIR}} compatible Raspberry-Pi.
 
Les entrées du PiBrella peuvent aussi être utilisé pour être utilisé avec des éléments actifs comme un senseur à {{pl|86|effet Hall}} ou un {{pl|61|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!
 
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 ====
+
=== Récupérer +5V sur PiBrella ===
 
A l'aide d'un fer à souder et d'une {{pl|76|section de pinHeader}} nous allons récupérer la masse et +5 volts directement sur le GPIO du PiBrella. Voici comment faire.
 
A l'aide d'un fer à souder et d'une {{pl|76|section de pinHeader}} nous allons récupérer la masse et +5 volts directement sur le GPIO du PiBrella. Voici comment faire.
  
Ligne 81 : Ligne 412 :
 
4) Placer ensuite le pinHeader comme indiqué sur le PiBrella comme indiqué
 
4) Placer ensuite le pinHeader comme indiqué sur le PiBrella comme indiqué
  
[[Fichier:PiBrella-5V-01.jpg|640px]]  
+
[[Fichier:PiBrella-5V-01.jpg|480px]]  
  
 
* Maintenez votre section de pinHeader en place en la tenant par ''la partie inutile'' (histoire de ne pas se bruler les doigts).
 
* Maintenez votre section de pinHeader en place en la tenant par ''la partie inutile'' (histoire de ne pas se bruler les doigts).
Ligne 92 : Ligne 423 :
 
5) Coupez ensuite la partie inutile de la section de pinHeader
 
5) Coupez ensuite la partie inutile de la section de pinHeader
  
[[Fichier:PiBrella-5V-02.jpg|640px]]  
+
[[Fichier:PiBrella-5V-02.jpg|480px]]  
  
 
6) Pour finir, utilisez de simple connecteur ({{pl|82|issu de cet assortiment}}) pour récupérer facilement la masse et le +5 Volts.
 
6) Pour finir, utilisez de simple connecteur ({{pl|82|issu de cet assortiment}}) pour récupérer facilement la masse et le +5 Volts.
  
[[Fichier:PiBrella-5V-03.jpg|640px]]  
+
[[Fichier:PiBrella-5V-03.jpg|480px]]
 
+
 
==== Senseur PIR ====
+
=== Senseur PIR ===
 
Avec un {{pl|61|senseur PIR}}, vous pourrez utiliser un votre PiBrella pour détecter un mouvement ou le passage d'une personne.
 
Avec un {{pl|61|senseur PIR}}, vous pourrez utiliser un votre PiBrella pour détecter un mouvement ou le passage d'une personne.
  
Ligne 107 : Ligne 438 :
 
[[Fichier:PiBrella-PIR-Senseur.jpg|480px]]
 
[[Fichier:PiBrella-PIR-Senseur.jpg|480px]]
  
 +
La lecture de l'état est aussi simple que
 +
 +
pirActif = pibrella.input.d.is_high()
 +
 +
La preuve par l'exemple
 +
 +
[[Fichier:PiBrella-PIR-Senseur 02.jpg|800px]]
 +
 +
=== 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.<br />
 +
Un {{pl|86|senseur US5881LUA}} et {{pl|87|un aimant}} permet de mettre en oeuvre de détecteur de type "switch" là ou il serait impossible de placer un vrai switch<br />
 +
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.<br />
 +
 +
''Parmi les nombreux senseurs à effet Hall disponibles sur le marché, l'un des meilleurs est certainement le US5881LUA.'' de '''Melexis'''
  
 +
[[Fichier:HallEffect.jpg|150px]]
  
 +
[[Fichier:Aimant-Rare-Earth.jpg|150px]]
 +
 +
{{ambox | text = 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 [[Senseur à Effet Hall|consulter cet article ici]] }}
 +
 +
[[Fichier:RASP-PIBRELLA-SENSEUR-HALL 00.jpg]]
 +
 +
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.
 +
 +
{{ambox|text=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).<br /><br />Montage testé et approuvé.}}
 +
 +
 
{{PiBrella-TRAILER}}
 
{{PiBrella-TRAILER}}

Version actuelle datée du 21 juillet 2016 à 09:39


MCHobby investit du temps et de l'argent dans la réalisation de traduction et/ou documentation. C'est un travail long et fastidieux réalisé dans l'esprit Open-Source... donc gratuit et librement accessible.
SI vous aimez nos traductions et documentations ALORS aidez nous à en produire plus en achetant vos produits chez MCHobby.

La carte

PiBrella-Carte.jpg

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 ou encore un contact reed (cfr flotteur).

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).

RASP-PIBRELLA-CARTE-ponter.jpg RASP-PIBRELLA-Magnetic-Switch.jpg
Exemple d'activation de entrée A par contact franc Brancher un relay reed (magnétique switch) sur PiBrella
RASP-PIBRELLA-Bouton.jpg RASP-PIBRELLA-Tilt.jpg
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.

RASP-PIBRELLA-LES ENTREE.JPG

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 )

Tester les entrées

Voici un petit bout de code Python qui vous permettra de tester facilement toutes les entrées sur un PiBrella.

inputs = { pibrella.input.a : 'a', pibrella.input.b : 'b', pibrella.input.c : 'c', pibrella.input.d : 'd', pibrella.button : 'BUTTON' }

def testinputs():
   # Vérifie chacune des entrées (celles enregsitrées dans le dictionnaire inputs)
   # k sera l'objet pibrella.input.xxx et v le nom de l'entree correspondante
   for k, v in inputs.items():
       # SI l'entree est activee ALORS afficher son nom
       if k.is_high():
           print( v )

# boucle infinie de test (presser ctrl+c pour arrêter)
while True:
   testinputs()

Brancher un Switch Magnétique

Un contact magnétique est constitué de deux parties.

  1. Un aimant
  2. Le contact magnétique (aussi appelé Reed switch).

ReedSwitch.jpg

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.

RASP-PIBRELLA-Magnetic-Switch.jpg

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).

PiBrella-Sortie-00.jpg

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


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

PiBrella-Output-00.jpg

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).
    Rasp-Hack-L293-PWM-01.jpg
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.

Relais.png
Source [Wikipedia]

Relais2.jpg
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.

PiBrella-Relais.jpg

  • 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

PiBrella-Relais-Montage.jpg

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.

PiBrella-Led-Montage.jpg

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).
    Rasp-Hack-L293-PWM-01.jpg
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()

Brancher un Moteurs pas-à-pas

Comme l'indique Cymplecy, il est possible de connecter un petit moteur pas-à-pas 5 broches (5 volts) que vous connectez sur les sorties.

Avec le texte OUT des sortie face à vous:

  • Le Rouge sur n'importe quel connecteur à gauche (Red to any left hand one)
  • Les 4 autres fils sur la partie droite du connecteur.

Pibrella-Scratch-Stepper.jpg
Source: drogon.net, Rework: MCHobby

Ce petit moteur à besoin de 768 impulsions (pas) pour faire un tour complet.

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é

PiBrella-5V-01.jpg

  • 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

PiBrella-5V-02.jpg

6) Pour finir, utilisez de simple connecteur (issu de cet assortiment) pour récupérer facilement la masse et le +5 Volts.

PiBrella-5V-03.jpg

Senseur PIR

Avec un senseur PIR, vous pourrez utiliser un votre PiBrella pour détecter un mouvement ou le passage d'une personne.

SenseurPir.jpg

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.

PiBrella-PIR-Senseur.jpg

La lecture de l'état est aussi simple que

pirActif = pibrella.input.d.is_high()

La preuve par l'exemple

PiBrella-PIR-Senseur 02.jpg

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

HallEffect.jpg

Aimant-Rare-Earth.jpg

RASP-PIBRELLA-SENSEUR-HALL 00.jpg

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.



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.