2 moduri de a adăuga un buton la proiectul dvs. Raspberry Pi

2 moduri de a adăuga un buton la proiectul dvs. Raspberry Pi

Învățarea utilizării pinilor GPIO de pe Raspberry Pi deschide o întreagă lume de posibilități. Principiile de bază învățate prin proiecte pentru începători deschid calea către 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 (Oricine va face, modelul 3B este utilizat în acest tutorial)
  • 1 x buton
  • 1 x LED
  • 1 rezistor de 220 Ohm (valorile mai mari sunt bune, LED-ul dvs. va fi mai slab)
  • 1 x panou de pâine
  • Conectați firele

Odată adunați, ar trebui să aveți componente care să arate cam așa:

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 să faceți acest lucru sunt disponibile în acest videoclip:



Configurarea circuitului

Veți folosi pinii GPIO ai Pi pentru a realiza circuitul și, dacă nu sunteți familiarizați cu ei, ai noștri ghid pentru pinii Raspberry Pi GPIO va ajuta. Circuitul de aici este aproape la fel ca în precedentul nostru Proiect Raspberry Pi LED , cu adăugarea butonului pe care îl veți folosi astăzi.

Configurați-vă circuitul conform acestei diagrame:





  • The 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ă la piciorul negativ al LED-ului, iar celălalt picior se fixează la șina de la sol a panoului.
  • Pinul 16 (GPIO 23) se atașează de o parte a butonului, cealaltă parte se fixează de șina de la sol a panoului.

Odată configurat, iată cum ar trebui să arate:

Verificați circuitul pentru a vă asigura că este corect, apoi porniți Raspberry Pi.





Metoda 1: Biblioteca RPi.GPIO

Odată ce Pi a pornit, mergeți la meniu și selectați Programare> Thonny Python IDE . Se va deschide un nou script Python. Dacă sunteți complet nou în Python, este un limbaj 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 as GPIO
GPIO.setmode(GPIO.BOARD)

Declarați acum variabilele pentru numerele LED-urilor și ale butoanelor.

ledPin = 12
buttonPin = 16

Rețineți că, din moment ce modul de bord este setat la BORD folosim mai degrabă numerele PIN decât numerele GPIO. Dacă acest lucru este confuz pentru dvs., o diagramă Raspberry Pi poate fi clarificată.

Configurarea butonului

Este timpul să configurați pinii GPIO. Setați pinul LED la ieșire și pinul butonului la intrare cu un rezistor pull-up

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

Textul după GPIO.IN se referă la rezistență de tragere internă a Raspberry Pi. Trebuie să activați acest lucru pentru a obține o citire curată din buton. Deoarece butonul se îndreaptă către pinul de la sol, avem nevoie de un rezistor de tragere pentru a menține pinul de intrare HIGH până când îl apăsați.

Înainte de a continua, să ne uităm la rezistențele pull-up și pull-down.

Intermitere: rezistențe trageți în sus / trageți în jos

Când configurați un pin GPIO pentru intrare, acesta citește acel pin pentru a determina starea acestuia. În acest circuit, trebuie să citiți dacă este un pin ÎNALT sau SCĂZUT pentru a declanșa LED-ul atunci când butonul este apăsat. Acest lucru ar fi simplu dacă acestea ar fi singurele stări pe care le poate avea un pin, dar, din păcate, există o a treia stare: FLOTANT .

Un știft plutitor are o valoare între mare și scăzut, determinând intrarea să acționeze imprevizibil. Rezistențele pull-up / pull-down rezolvă acest lucru.

Imaginea de mai sus este o diagramă simplificată a unui buton și a unui Raspberry Pi. Pinul GPIO se conectează la masă prin intermediul butonului. Rezistorul de tragere intern atașează pinul GPIO la sursa internă de alimentare Pi. Acest curent curge și știftul este tras în siguranță până la HIGH.

Când apăsați butonul, pinul GPIO se conectează direct la pinul de masă, iar butonul este redat.

Rezistențele de tragere sunt destinate atunci când comutatorul este conectat la pinul de alimentare. De data aceasta, rezistorul intern atașează pinul GPIO la masă, ținând în LOW până când apăsați butonul.

