Hvorfor GPIO Zero er bedre enn RPi.GPIO for Raspberry Pi -prosjekter

Hvorfor GPIO Zero er bedre enn RPi.GPIO for Raspberry Pi -prosjekter

Raspberry Pi er den perfekte datamaskinen for læring. Det Linux-baserte Raspbian OS har Python innebygd, noe som gjør det til et flott første system for nybegynnere. Dens General Input/Output (GPIO) pins gjør det enkelt for spirende produsenter å eksperimentere med DIY elektronikkprosjekter.





Det er spesielt enkelt når du bruker kodebiblioteker som styrer disse pinnene, og det populære RPi.GPIO Python -biblioteket er et utmerket eksempel på et slikt bibliotek. Men er det den beste veien for nybegynnere? Bli med oss ​​mens vi undersøker.





Hva er GPIO Zero?

GPIO Zero -biblioteket er et Python -bibliotek for arbeid med GPIO -pinner. Det ble skrevet av Raspberry Pi community manager Ben Nuttall . Formålet er å være intuitivt og 'vennlig', og strømlinjeformer Python -koden for de fleste vanlige tilfeller av Raspberry Pi.





Ved å kombinere enkle navnepraksis og beskrivende funksjoner, er GPIO Zero mer tilgjengelig for nybegynnere å forstå. Selv erfarne brukere av RPi.GPIO-biblioteket kan foretrekke det --- og for å forstå hvorfor, la oss ta en titt på hvordan RPi.GPIO sammenligner seg med GPIO Zero.

Hva er galt med RPi.GPIO?

Ingenting. Ingenting i det hele tatt. RPi.GPIO ble utgitt tidlig i 2012 av utvikleren Ben Croston. Det er et robust bibliotek som lar brukerne kontrollere GPIO -pinner fra kode. Den inneholder i nesten hvert nybegynnerprosjekt vi har dekket.



slett filer fra onedrive, men ikke datamaskinen

Til tross for sin omfattende bruk, ble RPi.GPIO aldri designet for sluttbrukere. Det er et bevis på RPi.GPIOs gode design at så mange nybegynnere bruker det likevel.

Hva er så bra med GPIO Zero?

Når du er lære Python -kode , lærer du at den skal være lett å lese og så kort som mulig. GPIO Zero har som mål å dekke begge punktene. Bygget på toppen av RPi.GPIO som en front-end språkinnpakning, forenkler det oppsett og bruk av GPIO.





Tenk på følgende eksempel, sette opp og slå på en LED:

Koden ovenfor bør være ganske kjent for alle som har brukte Pi -en til å kontrollere lysdioder .





RPi.GPIO -biblioteket importeres, og en pin for LED -en deklareres. Pin -layouttypen er konfigurert (BCM og BOARD -modus er forklart i vår GPIO -guide ), og pinnen settes opp som en utgang. Deretter slås pinnen på.

Denne tilnærmingen er fornuftig, men GPIO Zero -måten å gjøre det på er mye enklere:

GPIO Zero har en modul for lysdioder, importert ved starten. Dette betyr at du kan angi PIN -nummeret og ringe led.on () metode.

hvordan se på Netflix langdistanse

Hvorfor er GPIO Zeros tilnærming bedre?

Det er noen grunner til at denne arbeidsmetoden er en forbedring av RPi.GPIO.

For det første oppfyller det kravet om 'lett å lese, kort som mulig'. Selv om RPi.GPIO -oppsettserklæringene er enkle nok å forstå, er de ikke nødvendige. En LED vil alltid være en utgang, så GPIO Zero setter opp pinnene bak kulissene. Resultatet er bare tre linjer med kode å sette opp, så tenner du en LED.

Du vil kanskje legge merke til at det ikke er noe oppsett for brettmodus i eksempelet GPIO Zero. Biblioteket bruker bare Broadcom (BCM) nummerering for pinnene. Biblioteksdesigner Ben Nuttall forklarer hvorfor i 2015 RasPi.tv -intervju :

'BOARD-nummerering kan virke enklere, men jeg vil si at det får nye brukere til å tro at alle pinnene er generelle formål --- og det er de ikke. Koble en LED til pinne 11, hvorfor ikke koble litt mer til pinne 1, 2, 3 og 4? Brønn 1 er 3V3. 2 og 4 er 5V. Mangel på bevissthet om hva formålet med pinnene er, kan være farlig. '

