2 moduri de a adăuga un buton la proiectul dvs. de zmeură Pi
Învățând să folosiți știfturile GPIO de pe Raspberry Pi deschide o întreagă lume de posibilități. Principiile de bază învățate prin proiectele începătorilor deschid calea spre cunoașterea utilă atât a electronicii DIY, cât și a programării.
Acest tutorial vă va arăta două moduri de a adăuga un buton la proiectul dvs. Raspberry Pi. Butonul va fi utilizat pentru a controla un LED. Instrucțiuni scrise sunt disponibile sub videoclip.
Vei avea nevoie
Pentru a începe, asigurați-vă că aveți următoarele componente:
- 1 x Raspberry Pi (Orice va face, model 3B este folosit in acest tutorial)
- 1 x Buton de apăsare
- 1 x LED
- Rezistor 1 x 220 Ohm (valori mai mari sunt bine, LED-ul dvs. va fi doar dimmer)
- 1 x Breadboard
- Legați firele
După ce ați adunat, ar trebui să aveți componente care arată astfel:
De asemenea, veți avea nevoie de un card SD cu sistemul de operare Raspbian instalat. Cel mai rapid mod de a face acest lucru este cu imaginea NOOBS (New Out of the Box Software). Instrucțiuni despre cum puteți face acest lucru sunt disponibile în acest videoclip:
Configurarea circuitului
Veți folosi pinii GPIO de la Pi pentru a face circuitul și dacă nu sunteți familiarizați cu aceștia, ghidul nostru pentru pini de la Raspberry Pi GPIO vă va ajuta. Circuitul este aproape la fel ca în proiectul nostru precedent de Raspberry Pi LED, cu adăugarea butonului pe care îl veți folosi astăzi.
Configurați-vă circuitul conform acestei diagrame:
- 5v și GND pinii se conectează la șinele de alimentare ale panoului.
- Pinul 12 (GPIO 18) se conectează la piciorul pozitiv al LED-ului.
- Un picior al rezistor se atașează piciorului negativ al LED-ului, iar celălalt picior se atașează la șina de rulare a panoului de bord.
- Pinul 16 (GPIO 23) se atașează de o parte a butonului, cealaltă parte se atașează la șina de la sol a panoului de bord.
Odată ce este setat, iată cum ar trebui să arate:
Verificați-vă circuitul pentru a vă asigura că este corect, apoi porniți-vă Zmeura Pi.
Metoda 1: Biblioteca RPi.GPIO
Odată ce Pi a pornit, mergeți la meniu și selectați Sunteți aici: Programare Thonny Python IDE. Se va deschide un nou script Python. Dacă sunteți total nou în Python, este o limbă excelentă pentru începători și există multe locuri excelente pentru a afla mai multe despre Python după ce ați terminat cu acest tutorial!
Începeți prin importarea bibliotecii RPi.GPIO și setarea modului de bord.
import RPi.GPIO ca GPIO GPIO.setmode (GPIO.BOARD)
Acum, declarați variabilele pentru numerele LED-urilor și ale pinilor butonului.
ledPin = 12 butonPin = 16
Rețineți că, deoarece avem modul de bord setat la BORD noi folosim numerele PIN, mai degrabă decât numerele GPIO. Dacă acest lucru este confuz pentru dvs., o diagramă Pinpoint de la Raspberry Pi vă poate ajuta să o eliminați.
Configurarea butonului
Este timpul să configurați pinii GPIO. Setați știftul LED pentru ieșire și pinul butonului pentru introducere cu o rezistență de tragere
GPIO.setup (ledPin, GPIO.OUT) GPIO.setup (butonulPin, GPIO.IN, pull_up_down = GPIO.PUD_UP)
Textul după GPIO.IN se referă la rezistor de tracțiune internă din Zmeura Pi. Trebuie să activați acest lucru pentru a obține o citire curată de la buton. Deoarece butonul se îndreaptă către pinul de masă, avem nevoie de un rezistor de tragere pentru a ține pini de intrare HIGH până când îl apăsați.
Înainte de a continua, să ne uităm la rezistențele de tracțiune și retragere.
Întrerupere: trageți în sus / trageți în jos rezistențele
Când configurați un pin GPIO pentru introducere, acesta citește acel PIN pentru a determina starea sa. În acest circuit, trebuie să citiți dacă este un pin ÎNALT sau SCĂZUT pentru a declanșa LED-ul când este apăsat butonul. Acest lucru ar fi simplu dacă acestea ar fi singurele state pe care le poate avea un ac, dar, din nefericire, există un al treilea stat: PLUTITOARE.
Un știft plutitor are o valoare între înălțime și joasă, determinând intrarea să acționeze imprevizibil. Rezistențele de tracțiune / retragere rezolvă acest lucru.
Imaginea de mai sus este o diagramă simplificată a unui buton și a unui zmeur Pi. Pinul GPIO se conectează la masă prin intermediul butonului. Rezistorul intern de tracțiune atașează pinul GPIO la sursa de alimentare internă Pi. Acest curent curge și pinul este tras în siguranță până la HIGH.
Când apăsați butonul, știftul GPIO se conectează direct la pinul de masă, iar butonul este redus.
Rezistențele de tracțiune sunt pentru comutatorul conectat la pinul de alimentare. De această dată, rezistența internă atașează pinul GPIO la masă, ținând în poziția LOW până când apăsați butonul.
Pull-up și Pull-down teoria rezistenței este confuză la prima vedere, dar cunoștințe importante de a avea atunci când lucrați cu microcontrolere. Pentru moment, dacă nu înțelegi destul de bine, nu-ți face griji!
Să continuăm unde am plecat.
Buclă de program
Apoi, configurați bucla programului:
în timp ce True: buttonState = GPIO.input (butonPin) dacă butonulState ==Fal: GPIO.output (ledPin, GPIO.HIGH) altceva: GPIO.output (ledPin, GPIO.LOW)
în timp ce este adevărat buclă rulează continuu codul înăuntru până când terminăm programul. De fiecare dată când se blochează, actualizează mesajul buttonState prin citirea intrărilor din buttonPin. În timp ce butonul nu este apăsat, acesta rămâne ÎNALT.
Odată ce butonul este apăsat, buttonState devine SCĂZUT. Acest lucru declanșează dacă declarație, de cand Fals este la fel ca SCĂZUT, iar LED-ul se aprinde. altfel declarația deconectează LED-ul de fiecare dată când butonulPin nu este fals.
Salvați și executați scriptul
Salvați scriptul dând clic pe Fișier> Salvare ca și alegerea unui nume de fișier. Puteți executa schița făcând clic pe verde Joaca în bara de instrumente Thonny.
Acum, apăsați butonul și LED-ul trebuie să se aprindă! Apăsați pe roșu Stop oricând pentru a opri programul
Dacă întâmpinați dificultăți, verificați cu atenție codul și configurația circuitului pentru erori și încercați din nou.
Metoda 2: Biblioteca GPIO Zero
Biblioteca RPi.GPIO este fantastică, dar există un nou copil pe bloc. Biblioteca GPIO Zero a fost creată de managerul comunității Raspberry Pi, Ben Nuttall, cu intenția de a face codul mai simplu și mai ușor de citit și de scris.
Pentru a testa noua bibliotecă, deschideți un nou fișier Thonny și importați biblioteca.
din LED-ul de import gpiozero, butonul de la pauza importului de semnal
Veți observa că nu ați importat întreaga bibliotecă. Deoarece utilizați doar un LED și un buton, aveți nevoie doar de acele module din script. De asemenea, importăm Pauză din biblioteca de semnale, care este o bibliotecă Python pentru gestionarea evenimentelor.
Configurarea pinilor este mult mai ușoară cu GPIO Zero:
LED = LED (18) buton = Buton (23)
Deoarece biblioteca GPIO Zero are module pentru LED-uri și butoane, nu este nevoie să configurați intrări și ieșiri ca înainte. Veți observa că, deși pini nu s-au schimbat, numerele de aici sunt diferite de cele de mai sus. Acest lucru se datorează faptului că GPIO Zero utilizează numai numerele de coduri GPIO (numite și numere Broadcom sau BCM).
Restul scriptului are doar trei rânduri:
button.when_pressed = led.on buton.when_released = led.off pauză ()
pauză() apel aici oprește pur și simplu scriptul de la ieșire când ajunge în partea de jos. Evenimentele cu două butoane se declanșează de fiecare dată când butonul este apăsat și eliberat. Salvați și rulați scriptul dvs. și veți vedea același rezultat ca înainte!
Două moduri de a adăuga un buton la zmeura Pi
Din cele două moduri de a configura butonul, metoda GPIO Zero pare să fie cea mai ușoară. Încă merită să învățați despre biblioteca RPi.GPIO, deoarece proiectele Raspberry Pi încep să o folosească. La fel de simplu ca și acest proiect, cunoștințele pot fi folosite pentru mai multe lucruri.
Utilizarea pinilor GPIO este o modalitate excelentă de a învăța și de a-ți inventa propriile dispozitive, dar este departe de tot ce poți să faci cu Pi. Ghidul nostru neoficial pentru Raspberry Pi Raspberry Pi: Tutorialul Neoficial Raspberry Pi: Tutorialul Neoficial Fie ca sunteti actualul proprietar Pi care doreste sa invete mai mult, fie ca potential proprietar al acestui dispozitiv de dimensiune a cartii de credit, acesta nu este un ghid vrei să ratezi. Read More este plin de idei creative și tutoriale pe care le puteți încerca singur! Pentru un alt tutorial de acest fel, a verifica cum să faceți un buton conectat la Wi-Fi Cum să faceți propriul dvs. Wi-Fi Buton conectat cu ESP8266 Cum să faceți propriul dvs. Wi-Fi conectat buton cu ESP8266 În acest tutorial, veți afla cum pentru a crea un buton cu funcție Wi-Fi utilizând NodeMCU și IFTTT. Citeste mai mult .
Explorați mai multe despre: DIY Project Tutorials, GPIO, Python, Raspberry Pi.