Mainos
GPIO-nastat -sovelluksen oppiminen Raspberry Pi -laitteessasi avaa koko mahdollisuuksien maailman. Aloittelijaprojektien kautta opitut perusperiaatteet tasoittavat tietä hyödylliseen tietoon sekä DIY-elektroniikasta että ohjelmoinnista.
Tämä opetusohjelma näyttää sinulle kaksi tapaa lisätä painike Raspberry Pi -projektiisi. Painiketta käytetään LEDin ohjaamiseen. Kirjalliset ohjeet ovat saatavana videon alla.
Tarvitset
Aloita varmista, että sinulla on seuraavat komponentit:
- 1 x Raspberry Pi (Tässä oppaassa käytetään mallia 3B)
- 1 x painike
- 1 x LED
- 1 x 220 ohmin vastus (Suuremmat arvot ovat hienoja, LED-valo vain himmenee)
- 1 x leipätaulu
- Kytke johdot
Kerättyäänsi sinulla tulisi olla komponentteja, jotka näyttävät noin:
Tarvitset myös SD-kortin, johon Raspbian-käyttöjärjestelmä on asennettu. Nopein tapa tehdä tämä on NOOBS (New Out Of the Box -ohjelmisto) -kuva. Ohjeet tämän tekemiseen ovat tässä videossa:
Piirin asettaminen
Käytät Pi: n GPIO-nastaa piirin tekemiseen, ja jos et tunne niitä opas Raspberry Pi GPIO -tappeihin
auttaa. Tässä piiri on melkein sama kuin edellisessä Raspberry Pi LED -projekti, lisäämällä painike, jota käytät tänään.Asenna piiri tämän kaavion mukaan:
- 5v ja GND nastat yhdistyvät leipälevyn voimakiskoihin.
- Nasta 12 (GPIO 18) kytkeytyy LEDin positiiviseen osaan.
- Yksi jalka vastus kiinnittyy LED: n negatiiviseen jalkaan ja toinen jalka kiinnittyy leipälaudan maadoituskiskoon.
- Nasta 16 (GPIO 23) kiinnittyy painikkeen toiselle puolelle, toinen puoli kiinnittyy leipälaudan maadoituskiskoon.
Kun se on asennettu, sen tulisi näyttää seuraavalta:
Tarkista piiri ja varmista, että se on oikein, ja käynnistä sitten Raspberry Pi.
Menetelmä 1: RPi. GPIO-kirjasto
Kun Pi on käynnistynyt, siirry valikkoon ja valitse Ohjelmointi> Thonny Python IDE. Uusi Python-skripti aukeaa. Jos olet täysin uusi Python, se on loistava kieli aloittelijoille, ja niitä on monia hienoja paikkoja oppia lisää Pythonista kun olet valmis tämän opetusohjelman!
Aloita tuomalla RPi. GPIO-kirjasto ja keskustelutilan asettaminen.
tuo RPi. GPIO GPIO GPIO.setmode (GPIO.BOARD)
Ilmoita nyt muuttujat LED- ja painikkeiden numeroille.
ledPin = 12. buttonPin = 16.
Huomaa, että koska hallitustila on asetettu HALLITUKSEN käytämme pin-numeroita GPIO-numeroiden sijasta. Jos se on sinulle hämmentävää, Raspberry Pi -taulukaavio voi auttaa selvittämään sen.
Painikkeen asettaminen
On aika perustaa GPIO-nastat. Aseta LED-tappi lähtöön ja nappitappi tuloon sisäänvetävällä vastuksella
GPIO.setup (ledPin, GPIO.OUT) GPIO.setup (buttonPin, GPIO.IN, pull_up_down = GPIO.PUD_UP)
GPIO.IN: n jälkeen oleva teksti viittaa sisäinen vetovastus vadelma Pi: stä. Sinun on otettava tämä käyttöön, jotta painikkeesta saadaan puhdas lukema. Koska painike menee maadoitustappiin, tarvitsemme vetovastuksen pitämään tulotappia KORKEA, kunnes painat sitä.
Katsotaanpa ennen jatkamista vedättäviä ja alasvetovastuksia.
Väli: Vedä vastukset ylös / alas
Kun määrität GPIO-nastan syöttämistä varten, se lukee sen nasta määrittämään sen tilan. Tässä piirissä sinun on luettava, onko nastainen KORKEA tai MATALA LEDin laukaisemiseksi, kun painiketta painetaan. Tämä olisi yksinkertaista, jos ne olisivat ainoat tilat, joilla pin voi olla, mutta valitettavasti on olemassa kolmas tila: KELLUVA.
Kelluvan tapin arvo on välillä korkea ja matala, minkä vuoksi tulo toimii ennakoimattomasti. Vetävät vastukset ratkaisevat tämän.
Yllä oleva kuva on yksinkertaistettu kaavio painikkeesta ja Raspberry Pi-kuvasta. GPIO-nasta liitetään maahan painikkeen kautta. Sisäinen vetovastus kiinnittää GPIO-tapin sisäiseen Pi-virtalähteeseen. Tämä virta virtaa ja tappi vedetään turvallisesti ylöspäin HIGH.
Kun painat painiketta, GPIO-nasta yhdistyy suoraan maadoitustappiin ja painike on alhainen.
Alasvetovastukset on tarkoitettu, kun kytkin on kytketty virtapistokkeeseen. Tällä kertaa sisäinen vastus kiinnittää GPIO-tapin maahan pitäen alhaalla, kunnes painat painiketta.
Pull-up- ja pull-down-vastusteoria on ensi silmäyksellä hämmentävä, mutta tärkeä tieto, joka meillä on työskenneltäessä mikro-ohjaimien kanssa. Toistaiseksi, jos et ymmärrä sitä täysin, älä huoli!
Jatkataan missä jatkoimme.
Ohjelmasilmukka
Asenna seuraavaksi ohjelmasilmukka:
kun taas Tosi: buttonState = GPIO.input (buttonPin), jos buttonState == vääriä: GPIO.output (ledPin, GPIO.HIGH) else: GPIO.output (ledPin, GPIO.LOW)
kun taas totta silmukka ajaa jatkuvasti koodia sen sisällä, kunnes lopemme ohjelman. Joka kerta kun se aukeaa, se päivittää buttonState lukemalla syötteen buttonPin. Kun painiketta ei paineta, se pysyy KORKEA.
Kun painiketta on painettu, buttonState tulee MATALA. Tämä laukaisee jos lausunto, siitä asti kun Väärä on sama kuin MATALA, ja LED-valo syttyy. muu lauseke sammuttaa LEDin aina, kun buttonPin ei ole väärä.
Tallenna ja suorita skriptisi
Tallenna skripti napsauttamalla Tiedosto> Tallenna nimellä ja valitsemalla tiedostonimi. Voit suorittaa luonnoksen napsauttamalla vihreää pelata -painiketta Thonny-työkalurivillä.
Paina nyt painiketta ja LED-merkkivalo syttyy! Paina punaista Lopettaa -painiketta milloin tahansa ohjelman lopettamiseksi
Jos sinulla on vaikeuksia, tarkista koodi ja piirin asetukset perusteellisesti virheiden varalta ja yritä uudelleen.
Tapa 2: GPIO Zero Library
RPi. GPIO-kirjasto on upea, mutta lohkossa on uusi lapsi. GPIO Zero Library oli luonut Raspberry Pi -yhteisön johtaja Ben Nuttall tarkoituksena on tehdä koodista yksinkertaisempaa ja helpompaa lukea ja kirjoittaa.
Testaa uusi kirjasto avaa uusi Thonny-tiedosto ja tuo kirjasto.
alkaen gpiozero import LED, Button. signaalin tuontitauosta.
Huomaat, että et ole tuonut koko kirjastoa. Koska käytät vain merkkivaloa ja painiketta, tarvitset komentosarjasta vain ne moduulit. Tuomme myös Tauko signaalikirjastosta, joka on Python-kirjasto tapahtumien hallintaan.
Tappien asettaminen on paljon helpompaa GPIO Zero -sovelluksella:
led = LED (18) painike = painike (23)
Koska GPIO Zero -kirjastossa on moduuleja LEDille ja painikkeille, sinun ei tarvitse asettaa tuloja ja lähtöjä kuten ennen. Huomaat, että vaikka nastat eivät ole muuttuneet, täällä olevat numerot ovat erilaisia kuin yllä. Tämä johtuu siitä, että GPIO Zero käyttää vain GPIO-pin-numeroita (tunnetaan myös nimellä Broadcom- tai BCM-numerot).
Muut käsikirjoitukset ovat vain kolme riviä:
button.when_pressed = led.on. button.when_released = led.off tauko ()
tauko() Soita tähän vain estää komentosarjan poistumisen, kun se saavuttaa alaosan. Kahden painikkeen tapahtumat käynnistyvät aina, kun painiketta painetaan ja vapautetaan. Tallenna ja suorita skripti ja näet saman tuloksen kuin ennen!
Kaksi tapaa lisätä painike vadelmapiille
Kaikista painikkeiden asettamistavoista GPIO Zero -menetelmä näyttää olevan helpoin. RPi on edelleen syytä oppia. GPIO-kirjasto nimellä aloittelija Raspberry Pi -hankkeita Käytä sitä. Niin yksinkertaista kuin tämä projekti on, tietoa voidaan käyttää moniin asioihin.
GPIO-nastat ovat hieno tapa oppia ja keksiä omia laitteitasi, mutta se ei kaukana kaikesta, mitä voit tehdä Pi-laitteella. Meidän epävirallinen opas Raspberry Pi: hen Vadelma Pi: epävirallinen opasOlitpa nykyinen Pi-omistaja, joka haluaa oppia lisää, tai tämän luottokorttikokoisen laitteen potentiaalinen omistaja, tämä ei ole opas, jonka haluat unohtaa. Lue lisää on täynnä luovia ideoita ja oppaita, jotka voit kokeilla itse! Katso toinen tällainen opetusohjelma miten luodaan kytketty Wi-Fi-painike Kuinka luoda oma Wi-Fi-yhteyspainike ESP8266: n avullaTässä opetusohjelmassa opit luomaan Wi-Fi-yhteensopivan painikkeen NodeMCU: n ja IFTTT: n avulla. Lue lisää .
Ian Buckley on freelance-toimittaja, muusikko, esiintyjä ja videotuottaja, joka asuu Berliinissä, Saksassa. Kun hän ei kirjoita tai näyttämöllä, hän söpöi DIY-elektroniikkaa tai -koodia toivossa tullakseen hulluksi tiedemieheksi.