De ce GPIO Zero este mai bun decât RPi.GPIO pentru proiectele Raspberry Pi

De ce GPIO Zero este mai bun decât RPi.GPIO pentru proiectele Raspberry Pi

Raspberry Pi este computerul perfect pentru învățare. Sistemul de operare Raspbian bazat pe Linux are Python încorporat, ceea ce îl face un prim sistem excelent pentru programatorii începători. Pinii săi de intrare / ieșire cu scop general (GPIO) facilitează experimentarea proiectelor electronice DIY pentru producătorii în devenire.





Este deosebit de ușor atunci când utilizați biblioteci de coduri care controlează acești pini, iar populara bibliotecă RPi.GPIO Python este un exemplu excelent de astfel de bibliotecă. Dar este cea mai bună cale pentru începători? Alătură-te nouă în timp ce investighăm.





Ce este GPIO Zero?

Biblioteca GPIO Zero este o bibliotecă Python pentru lucrul cu pinii GPIO. A fost scris de Manager comunitate Raspberry Pi Ben Nuttall . Destinat să fie intuitiv și „prietenos”, acesta eficientizează codul Python pentru cele mai obișnuite cazuri de utilizare Raspberry Pi.





Combinând practici simple de denumire și funcții descriptive, GPIO Zero este mai accesibil pentru începători. Chiar și utilizatorii experimentați ai bibliotecii RPi.GPIO o pot prefera --- și pentru a înțelege de ce, să aruncăm o privire la modul în care RPi.GPIO se compară cu GPIO Zero.

Ce este greșit cu RPi.GPIO?

Nimic. Nimic. RPi.GPIO a fost lansat la începutul anului 2012 de către dezvoltatorul Ben Croston. Este o bibliotecă robustă care permite utilizatorilor să controleze pinii GPIO din cod. Prezintă în aproape fiecare proiect pentru începători am acoperit.



aplicație GPS pentru Android fără internet

În ciuda utilizării sale extinse, RPi.GPIO nu a fost niciodată conceput pentru utilizatorii finali. Este o dovadă a designului bun al RPi.GPIO că atât de mulți începători îl folosesc totuși.

Ce este atât de bun la GPIO Zero?

Când ești învățarea codului Python , aflați că ar trebui să fie ușor de citit și cât mai scurt posibil. GPIO Zero își propune să acopere ambele puncte. Construit pe partea de sus a RPi.GPIO ca un ambalaj de limbaj frontal, simplifică configurarea și utilizarea GPIO.





Luați în considerare următorul exemplu, configurarea și pornirea unui LED:

Codul de mai sus ar trebui să fie destul de familiar pentru oricine are și-au folosit Pi pentru a controla LED-urile .





Biblioteca RPi.GPIO este importată și este declarat un pin pentru LED. Tipul de aspect pin este configurat (BCM și modul BOARD sunt explicat în ghidul nostru GPIO ), iar pinul este configurat ca ieșire. Apoi, pinul este pornit.

Această abordare are sens, dar modul de a face GPIO Zero este mult mai simplu:

GPIO Zero are un modul pentru LED-uri, importat la început. Aceasta înseamnă că puteți declara numărul PIN și puteți apela A condus la() metodă.

ascultați muzică cu prietenii în același timp

De ce este mai bună abordarea GPIO Zero?

Există câteva motive pentru care această metodă de lucru este o îmbunătățire a RPi.GPIO.

În primul rând, îndeplinește cerința „ușor de citit, cât mai scurt posibil”. În timp ce instrucțiunile de configurare RPi.GPIO sunt ușor de înțeles, nu sunt necesare. Un LED va fi întotdeauna o ieșire, astfel încât GPIO Zero configurează pinii din culise. Rezultatul este doar trei linii de cod pentru configurare, apoi aprindeți un LED.

Este posibil să observați că nu există o configurare a modului de placă în exemplul GPIO Zero. Biblioteca folosește numai numerotarea Broadcom (BCM) pentru pini. Proiectantul bibliotecii Ben Nuttall explică de ce într-un 2015 Interviul RasPi.tv :

