Accueil

2 manières d’ajouter un bouton à votre projet Raspberry Pi

Added 2018-08-29


Apprendre à utiliser les broches GPIO sur votre Raspberry Pi ouvre tout un monde de possibilités. Les principes de base appris dans le cadre de projets pour débutants ouvrent la voie à des connaissances utiles à la fois en électronique et en programmation.

Ce tutoriel vous montrera deux manières d’ajouter un bouton à votre projet Raspberry Pi. Le bouton sera utilisé pour contrôler une LED. Des instructions écrites sont disponibles sous la vidéo.

Tu auras besoin de

Pour commencer, assurez-vous de disposer des composants suivants:

  • 1 x Raspberry Pi (Tout ira bien, le modèle 3B est utilisé dans ce tutoriel)
  • 1 x bouton poussoir
  • 1 x LED
  • 1 x 220 Ohm Resistor (Les valeurs supérieures conviennent, votre LED sera simplement plus faible)
  • 1 x planche à pain
  • Brancher des fils

Une fois rassemblés, vous devriez avoir des composants qui ressemblent à ceci:

Pièces nécessaires pour le didacticiel du bouton Pi

Vous aurez également besoin d’une carte SD avec le système d’exploitation Raspbian installé. Le moyen le plus rapide de procéder consiste à utiliser l’image NOOBS (New Out Of The Box Software). Des instructions sur la façon de procéder sont disponibles dans cette vidéo:

Mise en place du circuit

Vous utiliserez les broches GPIO du Pi pour faire le circuit, et si vous ne les connaissez pas, notre Tout ce que vous devez savoir sur les broches GPIO du Raspberry Pi guide pour épingles GPIO Raspberry Pi  aidera. Le circuit ici est presque le même que dans notre précédent Comment programmer votre Raspberry Pi pour contrôler les lumières DEL Projet LED Raspberry Pi , avec l’ajout du bouton que vous utiliserez aujourd’hui.

Configurez votre circuit selon ce schéma:

Fritzing Diagram for Tutoriel sur le bouton Pi

  • le 5v  et GND  les broches se connectent aux rails d'alimentation de la planche à pain.
  • Pin 12 (GPIO 18)  se connecte à la jambe positive de la LED.
  • Une jambe du résistance  se fixe à la jambe négative de la DEL et l'autre jambe se fixe au rail au sol de la planche à pain.
  • Broche 16 (GPIO 23)  se fixe à un côté du bouton, l’autre côté se fixe au rail au sol de la planche à pain.

Une fois qu’il est installé, voici à quoi cela devrait ressembler:

Raspberry Pi relié à un bouton et une LED sur une planche à pain.

Vérifiez votre circuit pour vous assurer qu'il est correct, puis mettez votre Raspberry Pi sous tension.

Méthode 1: la bibliothèque RPi.GPIO

Une fois que le Pi a démarré, allez dans le menu et sélectionnez Programmation>  Thonny Python IDE . Un nouveau script Python s'ouvrira. Si vous êtes totalement novice en Python, c’est un excellent langage pour les débutants et de nombreux endroits sont propices à l’apprentissage de Python.  après avoir terminé ce tutoriel!

Thonny Python IDE

Commencez par importer la bibliothèque RPi.GPIO, puis définissez le mode tableau.


importer RPi.GPIO en tant que GPIO

GPIO.setmode (GPIO.BOARD)

Déclarez maintenant les variables pour les numéros de broche des voyants et des boutons.


ledPin = 12
buttonPin = 16

Notez que puisque nous avons le mode conseil défini sur PLANCHE  nous utilisons les numéros de broches plutôt que les numéros GPIO. Si cela vous semble confus, un tableau de broutage de Raspberry Pi peut vous aider à mieux comprendre.

Mon Pinout

Mise en place du bouton

Il est temps de configurer les broches GPIO. Définissez la broche LED sur la sortie et la broche du bouton sur l'entrée avec une résistance de rappel


GPIO.setup (ledPin, GPIO.OUT)
GPIO.setup (buttonPin, GPIO.IN, pull_up_down = GPIO.PUD_UP)

Le texte après GPIO.IN fait référence à la résistance de traction interne  du Raspberry Pi. Vous devez l'activer pour obtenir une lecture nette du bouton. Étant donné que le bouton se connecte à la broche de terre, nous avons besoin d’une résistance pull-up pour maintenir la broche d’entrée HAUT jusqu’à ce que vous appuyiez dessus.

Avant de poursuivre, examinons les résistances de soulèvement et de descente.

Entrées: Résistances Pull Up / Pull Down

Lorsque vous configurez une broche GPIO en entrée, il lit cette broche pour déterminer son état. Dans ce circuit, vous devez savoir si une broche est HAUTE  ou FAIBLE  pour déclencher la LED lorsque le bouton est enfoncé. Ce serait simple si ceux-ci étaient les seuls états qu'une épingle pouvait avoir, mais malheureusement, il existe un troisième état: FLOTTANT .

