Oglas

Učenje uporabe zatičev GPIO na vašem Raspberry Pi odpira cel kup možnosti. Osnovna načela, ki so se jih naučili skozi začetniške projekte, utirajo pot uporabnemu znanju elektronske opreme in programiranja.

Ta vadnica vam bo pokazala dva načina za dodajanje gumba projektu Raspberry Pi. Gumb se uporablja za nadzor LED. Pisna navodila so na voljo pod videoposnetkom.

Boste potrebovali

Za začetek preverite, ali imate naslednje komponente:

  • 1 x Raspberry Pi (Vse bo, v tej vadnici se uporablja model 3B)
  • 1 x tipka
  • 1 x LED
  • 1 x 220 Ohm upor (višje vrednosti so v redu, vaša LED bo samo zatemnjena)
  • 1 x Krušna plošča
  • Priključite žice

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

Deli, potrebni za vadnico gumbov Pi

Potrebovali boste tudi kartico SD z nameščenim operacijskim sistemom Raspbian. Najhitreje to storite s sliko NOOBS (New Out Of Box Software). Navodila, kako to storiti, so na voljo v tem videoposnetku:

Nastavitev vezja

Za izdelavo vezja boste uporabili nožice GPIO za pi, in če z njimi niste seznanjeni vodnik za sornike Raspberry Pi GPIO

bo pomagal. Tukaj je vezje skoraj enako kot v našem prejšnjem Raspberry Pi LED projekt, z dodatkom gumba, ki ga boste uporabljali danes.

Nastavite vezje po tem diagramu:

Fritzing Diagram za Pi Button Tutorial
  • The 5v in BND zatiči se priključijo na napajalne letve plošče.
  • Pin 12 (GPIO 18) priključi na pozitivno nogo LED.
  • Ena noga upor pritrdi na negativno nogo LED, drugo nogo pa pritrdi na talno tirnico plošče.
  • Pin 16 (GPIO 23) pritrdi na eno stran gumba, druga stran pritrdi na talno tirnico plošče.

Ko je nastavljena, je videti, kako mora izgledati:

Malina Pi se priklopi na gumb in LED na plošči.

Preverite svoj vezje in se prepričajte, da je pravilno, in nato vklopite svoj Raspberry Pi.

1. metoda: RPi. GPIO knjižnica

Ko se Pi zažene, pojdite na meni in izberite Programiranje> IDE Thonny Python. Odpre se nov skript Python. Če ste popolnoma novi v Pythonu, je to odličen jezik za začetnike in obstajajo veliko krajevnih krajev, če želite izvedeti več o Pythonu potem ko ste končali s to vadnico!

Thonny Python IDE

Začnite z uvozom RPi-ja. GPIO knjižnica in nastavitev načina plošče.

uvoz RPi. GPIO kot GPIO GPIO.setmode (GPIO.BOARD)

Zdaj razglasite spremenljivke za številke LED in gumbov.

ledPin = 12. gumbPin = 16. 

Upoštevajte, da imamo nastavljen način plošče ODBOR uporabljamo številke pin, ne številke GPIO. Če vas to zmede, vam lahko pomaga, da ga razčistite z Raspberry Pi preglednico.

My Pi Pinout

Nastavitev gumba

Čas je, da nastavite zatiče GPIO. Nastavite LED zatič za izhod, zatič gumba pa za vnos s upornim uporom

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

Besedilo za GPIO.IN se nanaša na notranji vlečni upor maline Pi. To morate omogočiti, da iz gumba dobite čisto branje. Ker gre gumb na zemeljski zatič, potrebujemo vlečni upor, da vhodni zatič držite VISOK, dokler ga ne pritisnete.

Preden nadaljujemo, poglejmo vlečne in spodnje upore.

Intermission: Upori potegnite navzdol / potegnite navzdol

Ko konfigurirate pin za GPIO za vnos, ga prebere, da določi njegovo stanje. V tem vezju morate prebrati, ali je zatič VISOKO ali NIZKA da sprožite LED, ko pritisnete gumb. To bi bilo preprosto, če bi bila to edina stanja, ki jih lahko ima pin, na žalost pa obstaja tretje stanje: PLOČE.

