2 maneres d'afegir un botó al vostre projecte Raspberry Pi

2 maneres d'afegir un botó al vostre projecte Raspberry Pi

Aprendre a utilitzar els pins GPIO al vostre Raspberry Pi obre tot un món de possibilitats. Els principis bàsics apresos a través de projectes per a principiants obren el camí cap a un coneixement útil tant de l'electrònica de bricolatge com de la programació.





Aquest tutorial us mostrarà dues maneres d’afegir un botó al vostre projecte Raspberry Pi. El botó s’utilitzarà per controlar un LED. Hi ha instruccions escrites a sota del vídeo.





Necessitarà

Per començar, assegureu-vos que teniu els components següents:





  • 1 x Raspberry Pi (qualsevol ho farà, el model 3B s'utilitza en aquest tutorial)
  • 1 botó polsador
  • 1 x LED
  • 1 x 220 ohm de resistència (els valors més alts estan bé, el LED només serà més feble)
  • 1 x Taula de pa
  • Connecteu els cables

Un cop reunits, haureu de tenir components que tinguin un aspecte semblant a aquest:

També necessitareu una targeta SD amb el sistema operatiu Raspbian instal·lat. La forma més ràpida de fer-ho és amb la imatge NOOBS (New Out of the Box Software). En aquest vídeo hi ha instruccions sobre com fer-ho:



Configuració del circuit

Utilitzarà els pins GPIO del Pi per fer el circuit i, si no els coneixeu, els nostres guia dels pins GPIO de Raspberry Pi ajudarà. El circuit aquí és gairebé el mateix que en el nostre anterior Projecte Raspberry Pi LED , amb l'addició del botó que faràs servir avui.

Configureu el vostre circuit segons aquest esquema:





  • El 5v i GND els pins es connecten als rails d’alimentació de la placa.
  • Pin 12 (GPIO 18) es connecta a la pota positiva del LED.
  • Una pota del resistència s’adhereix a la pota negativa del LED i l’altra pota es fixa al rail de terra de la placa.
  • Pin 16 (GPIO 23) es fixa a un costat del botó, l’altre costat es fixa al rail de terra de la placa.

Un cop s'hagi configurat, a continuació s'explica com hauria de ser:

Comproveu el circuit per assegurar-vos que és correcte i, a continuació, engegueu el vostre Raspberry Pi.





Mètode 1: la biblioteca RPi.GPIO

Un cop arrencat el Pi, aneu al menú i seleccioneu Programació> Thonny Python IDE . S'obrirà un nou script Python. Si sou totalment nou a Python, és un llenguatge fantàstic per a principiants i hi ha molts llocs fantàstics per aprendre més sobre Python un cop hàgiu acabat aquest tutorial.

Comenceu important la biblioteca RPi.GPIO i configurant el mode de tauler.

import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BOARD)

Ara declareu les variables dels números del LED i del botó.

ledPin = 12
buttonPin = 16

Tingueu en compte que, ja que tenim el mode de tauler configurat a PISSARRA fem servir els números de pin en lloc dels números GPIO. Si això us resulta confús, un gràfic de configuració de Raspberry Pi us pot ajudar a aclarir-lo.

Configuració del botó

És hora de configurar els pins GPIO. Configureu el pin LED per a la sortida i el pin del botó per introduir-lo amb una resistència pull-up

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

El text després de GPIO.IN fa referència al fitxer resistència de tracció interna del Raspberry Pi. Cal activar-ho per obtenir una lectura neta del botó. Com que el botó es dirigeix ​​cap al pin de terra, necessitem una resistència pull-up per mantenir el pin d'entrada HIGH fins que el premeu.

Abans de continuar, vegem les resistències de pujar i baixar.

Intermitència: resistències de tracció cap amunt / cap avall

Quan configureu un pin GPIO per a l'entrada, es llegeix aquest pin per determinar-ne l'estat. En aquest circuit, heu de llegir si hi ha un pin ALTA o bé BAIX per activar el LED quan es prem el botó. Això seria senzill si fossin els únics estats que pot tenir un pin, però, malauradament, hi ha un tercer estat: FLOTANT .

Un passador flotant té un valor entre alt i baix, cosa que fa que l’entrada actuï de forma imprevisible. Les resistències pull-up / pull-down ho resolen.

La imatge anterior és un diagrama simplificat d’un botó i d’un Raspberry Pi. El pin GPIO es connecta a terra mitjançant el botó. La resistència de tracció interna connecta el pin GPIO a la font d'alimentació interna Pi. Aquest corrent flueix i el pas s’estira amb seguretat cap a HIGH.

En prémer el botó, el pin GPIO es connecta directament al pin de terra i el botó es llegeix baix.

Les resistències desplegables són per a quan l’interruptor està connectat al pin d’alimentació. Aquesta vegada, la resistència interna fixa el pin GPIO a terra, mantenint-lo en BAIX fins que premeu el botó.