Une broche flottante a une valeur comprise entre haut et bas, entraînant une action imprévisible de l'entrée. Les résistances pull-up / pull-down résolvent ceci.

Diagramme de la résistance de tirage

L'image ci-dessus est un schéma simplifié d'un bouton et d'un Raspberry Pi. La broche GPIO se connecte à la terre via le bouton. La résistance de tirage interne attache la broche GPIO à l'alimentation interne Pi. Ce courant circule et la broche est tirée en toute sécurité jusqu'à HIGH.

Lorsque vous appuyez sur le bouton, la broche GPIO se connecte directement à la broche de terre et le bouton affiche une valeur basse.

Diagramme de la résistance de tirage

Les résistances de tirage sont prévues lorsque le commutateur est connecté à la broche d'alimentation. Cette fois, la résistance interne attache la broche GPIO à la masse, en maintenant LOW jusqu’à ce que vous appuyiez sur le bouton.

La théorie de la résistance pull-up et pull-down est déroutante à première vue, mais constitue une connaissance importante à posséder lors de l'utilisation de microcontrôleurs. Pour le moment, si vous ne le comprenez pas bien, ne vous inquiétez pas!

Continuons là où nous nous sommes arrêtés.

La boucle du programme

Ensuite, configurez la boucle du programme:


alors que vrai:
  buttonState = GPIO.input (buttonPin)
  si buttonState == False:
    GPIO.output (ledPin, GPIO.HIGH)
  autre:
    GPIO.output (ledPin, GPIO.LOW)

le alors que vrai  loop exécute continuellement le code qu'il contient jusqu'à la fin du programme. Chaque fois qu'il boucle, il met à jour le l'état de bouton  en lisant l'entrée du bouton pin . Tant que le bouton n'est pas enfoncé, il reste HAUTE .

Une fois le bouton enfoncé, l'état de bouton  devient FAIBLE . Cela déclenche la si déclaration , puisque Faux  est le même que FAIBLE , et le voyant s’allume. le autre  Cette instruction éteint le voyant lorsque le bouton Pin est différent de False.

Enregistrez et exécutez votre script

Enregistrez votre script en cliquant sur Fichier>  Enregistrer sous  et en choisissant un nom de fichier. Vous pouvez exécuter le croquis en cliquant sur le bouton vert. Jouer  bouton dans la barre d’outils Thonny.

Panneau de configuration Thonny

Maintenant, appuyez sur le bouton et votre LED devrait s'allumer! Appuyez sur le rouge Arrêtez  bouton à tout moment pour arrêter le programme

Bouton gif testant gif

Si vous rencontrez des difficultés, vérifiez soigneusement le code et la configuration du circuit et essayez à nouveau.

Méthode 2: bibliothèque zéro GPIO

La bibliothèque RPi.GPIO est fantastique, mais il y a un nouvel enfant dans le quartier. La bibliothèque GPIO Zero était créé par Ben Nuttall, responsable de la communauté Raspberry Pi  avec l'intention de rendre le code plus simple, et plus facile à lire et à écrire.

Pour tester la nouvelle bibliothèque, ouvrez un nouveau fichier Thonny et importez la bibliothèque.


à partir de gpiozero import LED, Button
de la pause d'importation de signal

Vous remarquerez que vous n'avez pas importé toute la bibliothèque. Etant donné que vous utilisez uniquement une LED et un bouton, vous n’avez besoin que de ces modules dans le script. Nous importons aussi Pause  de la bibliothèque de signaux, qui est une bibliothèque Python pour la gestion des événements.

La configuration des broches est beaucoup plus facile avec GPIO Zero:


led = LED (18)
bouton = bouton (23)

Étant donné que la bibliothèque GPIO Zero possède des modules pour les voyants et les boutons, vous n'avez pas besoin de configurer les entrées et les sorties comme auparavant. Vous remarquerez que, même si les repères n’ont pas changé, les chiffres sont différents de ceux indiqués ci-dessus. En effet, GPIO Zero utilise uniquement les numéros de broches GPIO (également appelés numéros Broadcom ou BCM).

Le reste du script ne comporte que trois lignes:


button.when_pressed = led.on
button.when_released = led.off

pause()

le pause()  call here arrête simplement le script de quitter quand il atteint le bas. Les événements à deux boutons sont déclenchés chaque fois que le bouton est enfoncé et relâché. Enregistrez et exécutez votre script et vous obtiendrez le même résultat qu’avant!

Deux façons d'ajouter un bouton à Raspberry Pi

Parmi les deux façons de configurer le bouton, la méthode GPIO Zero semble être la plus simple. Il est toujours intéressant de connaître la bibliothèque RPi.GPIO, car la plupart des projets Raspberry Pi débutants  utilise le. Aussi simple que soit ce projet, les connaissances peuvent être utilisées pour un certain nombre de tâches minces.





Nuage de tags

Choix de L'éditeur


Thomas Becket

Je suis un écrivain indépendant qui couvre la programmation et les logiciels.
Je suis étudiant en informatique et je m'intéresse à la programmation, aux logiciels et à la technologie
Gadgets technologiques et critiques 2019