De ce GPIO zero este mai bună decât RPi.GPIO pentru proiectele de zmeură Pi

De ce GPIO zero este mai bună decât RPi.GPIO pentru proiectele de zmeură Pi / Programare

Raspberry Pi este computerul perfect pentru învățare. Sistemul Raspbian bazat pe Linux are built-in Python, ceea ce îl transformă într-un prim sistem excelent pentru coderi începători. Pini de intrare / ieșire generală scop (GPIO) facilitează factorilor care încep să experimenteze proiecte electronice DIY.

Este deosebit de ușor atunci când utilizați biblioteci de coduri care controlează acești pini, iar biblioteca populară RPi.GPIO Python este un exemplu excelent al unei astfel de biblioteci. Dar este cea mai bună cale pentru începători? Alăturați-vă nouă pe măsură ce investigăm.

Ce este GPIO Zero?

Biblioteca GPIO Zero este o bibliotecă Python pentru lucrul cu pinii GPIO. A fost scris de managerul comunității Raspberry Pi Ben Nuttall. Scopul de a fi intuitiv și “prietenos,” acesta simplifică codul Python pentru cele mai frecvente cazuri de utilizare a Raspberry Pi.

Combinând practicile simple de numire și funcțiile descriptive, GPIO Zero este mai accesibil pentru începători să înțeleagă. Chiar și utilizatorii condus de biblioteca RPi.GPIO ar putea prefera - și să înțeleagă de ce, să aruncăm o privire la modul în care RPi.GPIO se compară cu GPIO Zero.

Ce e rău cu RPi.GPIO?

Nimic. Nimic. RPi.GPIO a fost lansat la începutul anului 2012 de dezvoltatorul Ben Croston. Este o bibliotecă robustă care permite utilizatorilor să controleze codurile GPIO din cod. Acesta este proiectat pentru aproape orice proiect incepator Raspberry Pi Proiecte pentru incepatori Raspberry Pi Proiecte pentru incepatori Aceste 10 proiecte Raspberry Pi pentru incepatori sunt excelente pentru a obtine o introducere in hardware-ul si capabilitatile software-ului Pi si te vor ajuta sa te pregatesti in nici un moment timp! Citiți mai multe pe care le-am acoperit.

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

Ce este atât de bun despre GPIO Zero?

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

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

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

Biblioteca RPi.GPIO este importată, iar un LED pentru LED este declarat. Tipul layout-ului PIN este setat (modul BCM și BOARD sunt explicate în ghidul nostru GPIO Tot ce trebuie să știți despre Raspberry Pi GPIO Pins Tot ce trebuie să știți despre Raspberry Pi GPIO Pins Raspberry Pi este un mic computer fantastic, dar ce fac GPIO (General Input / Output) pini fac exact? Pe scurt, ei deschid o lume intreaga de DIY electronice tinkering și invenție (Read More), și pinul este configurat ca o ieșire. Apoi, pinul este pornit.

Această abordare are sens, dar modul GPIO Zero de a face acest lucru 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 apelați A condus la() metodă.

De ce este abordarea GPIO Zero mai bună?

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

În primul rând, se întâlnește “ușor de citit, cât mai scurt posibil” cerinţă. În timp ce instrucțiunile de configurare RPi.GPIO sunt destul de ușor de înțeles, ele nu sunt necesare. Un LED va fi întotdeauna un ieșire, astfel încât GPIO Zero stabilește pinii din spatele scenei. Rezultatul este doar trei linii de cod pentru configurare, apoi aprindeți un LED.

S-ar putea să observați că nu există o configurație a modului de bord în exemplul GPIO Zero. Biblioteca utilizează numai numerotarea Broadcom (BCM) pentru ace. Designerul de bibliotecă Ben Nuttall explică de ce într-un interviu RasPi.tv din 2015:

“Numerotarea prin BOARD ar putea părea mai simplă, dar aș spune că îi determină pe utilizatori noi să creadă că toți acei sunt scop general - și nu sunt. Conectați un LED la pinul 11, de ce să nu mai conectați 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ă.”

Puneți acest lucru, este absolut necesar să utilizați numerele BCM. Având în vedere că GPIO Zero va fi standard în documentația Raspberry Pi înainte, merită să învățați!

Actualul GPIO Zero este mai bun?

În timp ce pare mai simplă 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 codificatori experimentați. Codul de scriere este mai simplu și mai rapid.

Pe de altă parte, cunoașterea exactă a ceea ce se întâmplă este importantă pentru învățare. Luați exemplul de a configura un buton din documentația GPIO Zero:

buton modul simplifică configurarea butoanelor. Știe că butoanele sunt intrări, deci utilizează numărul PIN-ului declarat pentru configurare. De asemenea, este mai ușor să verifici dacă apăsați butonul .is_pressed pentru a detecta apăsarea butoanelor.

Am folosit această funcționalitate exactă în tutorial Pi Raspberry buton 2 moduri de a adăuga un buton la dvs. de zmeură Pi Proiect 2 moduri de a adăuga un buton la dvs. de zmeură Pi Proiect Cum vă conectați un buton la dvs. Pi Zmeura? Iată două modalități de a începe, demonstrate folosind Python și un LED. Citiți mai multe, care este o modalitate excelentă de a vă familiariza cu diferențele din biblioteci.

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

“S-ar putea argumenta că este bine să știți despre trageri și să trageți coborâșuri, și veți avea dreptate - dar de ce trebuie să învăț asta în prima zi? [...] Dacă doriți să învățați electronica în profunzime, există o mulțime de pentru asta - dar nu ar trebui să fie obligatorie dacă începeți.”

În general, 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.

Este Python singura opțiune?

Python este limba pe care Pi este cunoscută, dar nu este singura opțiune. Dacă sunteți deja familiarizați cu programarea în limba C, atunci Wiring Pi vă acoperă.

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

Toate aceste alternative, împreună cu bibliotecile multilingvistice, precum pigpio-ul excelent pot face alegerea unei biblioteci confuză. Aici GPIO Zero excelează: pentru începători care se întreabă cum și unde să înceapă.

Dacă vă aflați într-un punct în care aveți nevoie de ceva pe care nu îl oferă, veți fi mai mult decât pregătiți să vă aruncați în aceste alte biblioteci în ritmul propriu.

Noțiuni de bază cu GPIO Zero Yourself

GPIO Zero este cea mai nouă bibliotecă pentru a face o stropire pentru Pi și pentru un motiv bun. Pentru majoritatea utilizatorilor, codificarea pinilor GPIO simplifică citirea și scrierea mai rapidă.

Având în vedere utilizarea Raspberry Pi în educație, orice lucru care face învățarea 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 chiar mai bună.

O modalitate excelenta de a incepe cu GPIO Zero este sa iei un proiect incepator precum senzorul de usa muzicala. Joaca-ti propria tema Tune cand intri in camera cu zmeura Pi Joaca-ti propria tema Tune cand intri in camera cu zmeura Pi Ati vrut vreodata să ajungă acasă la o întâmpinare personală? În acest proiect simplu Raspberry Pi vom folosi un comutator pentru a declanșa o melodie când se deschide o ușă. Citiți mai multe și transferați-o la noua bibliotecă.

Explorați mai multe despre: GPIO, Python, Raspberry Pi.