Sagt på denne måten er det absolutt fornuftig å bruke BCM -tallene. Gitt at det GPIO Zero vil være standard i Raspberry Pi -dokumentasjonen fremover, er det verdt å lære!

Er GPIO Zero faktisk bedre?

Selv om det virker mer greit på overflaten, har det nye biblioteket noen problemer? Som med ethvert nytt kodingsbibliotek er det et spørsmål om mening. På den ene siden er fjerning av oppsettskoden utmerket både for nybegynnere og erfarne kodere. Å skrive kode er enklere og raskere.

På den annen side er det viktig å lære nøyaktig hva som skjer. Ta eksemplet med å sette opp en knapp fra GPIO null dokumentasjon :

De knapp modul forenkler oppsettet for trykknapper. Den vet at knappene er innganger, så bruker det deklarerte PIN -nummeret for oppsett. Det er også lettere å se etter knappetrykk med .is_presset for å oppdage knappetrykk.

Vi brukte denne eksakte funksjonaliteten i Raspberry Pi -knappopplæring , som er en fin måte å gjøre deg kjent med forskjellene på bibliotekene.

Brukere av RPi.GPIO-biblioteket vil legge merke til at de interne pull-up/pull-down-motstandene til Pi ikke er satt opp i kode. Dette reiser et interessant spørsmål. Er det viktig for nybegynnere å vite om pull-up/down-motstander? Igjen, Ben Nuttall har et svar på dette spørsmålet:

'Du kan hevde at det er godt å vite om pull ups og pull downs, og du vil ha rett --- men hvorfor må jeg lære det på dag én? [...] Hvis du vil lære elektronikk i mer dybde det er rikelig med rom for det --- men det burde ikke være obligatorisk hvis du bare har begynt. '

I det hele tatt er den enkle tilnærmingen til GPIO Zero sannsynligvis en god ting for både nybegynnere og veteraner. Dessuten kommer RPi.GPIO ingen steder. Den vil alltid være der for å bytte tilbake til om nødvendig.

Er Python det eneste alternativet?

Python er språket Pi er kjent for, men det er ikke det eneste alternativet. Hvis du allerede er kjent med programmering på C -språket, da Kabling Pi har du dekket.

Alternativt, hvis du allerede programmerer i JavaScript, kan Node.js enkelt installeres på Pi. GPIO -tilgang er tilgjengelig via rpi-gpio npm bibliotek . Ruby on Rails kan også installeres på Raspberry Pi, selv om Pi kanskje ikke er den beste måten å lære Rails!

Alle disse alternativene, sammen med flerspråklige biblioteker, liker utmerket billig kan gjøre valg av bibliotek forvirrende. Det er her GPIO Zero utmerker seg: for nybegynnere som lurer på hvordan og hvor de skal begynne.

Hvis du er på et punkt der du trenger noe den ikke gir, vil du være mer enn klar til å dykke ned i disse andre bibliotekene i ditt eget tempo.

Komme i gang med GPIO Zero Yourself

GPIO Zero er det nyeste biblioteket som gjør et sprut for Pi og med god grunn. For de fleste brukere gjør det koding for GPIO -pinner enklere å lese og raskere å skrive.

hvordan organisere startskjermen til ps4

Gitt Raspberry Pi's bruk i utdanning, er alt som gjør læring mer naturlig en god ting. Selv om RPi.GPIO har vært perfekt til nå, tar GPIO Zero en god idé og gjør det enda bedre.

En fin måte å komme i gang med GPIO Zero er å ta et nybegynnerprosjekt som Musical Door Sensor og overføre det til det nye biblioteket.

Dele Dele kvitring E -post 5 tips for å overbelaste VirtualBox Linux -maskinene dine

Lei av den dårlige ytelsen som tilbys av virtuelle maskiner? Her er hva du bør gjøre for å øke VirtualBox -ytelsen.

Les neste
Relaterte temaer
  • DIY
  • Programmering
  • Bringebær Pi
  • Python
  • GPIO
Om forfatteren Ian Buckley(216 artikler publisert)

Ian Buckley er frilansjournalist, musiker, utøver og videoprodusent bosatt i Berlin, Tyskland. Når han ikke skriver eller står på scenen, pusler han med DIY -elektronikk eller kode i håp om å bli en gal forsker.

Mer fra Ian Buckley

Abonner på vårt nyhetsbrev

Bli med i vårt nyhetsbrev for tekniske tips, anmeldelser, gratis ebøker og eksklusive tilbud!

Klikk her for å abonnere