Publicité

Apprendre à utiliser les broches GPIO de votre Raspberry Pi ouvre tout un monde de possibilités. Les principes de base appris à travers des projets débutants ouvrent la voie à une connaissance utile à la fois de l'électronique et de la programmation DIY.

Ce tutoriel vous montrera deux façons 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 que vous disposez des composants suivants:

  • 1 x Raspberry Pi (Tout le monde le fera, le modèle 3B est utilisé dans ce tutoriel)
  • 1 x bouton poussoir
  • 1 x LED
  • 1 x résistance de 220 ohms (des valeurs plus élevées sont très bien, votre LED sera juste plus faible)
  • 1 x planche à pain
  • Brancher les 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 le faire est avec l'image NOOBS (nouveau logiciel prêt à l'emploi). Des instructions sur la façon de procéder sont disponibles dans cette vidéo:

instagram viewer

Configuration du circuit

Vous utiliserez les broches GPIO du Pi pour faire le circuit, et si vous ne les connaissez pas, notre guide des broches GPIO du Raspberry Pi aidera. Le circuit ici est presque le même que dans notre précédent Projet LED Raspberry Pi, avec l'ajout du bouton que vous utiliserez aujourd'hui.

Configurez votre circuit selon ce schéma:

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

Une fois qu'il est configuré, voici à quoi il devrait ressembler:

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

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

Méthode 1: Le RPi. Bibliothèque GPIO

Une fois le Pi démarré, dirigez-vous vers le menu et sélectionnez Programmation> Thonny Python IDE. Un nouveau script Python s'ouvrira. Si vous êtes totalement nouveau sur Python, c'est un excellent langage pour les débutants et il y a de nombreux bons endroits pour en savoir plus sur Python après avoir terminé ce didacticiel!

IDE Thonny Python

Commencez par importer le RPi. Bibliothèque GPIO et définition du mode de carte.

importer RPi. GPIO en tant que GPIO GPIO.setmode (GPIO.BOARD)

Déclarez maintenant les variables pour les numéros de LED et de broche de bouton.

ledPin = 12. buttonPin = 16. 

Notez que puisque le mode carte est réglé sur PLANCHE nous utilisons les numéros de broches plutôt que les numéros GPIO. Si cela vous déroute, un tableau de brochage du Raspberry Pi peut aider à le clarifier.

My Pi Pinout

Configuration du bouton

Il est temps de configurer les broches GPIO. Réglez la broche LED à la sortie et la broche du bouton à 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 rappel interne du Raspberry Pi. Vous devez l'activer pour obtenir une lecture nette du bouton. Puisque le bouton va à la broche de masse, nous avons besoin d'une résistance de rappel pour maintenir la broche d'entrée HAUTE jusqu'à ce que vous appuyiez dessus.

Avant de continuer, regardons les résistances de pull-up et pull-down.

Entracte: Résistances Pull Up / Pull Down

Lorsque vous configurez une broche GPIO pour entrer, il lit cette broche pour déterminer son état. Dans ce circuit, vous devez lire si une broche est HAUTE ou FAIBLE pour déclencher la LED lorsque le bouton est enfoncé. Ce serait simple si c'étaient les seuls états qu'une broche peut avoir, mais malheureusement, il y a un troisième état: FLOTTANT.

Une broche flottante a une valeur entre haut et bas, ce qui fait que l'entrée agit de façon imprévisible. Les résistances pull-up / pull-down résolvent cela.

Diagramme d'exemple de résistance de rappel

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 rappel interne relie la broche GPIO à l'alimentation interne Pi. Ce courant circule et la broche est remontée en toute sécurité à HAUT.

Lorsque vous appuyez sur le bouton, la broche GPIO se connecte directement à la broche de mise à la terre et le bouton indique faible.

Diagramme d'exemple de résistance de rappel

Les résistances de rappel sont destinées à lorsque l'interrupteur 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 des résistances pull-up et pull-down est déroutante à première vue, mais c'est une connaissance importante à avoir lorsque l'on travaille avec des microcontrôleurs. Pour l'instant, si vous ne le comprenez pas très bien, ne vous inquiétez pas!

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

La boucle du programme

Ensuite, configurez la boucle de programme:

tandis que True: buttonState = GPIO.input (buttonPin) si buttonState == False: GPIO.output (ledPin, GPIO.HIGH) sinon: GPIO.output (ledPin, GPIO.LOW)

le tandis que True boucle exécute continuellement le code à l'intérieur jusqu'à ce que nous terminions le programme. Chaque fois qu'il boucle, il met à jour le buttonState en lisant l'entrée du buttonPin. Tant que le bouton n'est pas enfoncé, il reste HAUTE.

Une fois le bouton enfoncé, buttonState devient FAIBLE. Cela déclenche la instruction if, depuis Faux est le même que FAIBLEet la LED s'allume. le autre L'instruction éteint la LED chaque fois que le buttonPin n'est pas faux.

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 l'esquisse en cliquant sur le vert Jouer dans la barre d'outils Thonny.

Panneau de configuration Thonny

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

Bouton-poussoir de test Gif

Si vous rencontrez des difficultés, vérifiez soigneusement votre code et la configuration du circuit pour rechercher des erreurs et réessayez.

Méthode 2: GPIO Zero Library

Le RPi. La bibliothèque GPIO est fantastique, mais il y a un nouvel enfant sur le bloc. La bibliothèque GPIO Zero a été créé par le gestionnaire de la communauté Raspberry Pi Ben Nuttall 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.

de gpiozero LED d'importation, bouton. de la pause d'importation du signal. 

Vous remarquerez que vous n'avez pas importé la bibliothèque entière. Comme vous n'utilisez qu'une LED et un bouton, vous n'avez besoin que de ces modules dans le script. Nous importons également Pause à partir 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 la LED et le bouton, vous n'avez pas besoin de configurer les entrées et les sorties comme auparavant. Vous remarquerez que bien que les broches n'aient pas changé, les chiffres ici sont différents de ceux 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 comprend que trois lignes:

button.when_pressed = led.on. button.when_released = led.off pause ()

le pause() appeler ici 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 verrez le même résultat qu'auparavant!

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 vaut toujours la peine d'en apprendre davantage sur le RPi. Bibliothèque GPIO en tant que projets Raspberry Pi les plus débutants utilise le. Aussi simple que soit ce projet, les connaissances peuvent être utilisées pour un certain nombre de choses.

L'utilisation des broches GPIO est un excellent moyen d'apprendre et d'inventer vos propres appareils, mais c'est loin de tout ce que vous pouvez faire avec le Pi. Notre guide non officiel du Raspberry Pi Raspberry Pi: le tutoriel non officielQue vous soyez un propriétaire Pi actuel qui veut en savoir plus ou un propriétaire potentiel de cet appareil de la taille d'une carte de crédit, ce n'est pas un guide que vous voulez manquer. Lire la suite regorge d'idées créatives et de tutoriels que vous pouvez essayer vous-même! Pour un autre tutoriel comme celui-ci, consultez comment créer un bouton connecté Wi-Fi Comment créer votre propre bouton connecté Wi-Fi avec ESP8266Dans ce didacticiel, vous apprendrez à créer un bouton compatible Wi-Fi à l'aide de NodeMCU et IFTTT. Lire la suite .

Ian Buckley est un journaliste indépendant, musicien, interprète et producteur de vidéos vivant à Berlin, en Allemagne. Lorsqu'il n'écrit pas ou sur scène, il bricole de l'électronique ou du code DIY dans l'espoir de devenir un savant fou.