Reklame

Raspberry Pi er den perfekte computer til læring. Det Linux-baserede Raspbian OS har Python indbygget, hvilket gør det til et fantastisk første system til begynderkodere. Dens GPIO-stifter til generelle formål gør det let for spirende producenter at eksperimentere med DIY-elektronikprojekter.

Det er især let, når du bruger kodebiblioteker, der kontrollerer disse stifter, og den 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 Nul?

GPIO Zero-biblioteket er et Python-bibliotek til arbejde med GPIO-stifter. Det blev skrevet af Raspberry Pi community manager Ben Nuttall. Målet med at være intuitivt og "venligt" strømline den Python-kode til de fleste regelmæssige Raspberry Pi-brugssager.

Ved at kombinere enkel navnepraksis og beskrivende funktioner er GPIO Zero mere tilgængelig for begyndere at forstå. Selv erfarne brugere af RPi. GPIO-bibliotek foretrækker det muligvis - og for at forstå hvorfor, lad os se på, hvordan RPi. GPIO sammenligner med GPIO Zero.

instagram viewer

Hvad er der galt med RPi. GPIO?

Ikke noget. Ingenting overhovedet. RPI. GPIO blev frigivet i begyndelsen af ​​2012 af udvikler Ben Croston. Det er et robust bibliotek, der giver brugerne mulighed for at kontrollere GPIO-stifter fra kode. Det indeholder i næsten ethvert nybegynderprojekt De 11 bedste hindbær-Pi-projekter for begyndereDisse Raspberry Pi-projekter for begyndere er gode til at komme i gang med funktionerne i enhver Raspberry Pi-model. Læs mere vi har dækket.

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

Hvad er så godt ved GPIO Zero?

Når du er læring af 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 på toppen af ​​RPi. GPIO som en sprogindpakning, der forenkler GPIO-opsætning og -brug.

Overvej følgende eksempel ved at indstille og tænde en LED:

Kode til opsætning og LED til output ved hjælp af RPi. GPIO-bibliotek

Ovenstående kode skal være temmelig velkendt for alle, der har brugte deres Pi til at styre LED'er.

RPi. GPIO-bibliotek importeres, og en pin til LED-en erklæres. Pinlayout-typen er indstillet (BCM- og BOARD-tilstand er forklaret i vores GPIO-guide Alt hvad du behøver at vide om Raspberry Pi GPIO-pinsRaspberry Pi er en fantastisk lille computer, men hvad gør GPIO-stifterne (General Purpose Input / Output) nøjagtigt? Kort sagt åbner de op for en hel verden af ​​elektronisk tinkering og opfindelse af DIY. Læs mere ), og stiften er indstillet som en output. Derefter tændes stiften.

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

Opsætning af en LED med GPIO Zero

GPIO Zero har et modul til LED'er, der importeres i starten. Dette betyder, at du kan angive pin-nummeret og ringe til led.on () metode.

Hvorfor er GPIO Zero's tilgang bedre?

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

For det første opfylder det kravet om "let at læse, kort som muligt". Mens RPi. GPIO-opsætningserklæringer er lette nok til at forstå, de er ikke nødvendige. En LED vil altid være et output, så GPIO Zero sætter stifterne bag kulisserne. Resultatet er kun tre linjer med kode, der skal konfigureres, og tænd derefter en LED.

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

”BOARD-nummerering kan virke enklere, men jeg vil sige, at det får nye brugere til at tro, at alle stifterne er generelle formål - og det er de ikke. Tilslut en LED til pin 11, hvorfor ikke tilslutte nogle mere til ben 1, 2, 3 og 4? Nå 1 er 3V3. 2 og 4 er 5V. Manglende bevidsthed om, hvad formålet med stifterne er, kan være farligt. ”

Sagt på denne måde er det absolut fornuftigt at bruge BCM-numrene. I betragtning af at det GPIO Zero vil være standard i Raspberry Pi-dokumentationen fremover, er det værd at lære!

Er GPIO Nul faktisk bedre?

Selvom det virker mere ligetil på overfladen, har det nye bibliotek 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 for både begyndere og erfarne kodere. At skrive kode er mere ligetil og hurtigere.

På den anden side er det vigtigt for læring at vide nøjagtigt, hvad der foregår. Tag eksemplet med opsætning af en knap fra GPIO Nul-dokumentation:

GPIO nul knap eksempel kode

Det knap modul forenkler opsætningen af ​​trykknapper. Det ved, at knapper er input, så bruger det deklarerede pin-nummer til opsætning. Det er også lettere at kontrollere, om der trykkes på et knap, med .is_pressed for at registrere knaptryk.

Vi brugte denne nøjagtige funktionalitet i Raspberry Pi-knapvejledning 2 måder at føje en knap til dit Raspberry Pi-projekt påHvordan forbinder du en knap til din Raspberry Pi? Her er to måder at komme i gang, demonstreret ved hjælp af Python og en LED. Læs mere , som er en fantastisk måde at gøre dig bekendt med forskellene i bibliotekerne.

Brugere af RPi. GPIO-bibliotek vil bemærke, at de interne pull-up / pull-down modstande på Pi ikke er indstillet 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 svar på dette spørgsmål:

”Du kan muligvis argumentere for, at det er godt at vide om pull-ups og pull-downs, og du har ret - men hvorfor skal jeg undervise det på første dag? […] Hvis du ønsker at undervise i elektronikken mere dybt, der er masser af plads til det - men det burde ikke være obligatorisk, hvis du bare får startede."

I det store og hele er den enkle tilgang til GPIO Zero sandsynligvis en god ting for både begyndere og veteraner. Desuden RPi. GPIO går ikke noget sted. Det vil altid være der for at skifte tilbage til om nødvendigt.

Er Python den eneste mulighed?

Python er det sprog, som Pi er kendt for, men det er ikke den eneste mulighed. Hvis du allerede er bekendt med 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 det fremragende pigpio kan gøre valg af et bibliotek forvirrende. Det er her GPIO Zero udmærker sig: for begyndere, der spørger sig selv, hvordan og hvor de skal starte.

Hvis du er på et punkt, hvor du har brug for noget, det 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 Nul dig selv

GPIO Zero er det nyeste bibliotek til at sprøjte til Pi og med god grund. For de fleste brugere gør det kodning for GPIO-pins enklere at læse og hurtigere at skrive.

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

En god måde at komme i gang med GPIO Zero er at tage et begynderprojekt som Musikalsk dørsensor Afspil dit eget temmelodi, når du kommer ind i lokalet med Raspberry PiHar du nogensinde ønsket at komme hjem til en personlig velkomst? I dette enkle Raspberry Pi-projekt bruger vi en reed-switch til at udløse en melodi, når en dør åbnes. Læs mere og port det til det nye bibliotek.

Ian Buckley er freelance journalist, musiker, kunstner og videoproducent bosiddende i Berlin, Tyskland. Når han ikke skriver eller er på scenen, tænker han med DIY-elektronik eller kode i håbet om at blive en gal videnskabsmand.