Annonse
Raspberry Pi er den perfekte datamaskinen for å lære. Det Linux-baserte Raspbian OS har Python innebygd, noe som gjør det til et flott første system for nybegynnerkodere. GPIO-pennene til generell formål Input / Output (GPIO) gjør det enkelt for spirende produsenter å eksperimentere med DIY-elektronikkprosjekter.
Det er spesielt enkelt når du bruker kodebiblioteker som kontrollerer disse pinnene, og den populære RPi. GPIO Python-bibliotek er et utmerket eksempel på et slikt bibliotek. Men er det den beste veien for nybegynnere? Bli med når 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 samfunnssjef Ben Nuttall. Målet med å være intuitiv og "vennlig", effektiviserer den Python-koden for de fleste vanlige Raspberry Pi-brukstilfeller.
Ved å kombinere enkel navnepraksis og beskrivende funksjoner er GPIO Zero mer tilgjengelig for nybegynnere å forstå. Til og med erfarne brukere av RPi. GPIO-bibliotek foretrekker kanskje det - og for å forstå hvorfor, la oss se på hvordan RPi. GPIO sammenligner med GPIO Zero.
Hva er galt med RPi. GPIO?
Ingenting. Ingenting i det hele tatt. RPI. GPIO ble utgitt i begynnelsen av 2012 av utvikler Ben Croston. Det er et robust bibliotek som lar brukere kontrollere GPIO-pinner fra kode. Den har i nesten alle nybegynnerprosjekter De 11 beste bringebær-pi-prosjektene for nybegynnereDisse Raspberry Pi-prosjektene for nybegynnere er gode for å komme i gang med mulighetene til enhver Raspberry Pi-modell. Les mer vi har dekket.
Til tross for utstrakt bruk, er RPi. GPIO ble aldri designet for sluttbrukere. Det er et testament til RPi. GPIOs gode design som så mange nybegynnere likevel bruker.
Hva er så bra med GPIO Zero?
Når du er lære Python-kode, lærer du at det 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, det forenkler oppsett og bruk av GPIO.
Tenk på følgende eksempel ved å sette opp og slå på en LED:

Koden ovenfor skal være ganske kjent for alle som har det brukte sine Pi til å kontrollere lysdioder.
RPi. GPIO-bibliotek er importert, og en pinne for LED-en deklareres. Pin layout-typen er satt opp (BCM og BOARD-modus er forklart i GPIO-guiden vår Alt du trenger å vite om Raspberry Pi GPIO PinsRaspberry Pi er en fantastisk liten datamaskin, men hva gjør GPIO (General Purpose Input / Output) -nålene nøyaktig? Kort sagt, de åpner for en hel verden av DIY elektronisk tinkering og oppfinnelse. Les mer ), og pinnen er satt 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 i starten. Dette betyr at du kan oppgi pin-nummeret og ringe til led.on () metode.
Hvorfor er GPIO Zero 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 "lettlest, kort som mulig". Mens RPi. GPIO-konfigurasjonsuttalelser er enkle å forstå, de er 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, og deretter tennes en LED.
Du vil kanskje legge merke til at det ikke er noen oppsett for styremodus i GPIO Zero-eksemplet. Biblioteket bruker bare Broadcom (BCM) nummerering for pinnene. Bibliotekdesigner Ben Nuttall forklarer hvorfor i et 2015 RasPi.tv intervju:
"Tavle nummerering kan virke enklere, men jeg vil si det fører til at nye brukere tror at alle pinnene er et generelt formål - og det er de ikke. Koble en LED til pinne 11, hvorfor ikke koble noen flere til pinner 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. "
Sånn sett er det absolutt fornuftig å bruke BCM-tallene. Gitt at 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 alle nye kodebibliotek, er det en mening. På den ene siden er det å fjerne installasjonskoden utmerket for både nybegynnere og erfarne kodere. Å skrive kode er mer enkelt og raskere.
På den annen side er det å vite nøyaktig hva som foregår viktig for å lære. Ta eksempelet med å sette opp en knapp fra GPIO Zero dokumentasjon:

De knapp modulen forenkler oppsettet for trykknapper. Den vet at knapper er innganger, så bruker det deklarerte pinnetallet for oppsett. Det er lettere å se etter et knappetrykk, med .is_pressed for å oppdage knappetrykk.
Vi brukte denne eksakte funksjonaliteten i Raspberry Pi-knappopplæring 2 måter å legge til en knapp til Raspberry Pi-prosjektet dittHvordan kobler du en knapp til Raspberry Pi? Her er to måter å komme i gang, demonstrert ved hjelp av Python og en LED. Les mer , som er en flott måte å sette seg inn i forskjellene i bibliotekene.
Brukere av RPi. GPIO-biblioteket vil merke 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 har Ben Nuttall svar på dette spørsmålet:
"Du kan hevde at det er bra å vite om pull-ups og pull-downs, og at du har rett - men hvorfor må jeg lære det på dag én? [...] Hvis du vil lære elektronikken mer i dybden, det er rikelig med rom for det - men det burde ikke være obligatorisk hvis du bare får gang.”
I det store og hele er sannsynligvis den enkle tilnærmingen til GPIO Zero en god ting for både nybegynnere og veteraner. Dessuten RPi. GPIO kommer ikke noe sted. 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 gjennom 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 de utmerkede pigpio kan gjøre det å velge 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 det 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 skvetter til Pi og med god grunn. For de fleste brukere gjør det kodingen for GPIO-pins enklere å lese og raskere å skrive.
Gitt Raspberry Pis bruk i utdanning, er alt som gjør læring mer naturlig en god ting. Mens RPi. GPIO har vært perfekt fram til nå, GPIO Zero tar en god idé og gjør den enda bedre.
En flott måte å komme i gang med GPIO Zero er å ta et nybegynnerprosjekt som Musikalsk dørsensor Spill din egen tematone når du kommer inn i rommet med Raspberry PiHar du noen gang ønsket å komme hjem til en personlig velkomst? I dette enkle Raspberry Pi-prosjektet bruker vi en vassbryter for å utløse en melodi når en dør åpnes. Les mer og port den til det nye biblioteket.
Ian Buckley er frilansjournalist, musiker, utøver og videoprodusent bosatt i Berlin, Tyskland. Når han ikke skriver eller på scenen, tisser han med DIY-elektronikk eller kode i håp om å bli en gal forsker.