2 načina za dodajanje gumba v vaš projekt Raspberry Pi

2 načina za dodajanje gumba v vaš projekt Raspberry Pi

Učenje uporabe zatičev GPIO na vašem Raspberry Pi odpira cel svet možnosti. Osnovna načela, naučena pri projektih začetnikov, utirajo pot do koristnega znanja tako elektronike DIY kot programiranja.





Ta vadnica vam bo pokazala dva načina, kako v projekt Raspberry Pi dodati gumb. Gumb bo uporabljen za upravljanje LED. Pisna navodila so na voljo pod videoposnetkom.





Boste potrebovali

Za začetek se prepričajte, da imate naslednje komponente:





  • 1 x Raspberry Pi (kateri koli bo primeren, model 3B je uporabljen v tej vadnici)
  • 1 x gumb
  • 1x LED
  • 1 x 220 ohmski upor (višje vrednosti so v redu, vaša LED bo le zatemnjena)
  • 1 x Ogledna plošča
  • Priključite žice

Ko se zberejo, bi morali imeti komponente, ki izgledajo nekako takole:

Potrebovali boste tudi kartico SD z nameščenim operacijskim sistemom Raspbian. Najhitrejši način za to je slika NOOBS (New Out of the Box Software). Navodila za to so na voljo v tem videu:



Nastavitev vezja

Za izdelavo vezja boste uporabili zatiče GPIO za Pi, če pa jih ne poznate, vodnik po zatičih Raspberry Pi GPIO bo pomagal. Vezje tukaj je skoraj enako kot v prejšnjem Projekt Raspberry Pi LED , z dodatkom gumba, ki ga boste uporabljali danes.

Nastavite vezje po tem diagramu:





  • The 5v in GND zatiči se povežejo z vodili na plošči.
  • Pin 12 (GPIO 18) se poveže s pozitivno nogo LED.
  • Ena noga upor pritrdi na negativni krak LED, druga pa na ozemljitveno tirnico plošče.
  • Pin 16 (GPIO 23) pritrdi na eno stran gumba, druga stran se pritrdi na ozemljitev tirnice.

Ko je nastavljen, bi moral izgledati tako:

Preverite, ali je vezje pravilno, nato pa vklopite Raspberry Pi.





1. način: Knjižnica RPi.GPIO

Ko se Pi zažene, pojdite v meni in izberite Programiranje> Thonny Python IDE . Odprl se bo nov skript Python. Če ste popolnoma novi v Pythonu, je to odličen jezik za začetnike in obstaja veliko krajev, kjer se lahko naučite več o Pythonu, potem ko končate s to vadnico!

Začnite z uvozom knjižnice RPi.GPIO in nastavitvijo načina plošče.

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

Zdaj razglasite spremenljivke za številke LED in gumbov.

ledPin = 12
buttonPin = 16

Upoštevajte, da ker imamo način plošče nastavljen na ODBOR namesto številk GPIO uporabljamo pin številke. Če vas to zmoti, vam lahko razčisti grafikon razporeditve Raspberry Pi.

Nastavitev gumba

Čas je za nastavitev zatičev GPIO. Zatič LED nastavite na izhod, zatič gumba pa na vhod z izvlečnim uporom

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

Besedilo po GPIO.IN se nanaša na notranji vlečni upor maline Pi. To morate omogočiti, če želite čistiti odčitavanje iz gumba. Ker gre gumb na ozemljitveni zatič, potrebujemo vlečni upor, ki drži vhodni zatič VISOKO, dokler ga ne pritisnete.

Preden nadaljujemo, poglejmo vlečne in spustne upore.

Odmor: Potegnite navzgor/navzdol uporov

Ko nastavite pin GPIO za vnos, ta odčita ta pin, da ugotovi njegovo stanje. V tem vezju morate prebrati, ali je pin VISOKO ali NIZKA za sprožitev LED, ko pritisnete gumb. To bi bilo preprosto, če bi bila to edina stanja, ki jih ima pin, na žalost pa obstaja še tretje stanje: PLIVA .

Plavajoči zatič ima vrednost med visoko in nizko, zaradi česar vhod deluje nepredvidljivo. Pull-up/pull-down upori to rešijo.

Zgornja slika je poenostavljen diagram gumba in Raspberry Pi. Vtič GPIO se s tipko poveže z maso. Notranji vlečni upor pritrdi pin GPIO na notranji Pi napajalnik. Ta tok teče in zatič je varno potegnjen do VISOKO.

Ko pritisnete gumb, se pin GPIO poveže neposredno z ozemljitvenim zatičem, gumb pa se glasi nizko.

