Hvorfor GPIO Nul er bedre end RPi.GPIO til Raspberry Pi-projekter
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 det populære RPi.GPIO Python-bibliotek er et fremragende eksempel på et sådant bibliotek. Men er det den bedste vej for begyndere? Deltag i os, 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-biblioteket foretrækker det muligvis - og for at forstå hvorfor, lad os se på, hvordan RPi.GPIO sammenlignes med GPIO Zero.
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 næsten ethvert nybegynderprojekt De 11 bedste Raspberry Pi-projekter for begyndere De 11 bedste Raspberry Pi-projekter til begyndere Disse Raspberry Pi-projekter til begyndere er dejlige til at komme i gang med mulighederne i enhver Raspberry Pi-model. Læs mere, vi har dækket.
På trods af dens omfattende brug var 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 lærer 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 i front-end, forenkler det GPIO-opsætning og -brug.
Overvej følgende eksempel ved at indstille og tænde en LED:
Ovenstående kode skal være temmelig velkendt for alle, der har brugt deres Pi til at kontrollere LED'er.
RPi.GPIO-biblioteket importeres, og en pin til LED-en erklæres. Pin-layouttypen er indstillet (BCM- og BOARD-tilstand forklares i vores GPIO-guide. Alt hvad du behøver at vide om Raspberry Pi GPIO-pins Alt du har brug for at vide om Raspberry Pi GPIO-pins Raspberry Pi er en fantastisk lille computer, men hvad gør GPIO-stifterne (General Purpose Input / Output) gør nøjagtigt? Kort sagt åbner de en hel verden af DIY elektronisk klipning og opfindelse. Læs mere), og stiften er oprettet som en output. Derefter tændes stiften.
Denne tilgang giver mening, men GPIO Zero måde at gøre det på er meget enklere:
GPIO Zero har et modul til LED'er, der importeres i starten. Dette betyder, at du kan angive pin-nummeret og kalde metoden led.on () .
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æringerne er lette nok til at forstå, er de 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 RasPi.tv-interview i 2015:
”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 Zero-dokumentationen:
Knappemodulet 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_presset for at registrere knaptryk.
Vi brugte denne nøjagtige funktionalitet i Raspberry Pi-knapvejledningen 2 måder at føje en knap til dit Raspberry Pi-projekt 2 måder til at føje en knap til dit Raspberry Pi-projekt Hvordan tilslutter du en knap til dit 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-biblioteket 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 ville have ret - men hvorfor skal jeg undervise om det på første dag? […] Hvis du vil undervise i elektronikken mere dybt, er der masser omfanget til det - men det burde ikke være obligatorisk, hvis du lige er kommet i gang. ”
I det store og hele er den enkle tilgang til GPIO Zero sandsynligvis en god ting for både begyndere og veteraner. Desuden går RPi.GPIO 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 kender programmering på C-sproget, har Wiring Pi 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-biblioteket. 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 som den fremragende pigpio kan gøre det forvirrende at vælge et bibliotek. Det er her GPIO Zero udmærker sig: for begyndere, der spekulerer på, 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 af GPIO-pins nemmere 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 indtil nu har været perfekt, tager GPIO Zero en god idé og gør den endnu bedre.
En god måde at komme i gang med GPIO Zero er at tage et nybegynderprojekt som Musical Door Sensor Spil din egen tematone, når du kommer ind i rummet med Raspberry Pi Spil din egen Theme melodi, når du kommer ind i rummet med Raspberry Pi Har 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.
Udforsk mere om: GPIO, Python, Raspberry Pi.