Hvorfor GPIO Zero er bedre end RPi.GPIO til Raspberry Pi -projekter

Hvorfor GPIO Zero er bedre end RPi.GPIO til Raspberry Pi -projekter

Raspberry Pi er den perfekte computer til læring. Det Linux-baserede Raspbian OS har Python indbygget, hvilket gør det til et godt første system for begyndere. Dens General Purpose Input/Output (GPIO) pins gør det let for spirende producenter at eksperimentere med DIY elektronikprojekter.





Det er især let, når du bruger kodebiblioteker, der styrer disse pins, og det populære RPi.GPIO Python -bibliotek er et glimrende eksempel på et sådant bibliotek. Men er det den bedste vej for begyndere? Vær med, mens vi undersøger.





Hvad er GPIO Zero?

GPIO Zero -biblioteket er et Python -bibliotek til at arbejde med GPIO -pins. Det blev skrevet af Raspberry Pi community manager Ben Nuttall . Formålet er at være intuitivt og 'venligt', og det strømline Python -kode til de fleste almindelige Raspberry Pi -brugstilfælde.





Ved at kombinere simple navngivningspraksis og beskrivende funktioner er GPIO Zero mere tilgængelig for begyndere at forstå. Selv erfarne brugere af RPi.GPIO-biblioteket foretrækker det måske --- og for at forstå hvorfor, lad os tage et kig på, hvordan RPi.GPIO kan sammenlignes med GPIO Zero.

Hvad er der galt med RPi.GPIO?

Ikke noget. Ingenting overhovedet. RPi.GPIO blev udgivet i begyndelsen af ​​2012 af udvikleren Ben Croston. Det er et robust bibliotek, der giver brugerne mulighed for at styre GPIO -ben fra kode. Det indeholder i næsten hvert nybegynderprojekt vi har dækket.



hvordan man importerer afspilningsliste til spotify

På trods af sin omfattende brug blev RPi.GPIO aldrig designet til slutbrugere. Det er et vidnesbyrd om RPi.GPIOs gode design, at så mange begyndere ikke desto mindre bruger det.

Hvad er så godt ved GPIO Zero?

Når du er lære Python -kode , lærer du, at det skal være let at læse og så kort som muligt. GPIO Zero sigter mod at dække begge punkter. Bygget oven på RPi.GPIO som en front-end sprogindpakning, forenkler det GPIO opsætning og brug.





Overvej følgende eksempel, opsætning og tænding af en LED:

Ovenstående kode burde være temmelig velkendt for alle, der har brugte deres Pi til at styre lysdioder .





RPi.GPIO -biblioteket importeres, og en pin til LED'en deklareres. Pin -layouttypen er konfigureret (BCM- og BOARD -tilstand er forklaret i vores GPIO -guide ), og stiften konfigureres som en output. Derefter tændes stiften.

Denne tilgang giver mening, men GPIO Zero -måden at gøre det på er meget enklere:

GPIO Zero har et modul til lysdioder, importeret i starten. Det betyder, at du kan angive pinkoden og ringe til led.on () metode.

hvordan man overfører fra en computer til en anden

Hvorfor er GPIO Zero's tilgang bedre?

Der er nogle grunde til, at denne arbejdsmetode er en forbedring af RPi.GPIO.

For det første opfylder det kravet om 'let at læse, kort som muligt'. Selvom RPi.GPIO -opsætningssætningerne er lette nok at forstå, er de ikke nødvendige. En LED vil altid være en output, så GPIO Zero opsætter benene bag kulisserne. Resultatet er kun tre linjer kode, der skal oprettes, og derefter tænde en LED.

Du vil muligvis bemærke, at der ikke er nogen opsætning af korttilstand i GPIO Zero -eksemplet. Biblioteket bruger kun Broadcom (BCM) nummerering til stifterne. Biblioteksdesigner Ben Nuttall forklarer hvorfor i 2015 RasPi.tv interview :

'BOARD-nummerering kan virke enklere, men jeg vil sige, at det får nye brugere til at tro, at alle pins er generelle formål --- og det er de ikke. Tilslut en LED til pin 11, hvorfor ikke slutte noget mere til pins 1, 2, 3 og 4? Brønd 1 er 3V3. 2 og 4 er 5V. En mangel på bevidsthed om, hvad formålet med stifterne er, kan være farligt. '

Sagt på denne måde giver det absolut mening at bruge BCM -tallene. Da GPIO Zero fremover vil være standard i Raspberry Pi -dokumentationen, er det værd at lære!

