Modifications

Sauter à la navigation Sauter à la recherche
2 707 octets ajoutés ,  27 février 2017 à 14:51
aucun résumé de modification
Ligne 8 : Ligne 8 :  
En fonction de l'état du bouton, le programme allumera la led Rouge ou Verte.
 
En fonction de l'état du bouton, le programme allumera la led Rouge ou Verte.
   −
Un [http://mchobby.be/PrestaShop/product.php?id_product=160 Pi Cobbler d'AdaFruit] (disponible chez MC Hobby) est utiliser pour faciliter le montage.
+
Un {{link-product-picobbler}} ou un {{link-product-picobblerplus}} (disponible chez MC Hobby) est utiliser pour faciliter le montage.
 +
 
 +
=== Pi-Cobbler ou Pi-Cobbler-Plus? ===
 +
 
 +
{{picobbler-compatibility}}
    
== Prérequis ==
 
== Prérequis ==
Assurez-vous d'avoir [http://mchobby.be/wiki/index.php?title=RaspberryPi-Accueil#Pr.C3.A9paration_pour_Python mis votre environnement Python à jour].
+
Assurez-vous d'avoir [[RaspberryPi-Accueil#Pr.C3.A9paration_pour_Python|mis votre environnement Python à jour]].
    
== Matériel ==
 
== Matériel ==
* Un [http://mchobby.be/PrestaShop/product.php?id_product=160 Pi-Cobbler]
+
* Un {{pl|160|Pi-Cobbler}}
 
* 2 x résistance de 330 Ohms (Orange, Orange, Brun)
 
* 2 x résistance de 330 Ohms (Orange, Orange, Brun)
 
* 1 x Led Rouge
 
* 1 x Led Rouge
Ligne 33 : Ligne 37 :     
Note: Ceux d'entre-vous qui utilisent un Arduino noterons que '''la tension du GPIO d'un Raspberry est 3.3v''' (et non 5v comme pour un Arduino)
 
Note: Ceux d'entre-vous qui utilisent un Arduino noterons que '''la tension du GPIO d'un Raspberry est 3.3v''' (et non 5v comme pour un Arduino)
 +
 +
=== Pull-up/Pull-down interne ===
 +
Pour les initiés, votre Raspberry-Pi dispose déjà de résistance pull-up ou pull-down que vous pouvez activer au moment de la déclaration de la broche en entrée.
 +
 +
<nowiki>GPIO.setup(23, GPIO.IN, pull_up_down=GPIO.PUD_DOWN)
 +
GPIO.setup(24, GPIO.IN, pull_up_down=GPIO.PUD_UP)</nowiki>
 +
 +
[http://makezine.com/projects/tutorial-raspberry-pi-gpio-pins-and-python/ Voyez cet article sur Make Magazine] pour plus d'information
    
== Montage ==
 
== Montage ==
Ligne 53 : Ligne 65 :  
On fait ensuite le copier/coller du code  
 
On fait ensuite le copier/coller du code  
   −
  <nowiki>#!/usr/bin/env python
+
<nowiki>#!/usr/bin/env python
 
# -*- coding: latin-1 -*-
 
# -*- coding: latin-1 -*-
   Ligne 85 : Ligne 97 :  
Par défaut, les fichier sont considéré comme des fichiers texte non exécutable... même s'il contiennent des scripts.
 
Par défaut, les fichier sont considéré comme des fichiers texte non exécutable... même s'il contiennent des scripts.
   −
Il faut donc indiquer au système d'exploitation qu'il peut autoriser l'exécution de notre raspi-blink.py
+
Il faut donc indiquer au système d'exploitation qu'il peut autoriser l'exécution de notre raspi-button.py
 
  <nowiki>chmod +x raspi-button.py</nowiki>
 
  <nowiki>chmod +x raspi-button.py</nowiki>
   Ligne 115 : Ligne 127 :  
=== Solution: le déparasitage logiciel ===
 
=== Solution: le déparasitage logiciel ===
   −
xxx
+
Le déparasitage logiciel consiste à faire une seconde vérification du signal après une courte pause.<br />
 +
Comme la période transitoire est très courte (de l'ordre de la milliseconde), faire une pause de 10 millisecondes entre deux lectures successives permet de s'assurer que le signal à vraiment changé de "façon définitive".<br />
 +
La pression du bouton n'étant humainement jamais inférieur à 10 ms, ont est certain de ne pas rater la pression du bouton lorsque l'action se présentera.
 +
 
 +
Si l'on se trouve dans une période transitoire, il est fort probable que la deuxième lecture ne soit pas identique (pas la même valeur).<br />
 +
Dans ce cas, il suffit d'ignorer le changement d'état car c'est une lecture parasite.
 +
 
 +
Le script python ci-dessous met ces quelques explications en oeuvre.
 +
 
 +
== Déparasitage Matériel ==
 +
Vous pouvez utiliser une {{pl|456|capacité de 10nF}} en parallèle avec votre bouton pour éliminer une bonne partie des parasites.
 +
 
 +
Vous pouvez vous inspirer [[Entr%C3%A9e_Bouton#D.C3.A9parasitage_mat.C3.A9riel_-_version_1|des explications et montages de notre tutoriel bouton pour Arduino]]. N'oubliez pas d'utiliser une tension de 3.3 Volts pour votre Pi ;-)
    
== Script Python - déparasitage logiciel ==
 
== Script Python - déparasitage logiciel ==
Ligne 122 : Ligne 146 :  
Lorsque le bouton est enfoncé, BUTTON1_STATE est True, lorsque le bouton est relâché BUTTON1_STATE est False.
 
Lorsque le bouton est enfoncé, BUTTON1_STATE est True, lorsque le bouton est relâché BUTTON1_STATE est False.
   −
  <nowiki>#!/usr/bin/env python
+
=== Copier/coller le code ===
 +
Voici une méthode Copier/Coller super simple<br />
 +
 
 +
On commence par demander la création du fichier
 +
<nowiki>cat <<! > raspi-button2.py</nowiki>
 +
 
 +
On fait ensuite le copier/coller du code
 +
 
 +
<nowiki>#!/usr/bin/env python
 
# -*- coding: latin-1 -*-
 
# -*- coding: latin-1 -*-
   Ligne 170 : Ligne 202 :  
                 GPIO.output(RED_LED, False)
 
                 GPIO.output(RED_LED, False)
 
</nowiki>
 
</nowiki>
 +
 +
 +
On termine l'opération de saisie simplement avec:
 +
<nowiki>!</nowiki>
 +
 +
=== Rendre le fichier exécutable ===
 +
Par défaut, les fichier sont considéré comme des fichiers texte non exécutable... même s'il contiennent des scripts.
 +
 +
Il faut donc indiquer au système d'exploitation qu'il peut autoriser l'exécution de notre raspi-button2.py
 +
<nowiki>chmod +x raspi-button2.py</nowiki>
 +
 +
=== Executer le programme ===
 +
Taper simplement la commande suivante:
 +
  <nowiki>sudo ./raspi-button2.py</nowiki>
 +
 +
== Où acheter ==
 +
Vous pouvez trouver plusieurs modèles de bouton chez MCHobby
 +
* {{pl|39|Bouton tactile standard 6mm}}
 +
* {{pl|378|Bouton tactile étroit}}
 +
* {{pl|1086|Bouton tactile large 12mm}} (très pratique pour les Workshops).
 +
* {{pl|187|Bouton tactile avec capuchon carré}}
 +
* {{pl|344|Bouton tactile avec capuchon rond}}
 +
 +
{{ADF-Accord}}
 +
 +
{{MCH-Accord}}
29 836

modifications

Menu de navigation