Modifications

Sauter à la navigation Sauter à la recherche
14 103 octets ajoutés ,  21 juillet 2016 à 09:39
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 98 : Ligne 429 :  
[[Fichier:PiBrella-5V-03.jpg|480px]]
 
[[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 115 : Ligne 446 :  
[[Fichier:PiBrella-PIR-Senseur 02.jpg|800px]]
 
[[Fichier:PiBrella-PIR-Senseur 02.jpg|800px]]
   −
==== Senseur à Effet Hall ====
+
=== 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.
 
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.  
 
Ils peuvent aussi servir comme senseur de position, encodeur, détection de rotation.  
Ligne 134 : Ligne 465 :  
[[Fichier:RASP-PIBRELLA-SENSEUR-HALL 00.jpg]]
 
[[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}}
29 836

modifications

Menu de navigation