Varför GPIO Zero är bättre än RPi.GPIO för Raspberry Pi Projekt

Varför GPIO Zero är bättre än RPi.GPIO för Raspberry Pi Projekt / Programmering

Raspberry Pi är den perfekta datorn för lärande. Det Linuxbaserade Raspbian OS har Python inbyggt, vilket gör det till ett utmärkt första system för nybörjarkodare. Dess allmänna ändamål för ingång / utgång (GPIO) gör det enkelt för spirande tillverkare att experimentera med DIY-elektronikprojekt.

Det är särskilt enkelt när du använder kodbibliotek som styr dessa stiften, och det populära RPi.GPIO Python-biblioteket är ett utmärkt exempel på ett sådant bibliotek. Men är det den bästa vägen för nybörjare? Följ med oss ​​när vi undersöker.

Vad är GPIO Zero?

GPIO Zero-biblioteket är ett Python-bibliotek för att arbeta med GPIO-pinnar. Det var skrivet av Raspberry Pi community manager Ben Nuttall. Syftar till att vara intuitiv och “vänlig,” det effektiviserar Python-koden för de flesta vanliga Raspberry Pi-användarfall.

Kombinera enkla namnbeteende och beskrivande funktioner är GPIO Zero mer tillgängligt för nybörjare att förstå. Även erfarna användare av biblioteket RPi.GPIO kanske föredrar det - och förstår varför, låt oss ta en titt på hur RPi.GPIO jämför med GPIO Zero.

Vad är fel med RPi.GPIO?

Ingenting. Ingenting alls. RPi.GPIO släpptes i början av 2012 av utvecklaren Ben Croston. Det är ett robust bibliotek som gör det möjligt för användare att styra GPIO-stift från kod. Det finns i nästan varje nybörjareprojekt Raspberry Pi-projekt för nybörjare Raspberry Pi-projekt för nybörjare Dessa 10 Raspberry Pi-projekt för nybörjare är bra för att få en introduktion till Pi-maskinens hårdvaru- och mjukvarukapacitet och hjälper dig att komma igång i nej tid! Läs mer vi har täckt.

Trots sin omfattande användning är RPi.GPIO aldrig konstruerad för slutanvändare. Det är ett testamente till RPi.GPIOs bra design som så många nybörjare använder det ändå.

Vad är så bra om GPIO Zero?

När du läser Python-kod lär du dig att det ska vara lätt att läsa och så kort som möjligt. GPIO Zero syftar till att täcka båda punkterna. Byggd på toppen av RPi.GPIO som ett inbyggt språkomslag, förenklar det GPIO-inställningen och användningen.

Tänk på följande exempel, sätt på och slå på en LED:

Ovanstående kod ska vara ganska bekant för alla som har använt deras Pi för att styra lysdioder.

Biblioteket RPi.GPIO importeras, och en PIN-kod för LED-lampan förklaras. Pin-layouttypen är inställd (BCM och BOARD-läge förklaras i vår GPIO-guide Allt du behöver veta om hallon Pi GPIO-stift Allt du behöver veta om hallon Pi GPIO-stift Raspberry Pi är en fantastisk liten dator, men vad gör GPIO (General Purpose Input / Output) -stift gör exakt? Kort sagt, de öppnar upp en hel värld av DIY elektronisk tinkering och uppfinning. Läs mer) och stiftet ställs in som en utgång. Då är stiftet påslagen.

Detta tillvägagångssätt är meningsfullt, men GPIO Zero-sättet att göra det är mycket enklare:

GPIO Zero har en modul för LED, importerad i början. Det betyder att du kan deklarera stiftnumret och ringa till led.on () metod.

Varför är GPIO Zero's Approach Better?

Det finns några anledningar till varför denna arbetsmetod är en förbättring på RPi.GPIO.

För det första uppfyller den “lätt att läsa, kort som möjligt” krav. Medan installationsinställningarna för RPi.GPIO är lätta att förstå är de inte nödvändiga. En LED kommer alltid att vara en utgång, så GPIO Zero sätter upp stiften bakom kulisserna. Resultatet är bara tre rader med kod för att ställa in, tänd sedan en LED.

Du kanske märker att det inte finns någon styrläge inställning i GPIO Zero-exemplet. Biblioteket använder endast Broadcom (BCM) nummerering för stiften. Bibliotekdesignern Ben Nuttall förklarar varför i en RasPi.tv-intervju 2015:

