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 à une connaissance utile de l'électronique de bricolage et de la programmation.
Ce tutoriel vous montrera deux manières d'ajouter un bouton à votre projet Raspberry Pi. Le bouton servira à contrôler une LED. Des instructions écrites sont disponibles sous la vidéo.
Pour commencer, assurez-vous de disposer des composants suivants :
Une fois rassemblés, vous devriez avoir des composants qui ressemblent à ceci :
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 d'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 :
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 vous aidera. Le circuit ici est presque le même que dans notre précédent projet de LED Raspberry Pi, avec l'ajout du bouton que vous utiliserez aujourd'hui.
Configurez votre circuit selon ce schéma :
Une fois configuré, voici à quoi il devrait ressembler :
Vérifiez votre circuit pour vous assurer qu'il est correct, puis allumez votre Raspberry Pi.
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 existe de nombreux endroits intéressants pour en savoir plus sur Python une fois que vous avez terminé avec ce didacticiel !
Commencez par importer la bibliothèque RPi.GPIO et définissez le mode carte.
importer RPi.GPIO en tant que GPIO
GPIO.setmode(GPIO.BOARD)
Déclarez maintenant les variables pour les numéros de broches des LED et des boutons.
ledPin =12
boutonPin =16
Notez que puisque nous avons le mode conseil défini sur BOARD nous utilisons les numéros de broches plutôt que les numéros GPIO. Si cela vous déroute, un tableau de brochage Raspberry Pi peut vous aider à le clarifier.
Il est temps de configurer les broches GPIO. Réglez 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(boutonPin, GPIO.IN, pull_up_down=GPIO.PUD_UP)
Le texte après GPIO.IN fait référence à la résistance pull-up interne du Raspberry Pi. Vous devez l'activer pour obtenir une lecture nette à partir du bouton. Étant donné que le bouton va à la broche de masse, nous avons besoin d'une résistance de rappel pour maintenir la broche d'entrée HIGH jusqu'à ce que vous appuyiez dessus.
Avant de continuer, regardons les résistances pull-up et 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 lire si une broche est HIGH ou BAS 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 :FLOATING .
Une broche flottante a une valeur entre haut et bas, ce qui fait que l'entrée agit de manière imprévisible. Les résistances pull-up/pull-down résolvent ce problème.
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 pull-up interne relie la broche GPIO à l'alimentation interne Pi. Ce courant circule et la broche est tirée en toute sécurité vers HIGH.
Lorsque vous appuyez sur le bouton, la broche GPIO se connecte directement à la broche de masse et le bouton lit bas.
Les résistances pull-down sont utilisées lorsque le commutateur est connecté à la broche d'alimentation. Cette fois, la résistance interne relie 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 des connaissances importantes à avoir lorsque vous travaillez avec des microcontrôleurs. Pour l'instant, si vous ne le comprenez pas bien, ne vous inquiétez pas !
Continuons là où nous nous sommes arrêtés.
Ensuite, configurez la boucle du programme :
tandis que Vrai :
buttonState =GPIO.entrée (boutonPin)
si buttonState ==Faux :
GPIO.sortie(ledPin, GPIO.HIGH)
autre:
GPIO.sortie(ledPin, GPIO.LOW)
Le tandis que Vrai loop 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 ÉLEVÉ .
Une fois le bouton enfoncé, buttonState devient BAS . Cela déclenche l'instruction if , depuis Faux est identique à BAS , et la LED s'allume. Le autre éteint la LED chaque fois que le boutonPin n'est pas faux.
Enregistrez votre script en cliquant sur Fichier> Enregistrer sous et choisir un nom de fichier. Vous pouvez exécuter l'esquisse en cliquant sur le bouton vert Jouer dans la barre d'outils Thonny.
Appuyez maintenant sur le bouton et votre LED devrait s'allumer ! Appuyez sur le bouton rouge Stop bouton à tout moment pour arrêter le programme
Si vous rencontrez des difficultés, vérifiez soigneusement votre code et la configuration de votre circuit pour détecter les erreurs et réessayez.
La bibliothèque RPi.GPIO est fantastique, mais il y a un petit nouveau sur le bloc. La bibliothèque GPIO Zero a été créée par Ben Nuttall, responsable de la communauté Raspberry Pi, dans le but 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.
du voyant d'importation gpiozero, bouton
de la pause d'importation du signal
Vous remarquerez que vous n'avez pas importé toute la bibliothèque. Comme vous n'utilisez qu'un voyant et un bouton, vous n'avez besoin que de ces modules dans le script. Nous importons également 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 la LED et le bouton, vous n'avez pas besoin de configurer les entrées et les sorties comme avant. 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 broche GPIO (également appelés numéros Broadcom ou BCM).
Le reste du script n'est que de trois lignes :
bouton.quand_pressé =led.on
button.when_released =led.off
pause()
La pause() call here arrête simplement la sortie du script lorsqu'il atteint le bas. Les événements à deux boutons se déclenchent 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'avant !
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 savoir plus sur la bibliothèque RPi.GPIO car la plupart des projets Raspberry Pi débutants l'utilisent. 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 regorge d'idées créatives et de tutoriels que vous pouvez essayer vous-même ! Pour un autre tutoriel comme celui-ci, découvrez comment créer un bouton connecté au Wi-Fi.