Publicitate

Învățarea de a folosi pinii GPIO de pe Zmeura ta Pi deschide o lume întreagă de posibilități. Principiile de bază învățate prin proiecte pentru începători deschid calea către cunoașterea utilă atât a electronicelor 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 folosit 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, modelul 3B este utilizat în acest tutorial)
  • 1 x Buton apăsat
  • 1 x LED
  • 1 x 220 Ohm Resistor (valorile mai mari sunt bune, LED-ul dvs. va fi doar mai slab)
  • 1 x Panou
  • Conectați fire

Odată adunată, ar trebui să aveți componente care arată cam așa:

Piese necesare pentru tutorialul cu butonul Pi

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 se face acest lucru sunt disponibile în acest videoclip:

instagram viewer

Configurarea circuitului

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

Configurați-vă circuitul conform acestei diagrame:

Diagrama de frecare pentru tutorialul cu butonul Pi
  • 5v și GND pinii se conectează la șinele de alimentare ale plăcii de panou.
  • Pinul 12 (GPIO 18) se conectează la piciorul pozitiv al LED-ului.
  • Un picior al rezistor se atașează de piciorul negativ al LED-ului, iar celălalt picior se atașează la șina de la sol a panoului.
  • Pin 16 (GPIO 23) se atașează de o parte a butonului, cealaltă parte se atașează la șina de la sol a panoului.

După ce este configurat, iată cum ar trebui să arate:

Raspberry Pi s-a agățat până la un buton și LED-ul pe o placă de pâine.

Verificați circuitul pentru a vă asigura că este corect, apoi alimentați-vă zmeura Pi.

Metoda 1: RPi. Biblioteca GPIO

După ce Pi-ul a fost pornit, îndreptați-vă la meniu și selectați Programare> Thonny Python IDE. Se va deschide un nou script Python. Dacă sunteți cu totul nou în Python, este un limbaj minunat pentru începători și există multe locuri minunate pentru a afla mai multe despre Python după ce ai terminat cu acest tutorial!

Thonny Python IDE

Începeți prin a importa RPi. Biblioteca GPIO și setarea modului de bord.

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

Acum declarați variabilele pentru LED-uri și numerele de butoane pentru butoane.

ledPin = 12. butonPin = 16. 

Rețineți că, deoarece avem modul de bord setat pe BORD folosim mai degrabă numerele de pin decât numerele GPIO. Dacă acest lucru vă confuză, o diagramă cu indicatori de zmeură poate ajuta la clarificarea acesteia.

Pin Pi-ul meu

Configurarea butonului

Este timpul să configurați pinii GPIO. Setați pinul LED la ieșire, iar pinul butonului să fie introdus cu un rezistor de tragere

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

Textul după GPIO.IN se referă la rezistență internă de tragere din Zmeura Pi. Trebuie să activați acest lucru pentru a obține o citire curată din buton. Din moment ce butonul se îndreaptă către pivotul de la sol, avem nevoie de o rezistență extrabilă pentru a ține pinul de intrare în sus până când îl apasă.

Înainte de a continua, să ne uităm la rezistențele de ridicare și de derulare.

Intermitere: Rezistențe Trage în sus / Trage în jos

Când configurați un pin GPIO pentru intrare, acesta citește acel pin pentru a-i determina starea. În acest circuit, trebuie să citiți dacă este un pin ÎNALT sau SCĂZUT pentru a declanșa LED-ul la apăsarea butonului. 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: PLUTITOARE.

Un pin flotant are o valoare între mare și scăzut, ceea ce face ca intrarea să acționeze imprevizibil. Rezistențele de tragere / ridicare se rezolvă.

Diagrama de exemplu a rezistenței de extragere

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

Când apăsați butonul, pinul GPIO se conectează direct la pinul de la sol și butonul se afișează jos.

Diagrama de exemplu a rezistenței trageți în jos

Rezistențele de derulare sunt pentru momentul în care comutatorul este conectat la pinul de alimentare. De această dată, rezistorul intern atașează pinul GPIO la sol, ținând apăsat 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 dețin atunci când lucrezi cu microcontrolere. Deocamdată, dacă nu o înțelegeți cu adevărat, nu vă faceți griji!

Să continuăm acolo unde am plecat.

Bucla de program

Apoi, configurați bucla de program:

în timp ce True: buttonState = GPIO.input (buttonPin) if buttonState == False: GPIO.output (ledPin, GPIO.HIGH) altceva: GPIO.output (ledPin, GPIO.LOW)

în timp ce Adevărat bucla rulează continuu codul în el până când terminăm programul. De fiecare dată când se bucle, actualizează 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ă dacă declarație, de cand Fals este la fel ca SCĂZUTși LED-ul se aprinde. altfel instrucțiunea dezactivează 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 File> Save As și alegerea unui nume de fișier. Puteți rula schița făcând clic pe verde Joaca butonul din bara de instrumente Thonny.

Panoul de control Thonny

Apăsați acum butonul și LED-ul dvs. ar trebui să se aprindă! Apăsați roșul Stop buton în orice moment pentru a opri programul

Gif de testare cu buton apăsat

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

RPi. Biblioteca GPIO este fantastică, dar există un copil nou la bloc. Biblioteca GPIO Zero a fost creat de Raspberry Pi, managerul comunității Ben Nuttall cu intenția de a face codul mai simplu și mai ușor de citit și scris.

Pentru a testa noua bibliotecă, deschideți un nou fișier Thonny și importați biblioteca.

de la gpiozero import LED, Button. din pauză de import 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 aceste module din script. De asemenea, importăm Pauză din biblioteca de semnal, care este o bibliotecă Python pentru gestionarea evenimentelor.

Configurarea pinilor este mult mai simplă cu GPIO Zero:

led = LED (18) buton = Buton (23)

Deoarece biblioteca GPIO Zero are module pentru led și buton, nu este necesar 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 doar numerele de pin GPIO (cunoscute și ca numere Broadcom sau BCM).

Restul scriptului are doar trei rânduri:

button.when_pressed = led.on. button.when_released = pauză led.off ()

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

Două modalități de a adăuga un buton la zmeura 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 RPi. Biblioteca GPIO ca cele mai multe proiecte Raspberry Pi începătoare foloseste-l. Oricât de simplu este acest proiect, cunoștințele pot fi utilizate pentru o serie de lucruri.

Utilizarea pinilor GPIO este o modalitate excelentă de a învăța și inventa propriile dispozitive, dar este departe de tot ceea ce poți face cu Pi. Al nostru ghid neoficial pentru zmeura Pi Raspberry Pi: Tutorialul neoficialIndiferent dacă sunteți un proprietar actual de Pi care dorește să învețe mai multe sau un potențial proprietar al acestui dispozitiv de dimensiune a cardului de credit, acesta nu este un ghid pe care doriți să îl pierdeți. Citeste mai mult este plin de idei creative și tutoriale pe care le puteți încerca! Pentru un alt tutorial ca acesta, consultați cum se face un buton conectat Wi-Fi Cum să vă faceți propriul buton conectat la Wi-Fi cu ESP8266În acest tutorial, veți învăța cum să creați un buton activat Wi-Fi folosind NodeMCU și IFTTT. Citeste mai mult .

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