“BOARD nummerering kan tyckas enklare men jag skulle säga att det leder nya användare att tro att alla stiften är allmänna ändamål-och det är de inte. Anslut en LED till stift 11, varför anslut inte några till stift 1, 2, 3 och 4? Tja 1 är 3V3. 2 och 4 är 5V. Brist på medvetenhet om vad syftet med tapparna är kan vara farligt.”

Sätt på det här sättet, det gör absolut mening att använda BCM-numren. Med tanke på att GPIO Zero kommer att vara standard i Raspberry Pi dokumentationen framåt, är det värt att lära!

Är GPIO Zero faktiskt bättre?

Även om det verkar mer enkelt på ytan, har det nya biblioteket några problem? Som med något nytt kodningsbibliotek är det en fråga om åsikt. Å ena sidan är borttagning av inställningskoden utmärkt för nybörjare och krydda kodare. Skriv kod är enklare och snabbare.

Å andra sidan, att veta exakt vad som händer är viktigt för lärande. Ta exempel på att skapa en knapp från GPIO Zero dokumentationen:

De knapp modulen förenklar inställningen för tryckknappar. Det vet att knapparna är ingångar, så använder det angivna pinnumret för installation. Det är lättare att kontrollera om du trycker på knappen, med .is_pressed att upptäcka knapptryckningar.

Vi använde denna exakta funktionalitet i Raspberry Pi-knappens handledning. 2 sätt att lägga till en knapp till din Raspberry Pi-projekt. 2 sätt att lägga till en knapp till din Raspberry Pi-projekt. Hur kopplar du en knapp till din Raspberry Pi? Här är två sätt att komma igång, demonstrerade med Python och en LED. Läs mer, vilket är ett utmärkt sätt att bekanta dig med skillnaderna i biblioteken.

Användare av biblioteket RPi.GPIO kommer att märka att de interna uppdragen / neddragningsmotstånden hos Pi inte är inställda i kod. Detta väcker en intressant fråga. Är det viktigt för nybörjare att veta om drag-up / down motstånd? Återigen har Ben Nuttall ett svar på denna fråga:

“Du kan argumentera för att det är bra att veta om pull ups och pull downs, och du skulle ha rätt - men varför måste jag lära mig det på dag ett? [...] Om du vill lära dig elektroniken i djup finns det gott om räckvidd för det - men det borde inte vara obligatoriskt om du bara har börjat.”

På det hela taget är det enkla sättet att GPIO Zero är en bra sak för både nybörjare och veteraner. Dessutom går RPi.GPIO inte någonstans. Det kommer alltid att finnas där för att byta tillbaka till vid behov.

Är Python den enda möjligheten?

Python är det språk som Pi är känt för, men det är inte det enda alternativet. Om du redan är bekant med programmering på C-språket, har Wiring Pi du täckt.

Alternativt, om du redan programmerar i JavaScript, kan Node.js enkelt installeras på Pi. GPIO-åtkomst är tillgänglig via biblioteket rpi-gpio npm. Ruby on Rails kan också installeras på Raspberry Pi, men Pi kanske inte är det bästa sättet att lära sig Rails!

Alla dessa alternativ, tillsammans med flera språk bibliotek som den utmärkta pigpio kan göra att välja ett bibliotek förvirrande. Det är här GPIO Zero utmärker: för nybörjare undrar hur och var du ska börja.

Om du är på en punkt där du behöver något som det inte ger, kommer du att vara mer än redo att dyka in i dessa andra bibliotek i din egen takt.

Komma igång med GPIO Zero Yourself

GPIO Zero är det nyaste biblioteket för att göra ett stänk för Pi och med god anledning. För de flesta användare gör det kodning för GPIO-stiften enklare att läsa och snabbare att skriva.

Med tanke på Raspberry Pis användning i utbildning är allt som gör lärandet mer naturligt en bra sak. Medan RPi.GPIO har varit perfekt fram till nu, tar GPIO Zero en bra idé och gör den ännu bättre.

Ett bra sätt att komma igång med GPIO Zero är att ta ett nybörjareprojekt som den musikaliska dörrkännaren Spela din egen tematune när du går in i rummet med hallon Pi Spela ditt eget tema Tune när du går in i rummet med hallon Pi Har du någonsin velat att komma hem till ett personligt välkomnande? I det här enkla Raspberry Pi-projektet använder vi en reed switch för att utlösa en melodi när en dörr öppnas. Läs mer och skicka det till det nya biblioteket.

Utforska mer om: GPIO, Python, Raspberry Pi.