Teoria rezistenței pull-up și pull-down este confuză la prima vedere, dar cunoștințe importante pe care trebuie să le ai atunci când lucrezi cu microcontrolere. Deocamdată, dacă nu prea înțelegeți, nu vă faceți griji!

Să continuăm de unde am rămas.

Bucla programului

Apoi, configurați bucla programului:

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

The în timp ce Adevărat loop rulează continuu codul din interiorul său până când terminăm programul. De fiecare dată când se bucură, actualizează fișierul buttonState citind intrarea din buttonPin . În timp ce butonul nu este apăsat, acesta rămâne ÎNALT .

Odată apăsat butonul, buttonState devine SCĂZUT . Acest lucru declanșează afirmatie if , de cand Fals este la fel ca SCĂZUT , iar LED-ul se aprinde. The altceva declarația stinge LED-ul ori de câte ori butonul Pin nu este fals.

Salvați și rulați scriptul

Salvați scriptul făcând clic Fișier> Salvare ca și alegerea unui nume de fișier. Puteți rula schița făcând clic pe verde Joaca din bara de instrumente Thonny.

Acum apăsați butonul și LED-ul dvs. ar trebui 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 configurarea circuitului pentru erori și încercați din nou.

Metoda 2: Biblioteca GPIO Zero

Biblioteca RPi.GPIO este fantastică, dar există un copil nou în bloc. Biblioteca GPIO Zero a fost creat de Ben Nuttall, managerul comunității Raspberry Pi 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.

from gpiozero import LED, Button
from signal import pause

Veți observa că nu ați importat întreaga bibliotecă. Deoarece utilizați doar un LED și un buton, aveți nevoie doar de aceste 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)
button = Button(23)

Deoarece biblioteca GPIO Zero are module pentru LED și buton, nu este nevoie să configurați intrări și ieșiri ca înainte. Veți observa că, deși pinii nu s-au schimbat, numerele de aici sunt diferite de cele de mai sus. Acest lucru se datorează faptului că GPIO Zero folosește numai numerele PIN GPIO (cunoscute și ca numere Broadcom sau BCM).

cum să rotiți un videoclip în Windows

Restul scenariului are doar trei rânduri:

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

The pauză() apel aici oprește pur și simplu scriptul să nu mai iasă când ajunge în partea de jos. Evenimentele cu două butoane sunt declanșate ori de câte ori butonul este apăsat și eliberat. Salvați și rulați scriptul și veți vedea același rezultat ca înainte!

Două moduri de a adăuga un buton la Raspberry Pi

Dintre cele două moduri de configurare a butonului, metoda GPIO Zero pare a fi cea mai ușoară. Încă merită să aflați despre biblioteca RPi.GPIO ca cele mai multe proiecte pentru începători Raspberry Pi foloseste-l. Pe cât de simplu este acest proiect, cunoștințele pot fi folosite pentru mai multe lucruri.

Folosirea pinilor GPIO este o modalitate excelentă de a învăța și de a inventa propriile dispozitive, dar este departe de tot ce puteți face cu Pi. Ghidul nostru neoficial pentru Raspberry Pi este plin de idei creative și tutoriale pe care le puteți încerca singuri! Pentru un alt tutorial ca acesta, verificați cum se face un buton conectat la Wi-Fi .

Acțiune Acțiune Tweet E-mail 5 sfaturi pentru a vă supraîncărca mașinile VirtualBox Linux

V-ați săturat de slaba performanță oferită de mașinile virtuale? Iată ce ar trebui să faceți pentru a vă spori performanța VirtualBox.

Citiți în continuare
Subiecte asemănătoare
  • DIY
  • Raspberry Pi
  • Piton
  • GPIO
  • Tutoriale de proiect DIY
Despre autor Ian Buckley(216 articole publicate)

Ian Buckley este un jurnalist independent, muzician, interpret și producător video care locuiește în Berlin, Germania. Când nu scrie sau pe scenă, se ocupă de electronice sau coduri DIY în speranța de a deveni un om de știință nebun.

Mai multe de la Ian Buckley

Aboneaza-te la newsletter-ul nostru

Alăturați-vă newsletter-ului pentru sfaturi tehnice, recenzii, cărți electronice gratuite și oferte exclusive!

Faceți clic aici pentru a vă abona
Categorie Diy