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

Raspberry Pi är den perfekta datorn för inlärning. Det Linux-baserade Raspbian OS har Python inbyggt, vilket gör det till ett utmärkt första system för nybörjare. Dess General Purpose Input/Output (GPIO) stift 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 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? 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 -pins. Den skrevs av Raspberry Pi community manager Ben Nuttall . Syftet är att vara intuitivt och 'vänligt', det effektiviserar Python -koden för de flesta vanliga Raspberry Pi -användningsfall.





Genom att kombinera enkla namngivningsmetoder 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ör sig med GPIO Zero.

Vad är det för fel på RPi.GPIO?

Ingenting. Ingenting alls. RPi.GPIO släpptes i början av 2012 av utvecklaren Ben Croston. Det är ett robust bibliotek som tillåter användare att styra GPIO -stift från kod. Det finns i nästan alla nybörjare vi har täckt.



hur man mailar till ett telefonnummer

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

Vad är så bra med GPIO Zero?

När du är lära sig Python -kod , du lär dig att det ska vara lättläst och så kort som möjligt. GPIO Zero syftar till att täcka båda punkterna. Byggd ovanpå RPi.GPIO som ett front-end språkomslag, förenklar det GPIO-installation och användning.





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

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





RPi.GPIO -biblioteket importeras och en pin för lysdioden deklareras. Stiftlayouttypen är konfigurerad (BCM- och BOARD -läge är förklaras i vår GPIO -guide ), och stiftet konfigureras som en utgång. Därefter slås pinnen på.

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 lysdioder, importerad i början. Det betyder att du kan deklarera pin -numret och ringa till led.on () metod.

vad är halvvägs mellan

Varför är GPIO Zeros tillvägagångssätt bättre?

Det finns några skäl till varför denna arbetsmetod är en förbättring av RPi.GPIO.

För det första uppfyller den kravet ”lättläst, kort som möjligt”. Även om RPi.GPIO -inställningarna är tillräckligt enkla att förstå, är de inte nödvändiga. En LED kommer alltid att vara en utgång, så GPIO Zero ställer in stiften bakom kulisserna. Resultatet är bara tre rader kod att sätta upp, tänd sedan en lysdiod.

Du kanske märker att det inte finns något kortlägesinställning i GPIO Zero -exemplet. Biblioteket använder bara Broadcom (BCM) numrering för stiften. Biblioteksdesignern Ben Nuttall förklarar varför under 2015 RasPi.tv -intervju :

'BOARD-numrering kan tyckas enklare, men jag skulle säga att det får nya användare att tro att alla stiften är för allmänna ändamål --- och det är de inte. Anslut en lysdiod till stift 11, varför inte ansluta lite till stift 1, 2, 3 och 4? Väl 1 är 3V3. 2 och 4 är 5V. En brist på medvetenhet om vad syftet med stiften är kan vara farligt. '

På detta sätt är det helt meningsfullt att använda BCM -numren. Med tanke på att 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 mer enkelt på ytan, har det nya biblioteket några problem? Som med alla nya kodningsbibliotek är det en åsiktsfråga. Å ena sidan är borttagning av installationskoden utmärkt för både nybörjare och erfarna kodare. Att skriva kod är enklare och snabbare.

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

De knapp modulen förenklar inställningen för tryckknappar. Det vet att knapparna är ingångar, så använder det deklarerade PIN -numret för installation. Det är också lättare att leta efter knapptryckningar med .är_pressad för att upptäcka knapptryckningar.

Vi använde denna exakta funktionalitet i Raspberry Pi -knapphandledning , vilket är ett bra sätt att bekanta sig med skillnaderna i biblioteken.

Användare av RPi.GPIO-biblioteket kommer att märka att Pi: s interna pull-up/pull-down-motstånd inte är konfigurerade 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 ett svar på denna fråga:

'Du kanske hävdar 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 elektronik i mer djup finns det gott om utrymme för det --- men det borde inte vara obligatoriskt om du bara har börjat. '

På det stora hela ä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 ingenstans. Det kommer alltid att finnas där att byta tillbaka till om det behövs.

Är Python det enda alternativet?

Python är språket Pi är känt för, men det är inte det enda alternativet. Om du redan är bekant med programmering på C -språket, då Kabeldragning Pi har 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-bibliotek . 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 gillar det utmärkta billig 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 man 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 som gör ett stänk för Pi och med goda skäl. För de flesta användare gör det kodning för GPIO -stift enklare att läsa och snabbare att skriva.

region gratis dvd -spelare bästa köp

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

Ett bra sätt att komma igång med GPIO Zero är att ta ett nybörjarprojekt som Musical Door Sensor och överföra det till det nya biblioteket.

Dela med sig Dela med sig Tweet E-post 5 tips för att ladda dina VirtualBox Linux -maskiner

Trött på den dåliga prestanda som erbjuds av virtuella maskiner? Här är vad du bör göra för att öka din VirtualBox -prestanda.

Läs Nästa
Relaterade ämnen
  • DIY
  • Programmering
  • Raspberry Pi
  • Pytonorm
  • GPIO
Om författaren Ian Buckley(216 artiklar publicerade)

Ian Buckley är frilansjournalist, musiker, artist och videoproducent som bor i Berlin, Tyskland. När han inte skriver eller på scenen, pysslar han med DIY -elektronik eller kod i hopp om att bli en galet forskare.

Mer från Ian Buckley

Prenumerera på vårt nyhetsbrev

Gå med i vårt nyhetsbrev för tekniska tips, recensioner, gratis e -böcker och exklusiva erbjudanden!

Klicka här för att prenumerera