Spustni upori so namenjeni, ko je stikalo priključeno na napajalni zatič. Tokrat notranji upor pritrdi pin GPIO na ozemljitev in drži pritisnjen LOW, dokler ne pritisnete gumba.

Teorija uporovnih in vlečnih uporov je na prvi pogled zmedena, vendar pomembna znanja pri delu z mikrokrmilniki. Zaenkrat, če tega ne razumete, ne skrbite!

Nadaljujmo tam, kjer smo končali.

Programska zanka

Nato nastavite programsko zanko:

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

The medtem ko je res zanka nenehno izvaja kodo v njej, dokler ne zaključimo programa. Vsakič, ko se ponovi, posodobi datoteko buttonState z branjem vnosa iz buttonPin . Medtem ko gumba ne pritisnete, ostane VISOKO .

Ko pritisnete gumb, buttonState postane NIZKA . To sproži if izjava , od Napačno je enako kot NIZKA , in LED se prižge. The drugače stavek izklopi LED, kadar gumbPin ni False.

Shranite in zaženite skript

Shranite skript s klikom Datoteka> Shrani kot in izbira imena datoteke. Skico lahko zaženete s klikom na zeleno Igraj gumb v orodni vrstici Thonny.

Sedaj pritisnite gumb in LED lučka naj zasveti! Pritisnite rdečo Stop kadar koli za zaustavitev programa

Če imate težave, natančno preverite napako v nastavitvah kode in vezja in poskusite znova.

Metoda 2: Knjižnica GPIO Zero

Knjižnica RPi.GPIO je fantastična, a v bloku je nov otrok. Knjižnica GPIO Zero je bila ustvaril upravitelj skupnosti Raspberry Pi Ben Nuttall z namenom poenostavitve kode ter lažjega branja in pisanja.

Če želite preizkusiti novo knjižnico, odprite novo datoteko Thonny in jo uvozite.

from gpiozero import LED, Button
from signal import pause

Opazili boste, da niste uvozili celotne knjižnice. Ker uporabljate samo LED in gumb, potrebujete samo tiste module v skriptu. Uvažamo tudi Pavza iz knjižnice signalov, ki je knjižnica Python za upravljanje dogodkov.

Nastavitev zatičev je veliko lažja z GPIO Zero:

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

Ker ima knjižnica GPIO Zero module za LED in gumb, vam ni treba nastavljati vhodov in izhodov kot prej. Opazili boste, da se številke, čeprav se niso spremenile, razlikujejo od zgoraj. To je zato, ker GPIO Zero uporablja samo številke pin GPIO (znane tudi kot številke Broadcom ali BCM).

kako videti zgodovino besedila na iphone

Preostali del skripta je samo tri vrstice:

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

The pavza() call here preprosto ustavi izhod skripta, ko doseže dno. Dogodki z dvema gumboma se sprožijo, ko pritisnete in spustite gumb. Shranite in zaženite skript in videli boste enak rezultat kot prej!

Dva načina za dodajanje gumba v Raspberry Pi

Od dveh načinov nastavitve gumba se zdi metoda GPIO Zero najlažja. Še vedno se je vredno učiti o knjižnici RPi.GPIO kot večina začetniških projektov Raspberry Pi uporabi. Ne glede na to, kako preprost je ta projekt, se lahko znanje uporabi za številne stvari.

Uporaba zatičev GPIO je odličen način za učenje in izumljanje lastnih naprav, vendar še zdaleč ni vse, kar lahko storite s Pi. Naš neuradni vodnik po Raspberry Pi je poln ustvarjalnih idej in vadnic, ki jih lahko preizkusite sami! Za drugo vadbo, kot je ta, si oglejte kako narediti gumb za povezavo Wi-Fi .

Deliti Deliti Cvrkutati E-naslov 5 nasvetov za polnjenje vaših strojev VirtualBox Linux

Ste naveličani slabe zmogljivosti, ki jo ponujajo virtualni stroji? Tukaj je tisto, kar morate storiti za povečanje zmogljivosti VirtualBox.

Preberite Naprej
Sorodne teme
  • DIY
  • Malina Pi
  • Python
  • GPIO
  • DIY Project Tutoriali
O avtorju Ian Buckley(216 objavljenih člankov)

Ian Buckley je samostojni novinar, glasbenik, izvajalec in video producent, ki živi v Berlinu v Nemčiji. Ko ne piše ali na odru, se ukvarja z elektroniko ali kodo DIY v upanju, da bo postal nor znanstvenik.

Več od Iana Buckleyja

Naročite se na naše novice

Pridružite se našemu glasilu za tehnične nasvete, ocene, brezplačne e -knjige in ekskluzivne ponudbe!

Kliknite tukaj, da se naročite
Kategorija Diy