„Numerotarea BOARD-ului ar putea părea mai simplă, dar aș spune că îi determină pe utilizatorii noi să creadă că toți pinii au un scop general --- și nu sunt. Conectați un LED la pinul 11, de ce să nu conectați mai multe la pinii 1, 2, 3 și 4? Ei bine, 1 este 3V3. 2 și 4 sunt 5V. O lipsă de conștientizare a scopului pinilor poate fi periculoasă. '

Astfel, este absolut logic să folosiți numerele BCM. Având în vedere că GPIO Zero va fi standard în documentația Raspberry Pi în viitor, merită învățat!

GPIO Zero este de fapt mai bun?

Deși pare mai simplu la suprafață, noua bibliotecă are probleme? Ca și în cazul oricărei noi biblioteci de codificare, este o chestiune de opinie. Pe de o parte, eliminarea codului de configurare este excelentă atât pentru începători, cât și pentru programatorii experimentați. Scrierea codului este mai simplă și mai rapidă.

Pe de altă parte, cunoașterea exactă a ceea ce se întâmplă este importantă pentru învățare. Luați exemplul configurării unui buton din Documentație GPIO Zero :

The buton modulul simplifică configurarea butoanelor. Știe că butoanele sunt intrări, așa că folosește numărul de pin declarat pentru configurare. Verificarea apăsării unui buton este și mai ușoară, cu ajutorul .este_presionat pentru a detecta apăsarea butoanelor.

Am folosit această funcționalitate exactă în Tutorial buton Raspberry Pi , care este o modalitate excelentă de a vă familiariza cu diferențele din biblioteci.

Utilizatorii bibliotecii RPi.GPIO vor observa că rezistențele interne pull-up / pull-down ale Pi nu sunt configurate în cod. Acest lucru ridică o întrebare interesantă. Este esențial pentru începători să știe despre rezistențele pull-up / down? Din nou, Ben Nuttall are un răspuns la această întrebare:

„Ați putea susține că este bine să știți despre trageri și coborâri și ați avea dreptate --- dar de ce trebuie să învăț asta în prima zi? [...] Dacă doriți să predați electronica în mai multă profunzime, există o mulțime de posibilități pentru asta --- dar nu ar trebui să fie obligatoriu dacă tocmai începeți. '

În ansamblu, abordarea simplă a GPIO Zero este probabil un lucru bun atât pentru începători, cât și pentru veterani. În plus, RPi.GPIO nu merge nicăieri. Va fi întotdeauna acolo pentru a reveni la, dacă este necesar.

Python este singura opțiune?

Python este limba pentru care este cunoscut Pi, dar nu este singura opțiune. Dacă sunteți deja familiarizați cu programarea în limbajul C, atunci Cablare Pi te-a acoperit.

Alternativ, dacă programați deja în JavaScript, Node.js poate fi instalat cu ușurință pe Pi. Accesul GPIO este disponibil prin biblioteca rpi-gpio npm . Ruby on Rails poate fi instalat și pe Raspberry Pi, deși este posibil ca Pi să nu fie cel mai bun mod de a învăța Rails!

Toate aceste alternative, împreună cu bibliotecile în mai multe limbi, precum excelentul ieftin poate face confuză alegerea unei biblioteci. Aici excelează GPIO Zero: pentru începătorii care se întreabă cum și de unde să înceapă.

Dacă vă aflați într-un moment în care aveți nevoie de ceva ce nu vă oferă, veți fi mai mult decât gata să vă scufundați în aceste alte biblioteci în ritmul dvs.

Noțiuni introductive despre GPIO Zero Yourself

GPIO Zero este cea mai nouă bibliotecă care a făcut un plus pentru Pi și cu un motiv întemeiat. Pentru majoritatea utilizatorilor, codificarea pinilor GPIO este mai ușor de citit și mai rapid de scris.

cum să obțineți un tapet animat

Având în vedere utilizarea Raspberry Pi în educație, orice lucru care face ca învățarea să fie mai naturală este un lucru bun. În timp ce RPi.GPIO a fost perfect până acum, GPIO Zero are o idee bună și o face și mai bună.

O modalitate excelentă de a începe cu GPIO Zero este de a lua un proiect pentru începători, cum ar fi senzorul de ușă muzicală și de a-l transporta în noua bibliotecă.

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ă îmbunătăți performanța VirtualBox.

Citiți în continuare
Subiecte asemănătoare
  • DIY
  • Programare
  • Raspberry Pi
  • Piton
  • GPIO
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