De RPi.GPIO Python-bibliotheek is standaard voor het programmeren van de GPIO-pins van de Raspberry Pi, maar GPIO Zero is aantoonbaar beter.

Waarom GPIO Zero beter is dan RPi.GPIO voor Raspberry Pi-projecten

Advertentie De Raspberry Pi is de perfecte computer om te leren. Het Linux-gebaseerde Raspbian-besturingssysteem heeft Python ingebouwd, waardoor het een geweldig eerste systeem is voor beginnende coders. De GPIO-pins (General Purpose Input / Output) maken het voor beginnende makers gemakkelijk om te experimenteren met doe-het-zelf-elektronica-projecten

Advertentie

De Raspberry Pi is de perfecte computer om te leren. Het Linux-gebaseerde Raspbian-besturingssysteem heeft Python ingebouwd, waardoor het een geweldig eerste systeem is voor beginnende coders. De GPIO-pins (General Purpose Input / Output) maken het voor beginnende makers gemakkelijk om te experimenteren met doe-het-zelf-elektronica-projecten.

Het is vooral gemakkelijk wanneer u codebibliotheken gebruikt die deze pinnen besturen, en de populaire RPi.GPIO Python-bibliotheek is een uitstekend voorbeeld van een dergelijke bibliotheek. Maar is het het beste pad voor beginners? Doe mee terwijl we onderzoeken.

Wat is GPIO nul?

De GPIO Zero-bibliotheek is een Python-bibliotheek voor het werken met GPIO-pinnen. Het is geschreven door Raspberry Pi-communitymanager Ben Nuttall. Gericht op intuïtief en "vriendelijk", stroomlijnt het Python-code voor de meeste reguliere Raspberry Pi-gebruiksscenario's.

GPIO Zero combineert eenvoudige naamgevingspraktijken en beschrijvende functies en is toegankelijker voor beginners om te begrijpen. Zelfs doorgewinterde gebruikers van de RPi.GPIO-bibliotheek kunnen er de voorkeur aan geven - en om te begrijpen waarom, laten we eens kijken hoe RPi.GPIO zich verhoudt tot GPIO Zero.

Wat is er mis met RPi.GPIO?

Niets. Helemaal niets. RPi.GPIO werd begin 2012 uitgebracht door ontwikkelaar Ben Croston. Het is een robuuste bibliotheek waarmee gebruikers GPIO-pinnen kunnen bedienen vanuit code. Het komt voor in bijna elk beginnersproject De 11 beste Raspberry Pi-projecten voor beginners De 11 beste Raspberry Pi-projecten voor beginners Deze Raspberry Pi-projecten voor beginners zijn geweldig om aan de slag te gaan met de mogelijkheden van elk Raspberry Pi-model. Lees meer die we hebben behandeld.

Ondanks het uitgebreide gebruik is RPi.GPIO nooit ontworpen voor eindgebruikers. Het is een bewijs van het goede ontwerp van RPi.GPIO dat zoveel beginners het toch gebruiken.

Wat is er zo goed aan GPIO Zero?

Als je Python-code leert, leer je dat deze gemakkelijk te lezen en zo kort mogelijk moet zijn. GPIO Zero beoogt beide punten te dekken. Gebouwd bovenop RPi.GPIO als een front-end taalomslag, vereenvoudigt het GPIO-installatie en -gebruik.

Overweeg het volgende voorbeeld, een LED instellen en inschakelen:

In te stellen code en LED voor uitvoer met behulp van de RPi.GPIO-bibliotheek

De bovenstaande code moet redelijk bekend zijn voor iedereen die zijn Pi heeft gebruikt om LED's te bedienen.

De RPi.GPIO-bibliotheek wordt geïmporteerd en een pin voor de LED wordt aangegeven. Het type pin-indeling is ingesteld (de modus BCM en BOARD worden uitgelegd in onze GPIO-gids Alles wat u moet weten over Raspberry Pi GPIO Pins Alles wat u moet weten over Raspberry Pi GPIO Pins De Raspberry Pi is een fantastische kleine computer, maar wat doen de GPIO-pinnen (General Purpose Input / Output) doen het precies? Kortom, ze openen een hele wereld van DIY elektronisch knutselen en uitvinden. Lees meer), en de pin is ingesteld als een output. Vervolgens wordt de pin ingeschakeld.

Deze aanpak is logisch, maar de GPIO Zero-manier om het te doen is veel eenvoudiger:

Een LED instellen met GPIO Zero

GPIO Zero heeft een module voor LED's, geïmporteerd in het begin. Dit betekent dat u het pincode kunt aangeven en de methode led.on () kunt aanroepen.

Waarom is de aanpak van GPIO Zero beter?

Er zijn enkele redenen waarom deze manier van werken een verbetering is op RPi.GPIO.

In de eerste plaats voldoet het aan de eis "gemakkelijk te lezen, zo kort mogelijk". Hoewel de installatie-instructies van de RPi.GPIO eenvoudig genoeg zijn om te begrijpen, zijn ze niet noodzakelijk. Een LED zal altijd een uitgang zijn, dus GPIO Zero plaatst de pinnen achter de schermen. Het resultaat is slechts drie regels code om in te stellen en vervolgens een LED aan te steken.

Het zal je misschien opvallen dat er in het GPIO Zero-voorbeeld geen bordmodusinstelling is. De bibliotheek gebruikt alleen Broadcom (BCM) nummering voor de pinnen. Bibliotheekontwerper Ben Nuttall legt uit waarom in een 2015 RasPi.tv-interview:

“BOARD-nummering lijkt misschien eenvoudiger, maar ik zou zeggen dat het nieuwe gebruikers ertoe brengt te denken dat alle pinnen een algemeen doel hebben - en dat zijn ze niet. Sluit een LED aan op pin 11, waarom niet nog wat op pin 1, 2, 3 en 4? Nou 1 is 3V3. 2 en 4 zijn 5V. Een gebrek aan bewustzijn van wat het doel van de pinnen is, kan gevaarlijk zijn. "

Op deze manier is het absoluut zinvol om de BCM-nummers te gebruiken. Gezien het feit dat het GPIO Zero standaard zal zijn in de Raspberry Pi-documentatie, is het de moeite waard om te leren!

Is GPIO Zero eigenlijk beter?

Hoewel het op het eerste gezicht eenvoudiger lijkt, heeft de nieuwe bibliotheek dan problemen? Zoals bij elke nieuwe codeerbibliotheek is het een kwestie van mening. Aan de ene kant is het verwijderen van de installatiecode uitstekend voor zowel beginners als ervaren coders. Het schrijven van code is eenvoudiger en sneller.

Aan de andere kant is het belangrijk om precies te weten wat er aan de hand is. Neem het voorbeeld van het instellen van een knop uit de GPIO Zero-documentatie:

Voorbeeldcode van GPIO Zero Button

De knopmodule vereenvoudigt de instelling voor drukknoppen. Het weet dat knoppen invoer zijn, dus gebruikt het aangegeven pincode voor de installatie. Controleren op een druk op de knop is ook eenvoudiger, met de .is_pressed om het indrukken van knoppen te detecteren.

We hebben deze exacte functionaliteit gebruikt in de zelfstudie van de Raspberry Pi-knop 2 manieren om een ​​knop aan uw Raspberry Pi-project toe te voegen 2 manieren om een ​​knop aan uw Raspberry Pi-project toe te voegen Hoe sluit u een knop aan op uw Raspberry Pi? Hier zijn twee manieren om aan de slag te gaan, gedemonstreerd met Python en een LED. Lees meer, wat een geweldige manier is om vertrouwd te raken met de verschillen in de bibliotheken.

Gebruikers van de RPi.GPIO-bibliotheek zullen merken dat de interne pull-up / pull-down weerstanden van de Pi niet in code zijn ingesteld. Dit roept een interessante vraag op. Is het essentieel voor beginners om op de hoogte te zijn van pull-up / down weerstanden? Nogmaals, Ben Nuttall heeft een antwoord op deze vraag:

"Je zou kunnen beweren dat het goed is om te weten over pull-ups en pull-downs, en je hebt gelijk - maar waarom moet ik dat op de eerste dag leren? [...] Als je de elektronica dieper wilt leren, is er genoeg daarvoor - maar het zou niet verplicht moeten zijn als je net begint. '

Over het algemeen is de eenvoudige aanpak van GPIO Zero waarschijnlijk een goede zaak voor zowel beginners als veteranen. Trouwens, RPi.GPIO gaat nergens heen. Het zal er altijd zijn om terug te schakelen indien nodig.

Is Python de enige optie?

Python is de taal waarvoor de Pi bekend staat, maar het is niet de enige optie. Als u al bekend bent met programmeren in de C-taal, heeft Wiring Pi u gedekt.

Als u al in JavaScript programmeert, kan Node.js gemakkelijk op de Pi worden geïnstalleerd. GPIO-toegang is beschikbaar via de rpi-gpio npm-bibliotheek. Ruby on Rails kan ook op de Raspberry Pi worden geïnstalleerd, hoewel de Pi misschien niet de beste manier is om Rails te leren!

Al deze alternatieven, samen met meertalige bibliotheken zoals de uitstekende pigpio, kunnen het kiezen van een bibliotheek verwarrend maken. Dit is waar GPIO Zero uitblinkt: voor beginners die zich afvragen hoe en waar te beginnen.

Als je op een punt bent dat je iets nodig hebt dat het niet biedt, ben je meer dan klaar om in je eigen tempo in deze andere bibliotheken te duiken.

Aan de slag met GPIO Zero Yourself

GPIO Zero is de nieuwste bibliotheek om een ​​plons voor de Pi te maken en met goede reden. Voor de meeste gebruikers maakt het codering voor GPIO-pinnen eenvoudiger te lezen en sneller te schrijven.

Gezien het gebruik van de Raspberry Pi in het onderwijs, is alles dat het leren natuurlijker maakt een goede zaak. Hoewel RPi.GPIO tot nu toe perfect was, neemt GPIO Zero een goed idee en maakt het nog beter.

Een geweldige manier om aan de slag te gaan met GPIO Zero is om een ​​beginnersproject te nemen, zoals de muzikale deursensor. Speel je eigen themamelodie wanneer je de kamer binnenkomt met Raspberry Pi Speel je eigen themamelodie wanneer je de kamer binnenkomt met Raspberry Pi. Heb je ooit gewild thuiskomen voor een persoonlijk welkom? In dit eenvoudige Raspberry Pi-project gebruiken we een reed-schakelaar om een ​​melodie te activeren wanneer een deur wordt geopend. Lees meer en porteer deze naar de nieuwe bibliotheek.

Ontdek meer over: GPIO, Python, Raspberry Pi.