Er GPIO Zero faktisk bedre?

Selvom det ser mere ligetil ud på overfladen, har det nye bibliotek dog nogen problemer? Som med ethvert nyt kodningsbibliotek er det et spørgsmål om mening. På den ene side er fjernelse af opsætningskoden fremragende til både begyndere og erfarne kodere. At skrive kode er mere ligetil og hurtigere.

På den anden side er det vigtigt at lære præcis, hvad der foregår. Tag eksemplet med at opsætte en knap fra GPIO Zero dokumentation :

Det knap modul forenkler opsætningen af ​​trykknapper. Det ved, at knapper er input, så bruger det angivne pinkode til opsætning. Det er også lettere at kontrollere, om der er tryk på en knap med . er_presset for at registrere tryk på knapper.

Vi brugte denne nøjagtige funktionalitet i Raspberry Pi knap tutorial , hvilket er en fantastisk måde at sætte sig ind i forskellene på bibliotekerne.

Brugere af RPi.GPIO-biblioteket vil bemærke, at Pi's interne pull-up/pull-down modstande ikke er konfigureret i kode. Dette rejser et interessant spørgsmål. Er det vigtigt for begyndere at vide om pull-up/down-modstande? Igen har Ben Nuttall et svar på dette spørgsmål:

'Du vil måske argumentere for, at det er godt at vide om pull ups og pull downs, og du ville have ret --- men hvorfor skal jeg lære det på dag ét? [...] Hvis du vil lære elektronik i mere dybde er der masser af muligheder for det --- men det burde ikke være obligatorisk, hvis du lige er begyndt. '

I det hele taget er den enkle tilgang til GPIO Zero sandsynligvis en god ting for både begyndere og veteraner. Desuden går RPi.GPIO ingen steder. Det vil altid være der at skifte tilbage til, hvis det er nødvendigt.

Er Python den eneste mulighed?

Python er det sprog, Pi er kendt for, men det er ikke den eneste mulighed. Hvis du allerede kender programmering på C -sproget, så Kabelføring Pi har du dækket.

Alternativt, hvis du allerede programmerer i JavaScript, kan Node.js let installeres på Pi. GPIO -adgang er tilgængelig via rpi-gpio npm bibliotek . Ruby on Rails kan også installeres på Raspberry Pi, selvom Pi muligvis ikke er den bedste måde at lære Rails på!

Alle disse alternativer sammen med flersprogede biblioteker kan lide de fremragende billig kan gøre valg af et bibliotek forvirrende. Det er her GPIO Zero udmærker sig: for begyndere, der spekulerer på, hvordan og hvor de skal starte.

Hvis du er på et tidspunkt, hvor du har brug for noget, den ikke giver, vil du være mere end klar til at dykke ned i disse andre biblioteker i dit eget tempo.

Kom godt i gang med GPIO Zero Yourself

GPIO Zero er det nyeste bibliotek, der giver et stænk til Pi og med god grund. For de fleste brugere gør det kodning til GPIO -pins lettere at læse og hurtigere at skrive.

hvordan man sætter kodeord på flashdrev

I betragtning af Raspberry Pi's brug i uddannelse er alt, der gør læring mere naturligt, en god ting. Mens RPi.GPIO har været perfekt indtil nu, tager GPIO Zero en god idé og gør den endnu bedre.

En god måde at komme i gang med GPIO Zero på er at tage et nybegynderprojekt som Musical Door Sensor og overføre det til det nye bibliotek.

Del Del Tweet E -mail 5 tips til at overlade dine VirtualBox Linux -maskiner

Træt af den dårlige ydelse, der tilbydes af virtuelle maskiner? Her er hvad du skal gøre for at øge din VirtualBox -ydeevne.

Læs Næste
Relaterede emner
  • gør det selv
  • Programmering
  • Hindbær Pi
  • Python
  • GPIO
Om forfatteren Ian Buckley(216 artikler udgivet)

Ian Buckley er freelance journalist, musiker, performer og videoproducent bosat i Berlin, Tyskland. Når han ikke skriver eller på scenen, piller han med DIY -elektronik eller kode i håb om at blive en gal videnskabsmand.

Mere fra Ian Buckley

Abonner på vores nyhedsbrev

Tilmeld dig vores nyhedsbrev for at få tekniske tips, anmeldelser, gratis e -bøger og eksklusive tilbud!

Klik her for at abonnere