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 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 188 : |
Ligne 212 : |
| Il faut donc indiquer au système d'exploitation qu'il peut autoriser l'exécution de notre raspi-button2.py | | 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> | | <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}} |