Tutoriel: interrupteur tactile

Tutoriel: interrupteur tactile

Les boutons et les commutateurs sont un élément fondamental de l’informatique «physique». Ce didacticiel pour débutant est conçu pour enseigner les bases du fonctionnement physique avec le Raspberry Pi à l’aide d’une simple configuration de commutateur momentané. Il nécessite quelques composants simples, disponibles auprès de ModMyPi (faites défiler vers le bas pour voir les produits):

  • Planche à pain moyenne
  • Fils de cavalier mâle à femelle
  • PCB Mount Switch
  • Kit de résistance ridicule de ModMyPi:
    • 10K? Résistance: marron, noir, noir, rouge, marron
    • 1K? Résistance: marron, noir, noir, marron, marron
  • Kit de fils de cavalier pour planche à pain

Étape 1 – Construire le circuit

Le circuit permet au Raspberry Pi de détecter un changement de tension lorsque le bouton (Commutateur 1) est enfoncé et nécessite trois broches GPIO. Le premier fournira une tension de signal de 3,3 V (Vcc), le suivant mettra le circuit à la terre (GND), et le troisième sera configuré comme entrée (GPIO IN) pour détecter le changement de tension.

Lorsqu’une broche GPIO est définie pour entrer, elle ne fournit aucune alimentation et n’a donc pas de niveau de tension distinct; défini comme «flottant». Nous avons besoin que la broche soit capable de juger de la différence entre une haute et une basse tension, mais dans un état flottant, elle peut détecter de manière incorrecte des états dus au bruit électrique. Pour permettre à la broche de percevoir la différence entre un signal haut ou bas, nous devons «lier» cette broche, en l’étalonnant à une valeur définie; 3,3 V dans ce cas!

blank

Pour attacher la broche d’entrée, nous la connectons au Vcc Broche 3,3 V, donc lorsque Commutateur 1 est ouvert, le courant passe GPIO IN et lit haut. Lorsque l’interrupteur 1 est fermé, nous court-circuitons le circuit et le courant est tiré vers GND; l’entrée a 0V, et lit bas! Alors que nous nous connectons Vcc directement à GND, qui pourraient laisser passer un courant dangereux, le grand R1 (10k ™) la résistance garantit que seul un petit courant est tiré. Pour rendre le circuit encore plus sûr, nous ajoutons le R2 (1kâ „¦) résistance pour limiter le courant vers et depuis GPIO IN.

L’interrupteur

Les commutateurs à quatre points sont câblés de manière très similaire aux commutateurs à deux points. Ils sont tout simplement plus polyvalents, car vous pouvez avoir plusieurs entrées isolées dans le même point de commutation. En vérifiant les schémas, les broches 1 et 2 sont toujours connectées, de même que les broches 3 et 4. Cependant, les broches 1 et 2 sont isolées des broches 3 et 4. Lorsque vous appuyez sur le bouton, les deux côtés sont liés et les broches 1, 2, 3 & 4 sont tous connectés!

Dans les commutateurs «momentanés», le circuit se déconnecte lorsque la pression est supprimée du bouton, contrairement aux commutateurs à bascule lorsqu’une pression se connecte et la pression suivante déconnecte le circuit de commutation interne.

blank
blank

Où est-ce que tout cela va?

ATTENTION. Lors de la connexion à des points GPIO sur votre Raspberry Pi, des précautions doivent être prises, car la connexion des mauvais points pourrait faire frire votre Pi de manière permanente. Veuillez utiliser une feuille de triche GPIO et vérifiez tout avant de l’allumer. Chaque point GPIO sera désigné par son nom et son emplacement physique. Par exemple, GPIO P17 est en fait situé à la broche 11, noté: GPIO P17 [Pin 11]. Les irrégularités sont dues au fait que les noms des broches sont référencés par la puce intégrée plutôt que par leur emplacement physique.

1. Connectez Pi au rail au sol. Utilisez un cavalier noir pour vous connecter GPIO GND [Pin 6] sur le Pi au rail négatif (-) sur la planche à pain.

2. Connectez le Pi 3.3V au rail positif. Utilisez un cavalier rouge pour vous connecter GPIO 3.3V [Pin 1] sur le Pi au rail positif (+) sur la planche à pain.

blank

3. Branchez votre commutateur. Lors de la planche à pain, assurez-vous que toutes les jambes sont dans des rangées distinctes. Pour atteindre ce chevauchement, le canal central sur la planche à pain.

4. Ajouter une résistance de 10k ™. Se connecter depuis Commutez la broche 1, au rail positif (+). L’orientation des résistances à film standard n’a pas d’importance.

blank

5. Connectez le commutateur à la terre. Utilisez un cavalier de planche à pain pour accrocher Commutez la broche 3 au rail négatif (-).

blank

6. Connectez le commutateur à la résistance 1k ™. Ajoutez cette résistance entre Commutez la broche 1 et le Résistance 10k ™et amenez-le dans un rail dégagé.

blank

7. Connectez le commutateur au port de signal. Nous utiliserons GPIO P17 pour détecter le signal 3,3 V lorsque l’interrupteur est enfoncé. Branchez simplement un cavalier entre GPIO P17 [Pin 11] sur le Pi et le Résistance 1k ™ rail.

C’est notre circuit construit! Ensuite, nous allons écrire un programme simple en Python à exécuter lorsque nous appuierons sur le commutateur!

Étape 2 – Créer un programme en Python

