RPi.GPIO Python-biblioteket är standard för programmering av Raspberry Pis GPIO-stift, men GPIO Zero är utan tvekan bättre.

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

Annons Raspberry Pi är den perfekta datorn för lärande. Det Linuxbaserade Raspbian OS har Python inbyggt, vilket gör det till ett fantastiskt första system för nybörjarkodare. GPIO-stiften för allmänna ändamål (GPIO) gör det enkelt för spirande tillverkare att experimentera med DIY-elektronikprojekt. Det är särs

Annons

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

Det är särskilt lätt när du använder kodbibliotek som styr dessa stift 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? Gå med oss ​​när vi undersöker.

Vad är GPIO Zero?

GPIO Zero-biblioteket är ett Python-bibliotek för att arbeta med GPIO-stift. Det skrevs av Raspberry Pi community manager Ben Nuttall. Syftet till att vara intuitivt och "vänligt", det effektiviserar Python-kod för de flesta vanliga Raspberry Pi-användningsfall.

Genom att kombinera enkla namngivningspraxis och beskrivande funktioner är GPIO Zero mer tillgängligt för nybörjare att förstå. Även erfarna användare av RPi.GPIO-biblioteket kanske föredrar det - och för att förstå varför, låt oss ta en titt på hur RPi.GPIO jämförs 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 låter användare styra GPIO-stift från kod. Den har i nästan alla nybörjare projekt De 11 bästa Raspberry Pi-projekten för nybörjare De 11 bästa Raspberry Pi-projekten för nybörjare Dessa Raspberry Pi-projekt för nybörjare är utmärkta för att komma igång med alla Raspberry Pi-modeller. Läs mer vi har täckt.

Trots dess omfattande användning var RPi.GPIO aldrig utformad för slutanvändare. Det är ett bevis på RPi.GPIOs bra design som så många nybörjare ändå använder den.

Vad är så bra med GPIO Zero?

När du lär dig 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. Byggt ovanpå RPi.GPIO som ett front-end språkomslag, förenklar det GPIO-installation och användning.

Tänk på följande exempel genom att ställa in och slå på en LED:

Kod för att ställa in och LED för att mata ut med RPi.GPIO-biblioteket

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

RPi.GPIO-biblioteket importeras och en stift för lysdioden deklareras. Typen av pin-layout är inställd (BCM- och BOARD-läget förklaras i vår GPIO-guide. Allt du behöver veta om Raspberry Pi GPIO-pins Allt du behöver veta om Raspberry Pi GPIO-pins Raspberry Pi är en fantastisk liten dator, men vad gör GPIO-stiften (General Purpose Input / Output) gör exakt? Kort sagt, de öppnar upp en hel värld av elektronisk klingning och uppfinningen av DIY. Läs mer), och stiftet ställs in som en utgång. Därefter sätts stiftet på.

Denna metod är meningsfull, men GPIO Zero-sättet att göra det är mycket enklare:

Ställa in en LED med GPIO Zero

GPIO Zero har en modul för lysdioder som importeras i början. Detta innebär att du kan ange stiftnumret och ringa metoden led.on () .

Varför är GPIO Zero: s strategi bättre?

Det finns några orsaker till att denna arbetsmetod är en förbättring av RPi.GPIO.

För det första uppfyller det kravet på ”lättläst, kort som möjligt”. Även om RPi.GPIO-inställningarna är enkla 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 kodrader som ska konfigureras, tänd sedan en LED.

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

”BOARD-numrering kanske verkar enklare, men jag skulle säga att det leder till att nya användare tror att alla stift är allmänna ändamål - och det är de inte. Anslut en lysdiod till stift 11, varför inte ansluta lite mer till stift 1, 2, 3 och 4? Brunn 1 är 3V3. 2 och 4 är 5V. En bristande medvetenhet om vad syftet med stiften är kan vara farligt. ”

På detta sätt är det absolut vettigt att använda BCM-siffrorna. Med tanke på att det GPIO Zero kommer att vara standard i Raspberry Pi-dokumentationen framöver, är det värt att lära sig!

Är GPIO Zero faktiskt bättre?

Även om det verkar rakt fram på ytan, har det nya biblioteket inga problem? Som med alla nya kodningsbibliotek är det en åsiktfråga. Å ena sidan är att ta bort installationskoden utmärkt för både nybörjare och rutinerade kodare. Att skriva kod är mer enkelt och snabbare.

Å andra sidan är det viktigt att lära sig att veta exakt vad som händer. Ta exemplet med att ställa in en knapp från GPIO Zero-dokumentationen:

GPIO Zero Button exempelkod

Knappmodulen förenklar inställningen för tryckknappar. Det vet att knapparna är ingångar, så använder det deklarerade stiftnumret för installation. Det är också lättare att kontrollera om ett knapptryck görs, med .is_pressed för att upptäcka knapptryckningar.

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

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

"Du kan hävda 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 det på dag ett? [...] Om du vill lära dig elektroniken mer djup finns det mycket utrymme för det - men det borde inte vara obligatoriskt om du bara kommer igång. ”

Sammantaget är det enkla tillvägagångssättet för GPIO Zero sannolikt bra för både nybörjare och veteraner. Dessutom går RPi.GPIO inte någonstans. Den kommer alltid att vara där för att växla tillbaka till vid behov.

Är Python det enda alternativet?

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 rpi-gpio npm-biblioteket. Ruby on Rails kan också installeras på Raspberry Pi, även om Pi kanske inte är det bästa sättet att lära sig Rails!

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

Om du befinner dig i en punkt där du behöver något som det inte tillhandahåller kommer du 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 som gör en stänk för Pi och med goda skäl. För de flesta användare gör det kodningen för GPIO-stift enklare att läsa och snabbare att skriva.

Med tanke på Raspberry Pis användning i utbildning är allt som gör lärande mer naturligt bra. 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 Musical Door Sensor Spela ditt eget tematune när du kommer in i rummet med Raspberry Pi Spela ditt eget tematime När du kommer in i rummet med Raspberry Pi Har du någonsin velat att komma hem för ett personligt välkomnande? I detta enkla Raspberry Pi-projekt 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.