La teoria de les resistències pull-up i pull-down és confusa a primera vista, però és important tenir coneixements quan es treballa amb microcontroladors. De moment, si no ho entens del tot, no et preocupis!

Continuem per on ho vam deixar.

El bucle del programa

A continuació, configureu el bucle del programa:

while True:
buttonState = GPIO.input(buttonPin)
if buttonState == False:
GPIO.output(ledPin, GPIO.HIGH)
else:
GPIO.output(ledPin, GPIO.LOW)

El mentre que és cert loop contínuament executa el codi dins seu fins que finalitzem el programa. Cada vegada que fa bucles, actualitza el fitxer buttonState mitjançant la lectura de l'entrada del fitxer buttonPin . Mentre no es prem el botó, es manté ALTA .

Un cop premut el botó, buttonState esdevé BAIX . Això desencadena el afirmació if , des de Fals és el mateix que BAIX , i el LED s'encén. El en cas contrari instrucció apaga el LED sempre que el botó Pin no és fals.

Deseu i executeu el vostre script

Deseu el vostre script fent clic Fitxer> Desa com a i triar un nom de fitxer. Podeu executar l'esbós fent clic al verd Jugar a la barra d'eines de Thonny.

Ara premeu el botó i el LED s'hauria d'encendre. Premeu el vermell Atura en qualsevol moment per aturar el programa

Si teniu dificultats, comproveu bé la configuració del codi i del circuit per detectar errors i torneu-ho a provar.

Mètode 2: Biblioteca zero GPIO

La biblioteca RPi.GPIO és fantàstica, però hi ha un nen nou al bloc. La Biblioteca Zero GPIO era creat pel gerent de la comunitat Raspberry Pi Ben Nuttall amb la intenció de fer el codi més senzill i més fàcil de llegir i escriure.

Per provar la nova biblioteca, obriu un nou fitxer Thonny i importeu-la.

from gpiozero import LED, Button
from signal import pause

Notareu que no heu importat tota la biblioteca. Com que només feu servir un LED i un botó, només necessiteu aquests mòduls a l'script. També importem Pausa de la biblioteca de senyals, que és una biblioteca Python per a la gestió d'esdeveniments.

Configurar els pins és molt més fàcil amb GPIO Zero:

led = LED(18)
button = Button(23)

Com que la biblioteca GPIO Zero té mòduls per al LED i el botó, no cal que configureu entrades i sortides com abans. Notareu que, tot i que els pins no han canviat, els números aquí són diferents dels anteriors. Això es deu al fet que GPIO Zero només utilitza els números de pin GPIO (també coneguts com a números Broadcom o BCM).

jugaràs a jocs de gamecube

La resta del guió té només tres línies:

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

El pausa () trucar aquí simplement impedeix la sortida de l'script quan arriba a la part inferior. Els esdeveniments de dos botons s'activen cada vegada que es prem i es deixa anar el botó. Deseu i executeu el vostre script i veureu el mateix resultat que abans.

Dues maneres d'afegir un botó a Raspberry Pi

De les dues maneres de configurar el botó, el mètode GPIO Zero sembla ser el més fàcil. Encara val la pena aprendre sobre la biblioteca RPi.GPIO com la majoria dels projectes Raspberry Pi per a principiants utilitza-ho. Tan senzill com sigui aquest projecte, el coneixement es pot utilitzar per a diverses coses.

L’ús dels pins GPIO és una bona manera d’aprendre i inventar els vostres propis dispositius, però està lluny de tot el que podeu fer amb el Pi. La nostra guia no oficial del Raspberry Pi està plena d’idees creatives i tutorials que podeu provar vosaltres mateixos. Consulteu un altre tutorial com aquest com fer un botó connectat a Wi-Fi .

Compartir Compartir Tweet Correu electrònic 5 consells per sobrecarregar les vostres màquines Linux de VirtualBox

Cansat del baix rendiment que ofereixen les màquines virtuals? Això és el que heu de fer per millorar el rendiment del VirtualBox.

Llegiu a continuació
Temes relacionats
  • Bricolatge
  • Raspberry Pi
  • Python
  • GPIO
  • Tutorials de projectes de bricolatge
Sobre l'autor Ian Buckley(216 articles publicats)

Ian Buckley és periodista, músic, intèrpret i productor de vídeo independent que viu a Berlín, Alemanya. Quan no escriu ni a l’escenari, juga amb electrònica o codi de bricolatge amb l’esperança de convertir-se en un científic boig.

Més de Ian Buckley

Subscriu-te al nostre butlletí

Uniu-vos al nostre butlletí per obtenir consells tècnics, ressenyes, llibres electrònics gratuïts i ofertes exclusives.

Feu clic aquí per subscriure-us