Plavajoči zatič ima vrednost med visoko in nizko, zaradi česar vhod deluje nepredvidljivo. To rešujejo vlečni / spodnji upori.

Diagram primerov vlečnega upora

Zgornja slika je poenostavljen diagram gumba in Raspberry Pi. Pin za GPIO se prek gumba poveže z ozemljitvijo. Notranji vlečni upor pritrdi GPIO pin na notranje Pi napajanje. Ta tok teče in zatič se varno dvigne do VISOKE.

Ko pritisnete gumb, se pin GPIO poveže neposredno z ozemljitvijo, gumb pa se glasi nizko.

Diagram primerov uporovnega upora

Odporni upori so pripravljeni, ko je stikalo priključeno na napajalni zatič. Tokrat notranji upor pritrdi zatič GPIO na ozemljitev, držite pa ga LOW, dokler ne pritisnete gumba.

Teorija povleka in upogiba uporov je na prvi pogled zmedena, vendar je pomembno znanje pri delu z mikrokontrolerji. Za zdaj, če tega ne razumete čisto nič, ne skrbite!

Nadaljujmo tam, kjer smo končali.

Programska zanka

Nato nastavite programsko zanko:

medtem ko je True: buttonState = GPIO.input (buttonPin), če buttonState == False: GPIO.output (ledPin, GPIO.HIGH) drugo: GPIO.output (ledPin, GPIO.LOW)

The medtem ko je res zanka nenehno izvaja kodo v njej, dokler ne končamo programa. Vsakič, ko je zanka, posodobi gumbState z branjem vnosa iz gumbPin. Medtem ko gumba ne pritisnete, ostane VISOKO.

Ko pritisnete gumb, gumbState postane NIZKA. To sproži če izjava, od Lažno je isto kot NIZKA, in LED zasveti. The drugače stavek izklopi LED, kadar gumbPin ni napačen.

Shranite in zaženite skript

Svoj skript shranite s klikom Datoteka> Shrani kot in izbiro imena datoteke. Skico lahko zaženete s klikom na zeleno Predvajaj gumb v orodni vrstici Thonny.

Thonny nadzorna plošča

Zdaj pritisnite gumb in vaša LED mora zasvetovati! Pritisnite rdečo Nehaj kadar koli zaustavite program

Gif za preizkušanje gumba s tipkami

Če imate težave, temeljito preverite, ali so v kodi in nastavitvi vezja napake, in poskusite znova.

2. način: Ničelna knjižnica GPIO

RPi. Knjižnica GPIO je fantastična, na bloku pa je nov otrok. Ničelna knjižnica GPIO je bila ustvaril vodja skupnosti Raspberry Pi Ben Nuttall z namenom poenostavitve kode in lažjega branja in pisanja.

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

iz gpiozero uvoz LED, gumb. od pavze za uvoz signala. 

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

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

led = LED (18) gumb = Gumb (23)

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

Preostali del skripta so samo tri vrstice:

gumb.when_press = led.on. button.when_released = led.off pause ()

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

Dva načina za dodajanje gumba na Raspberry Pi

Od dveh načinov nastavitve gumba se zdi metoda GPIO Zero najlažja. Še vedno je vredno spoznati RPi. GPIO knjižnica as večina začetnih projektov Raspberry Pi uporabi. Tako preprost, kot je ta projekt, lahko znanje uporabimo 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še neuradni vodnik po Raspberry Pi Malina Pi: Neuradna vadnicaNe glede na to, ali ste trenutno lastnik Pi, ki se želi naučiti več, ali pa potencialni lastnik te naprave z velikostjo kreditne kartice, to ni vodnik, ki ga želite zamuditi. Preberi več presega kreativne ideje in vaje, ki jih lahko preizkusite sami! Oglejte si še eno vadnico, kot je ta kako narediti gumb, povezan s Wi-Fi-jem Kako narediti lastno tipko za povezavo Wi-Fi z ESP8266V tej vadnici boste izvedeli, kako ustvariti gumb, ki podpira Wi-Fi, s pomočjo NodeMCU in IFTTT. Preberi več .

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