Dans cette partie, nous allons passer par les étapes de programmation et d’interaction entre le Pi et nos composants. La partie codage de ce tutoriel sera complétée sur Python, un langage à usage général largement utilisé. Il est également très lisible, nous pouvons donc décomposer et expliquer la fonction de chaque ligne de code. Le but de notre code sera de lire la broche E / S lorsque l’interrupteur est enfoncé!

blank

Installer la bibliothèque GPIO Python

Avant de commencer, nous devons installer la bibliothèque RPi.GPIO Python. Veuillez suivre le lien ici pour un guide sur la façon de le faire, puis revenez ici une fois que vous avez terminé!

Créer un programme en Python

Avec la bibliothèque GPIO installée, nous sommes tous prêts à démarrer notre projet Python! Chargez l’interface graphique Raspian avec startxet chargez le programme IDLE 3 dans lequel nous allons taper notre code. Alors que nous commençons un nouveau projet, ouvrez une nouvelle fenêtre Fichier >> Nouvelle fenêtre. N’oubliez pas que Python est sensible à la casse et que l’indentation est fondamentale. L’indentation, qui est utilisée pour regrouper les instructions, se produira automatiquement lorsque vous tapez des commandes, assurez-vous donc de vous en tenir à la disposition suggérée.

La première ligne de notre code importe la bibliothèque Python que nous venons de télécharger dans notre projet.

importer RPi.GPIO en tant que GPIO

Nous devons ensuite définir notre numérotation des broches GPIO, soit la numérotation BOARD, soit la numérotation BCM. La numérotation BOARD fait référence à la numérotation physique des broches des en-têtes. La numérotation BCM fait référence aux numéros de canal sur la puce Broadcom. L’un ou l’autre fera l’affaire, mais je préfère personnellement la numérotation BCM. Si vous êtes confus, utilisez une feuille de triche GPIO pour clarifier quelle broche est laquelle!

GPIO.setmode (GPIO.BCM)

Vous devez maintenant définir les broches GPIO en tant qu’entrées ou sorties. Dans la partie 1, nous avons défini la broche 17 du BCM: broche 11 de la carte (GPIO P17 [Pin 11]) comme notre broche d’entrée. Ainsi, notre prochaine ligne de code indique à la bibliothèque GPIO de définir cette broche comme entrée.

GPIO.setup (17, GPIO.IN)

Dans la partie 1 du tutoriel, la broche d’entrée était attachée haut en la connectant à notre broche 3,3 V, et le but de notre programme Python est de vérifier si la broche d’entrée a été achetée basse, par exemple. lorsque le bouton a été enfoncé. Pour vérifier l’état haut / bas de la broche, nous allons utiliser une instruction True ou False s’exécutant sur une boucle infinie.

Nous devons lier notre véritable déclaration à la valeur élevée de notre broche d’entrée. Pour ce faire, nous créons une nouvelle variable appelée valeur_entrée et définissez-la la valeur actuelle de GPIO P17 [Pin 11].

tandis que True:

valeur_entrée = GPIO.input (17)

Ensuite, nous ajouterons du code pour que le programme affiche un message lorsque vous appuyez sur le bouton. Pour cela, nous utiliserons la déclaration False, par exemple lorsque la valeur_entrée (qui est liée haut) n’est plus égale à la valeur_entrée, qui se produit lorsque le bouton est enfoncé et qu’il est tiré bas, exécutez une commande.

Si valeur_entrée == Faux

print (” Qui a appuyé sur mon bouton! “)

Lorsque le bouton est enfoncé, le programme affichera maintenant le texte: “Qui a appuyé sur mon bouton!”, N’hésitez pas à le changer en ce que vous voulez.

tandis que valeur_entrée == Faux:

valeur_entrée = GPIO.input (17)

Les deux dernières lignes du code ci-dessus sont très importantes, elles créent une boucle qui dit à Python de continuer à vérifier l’état de GPIO P17 [Pin 11] jusqu’à ce qu’il ne soit plus bas (bouton relâché). Sans cela, le programme serait en boucle pendant que le bouton est toujours enfoncé, ce qui signifie que le message sera imprimé plusieurs fois sur l’écran avant de relâcher le bouton.

Le programme final devrait ressembler à ceci en python:

blank

Enregistrez le fichier sous button.py. Afin d’exécuter le programme, ouvrez une nouvelle fenêtre de terminal sur le Pi et tapez la commande suivante:

sudo python button.py

Au début, rien ne se passera, mais si vous appuyez sur le bouton, le programme imprimera le message défini.

blank

Pour quitter un script Python en cours d’exécution, appuyez simplement sur CTRL + C sur le clavier pour terminer.

Si cela n’a pas fonctionné, ne vous inquiétez pas. Vérifiez d’abord que le circuit est correctement connecté sur la platine d’essai comme défini dans la partie 1, puis que les fils de cavalier sont connectés aux broches correctes sur le port GPIO. Si cela ne fonctionne toujours pas, vérifiez chaque ligne du programme corrige en vous rappelant que python est sensible à la casse et que l’indentation est correcte. Je trouve que taper le code à la main donnera de meilleurs résultats qu’un simple copier / coller.

Il s’agit d’un programme d’une simplicité trompeuse qui peut être utilisé à de nombreuses fins. Le même code peut être utilisé pour lire lorsque les broches d’appareils séparés, tels qu’un capteur ou un microcontrôleur externe, ont été tirées haut ou bas. La prochaine fois, nous ajouterons une LED à notre circuit et la ferons clignoter sur commande à partir de notre bouton!

Articles similaires

Bouton retour en haut de la page
Fermer