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

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

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





Het is vooral gemakkelijk als je codebibliotheken gebruikt die deze pinnen besturen, en de populaire RPi.GPIO Python-bibliotheek is een uitstekend voorbeeld van zo'n bibliotheek. Maar is dit het beste pad voor beginners? Ga met ons mee terwijl we het onderzoeken.





Wat is GPIO Zero?

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





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

Wat is er mis met RPi.GPIO?

Niks. Helemaal niets. RPi.GPIO werd begin 2012 uitgebracht door ontwikkelaar Ben Croston. Het is een robuuste bibliotheek waarmee gebruikers GPIO-pinnen vanuit code kunnen bedienen. Het beschikt over bijna elk beginnersproject we hebben gedekt.



print lijst met bestanden in map en submappen windows 10

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?

Wanneer jij bent Python-code leren , leer je dat het makkelijk leesbaar en zo kort mogelijk moet zijn. GPIO Zero wil beide punten afdekken. Gebouwd bovenop RPi.GPIO als front-end taalwrapper, vereenvoudigt het de GPIO-instelling en het gebruik.





Beschouw het volgende voorbeeld, het instellen en inschakelen van een LED:

De bovenstaande code zou vrij bekend moeten zijn voor iedereen die heeft gebruikten hun Pi om LED's te besturen .





De RPi.GPIO-bibliotheek wordt geïmporteerd en een pin voor de LED wordt gedeclareerd. Het type pinlay-out is ingesteld (BCM- en BOARD-modus zijn: uitgelegd in onze GPIO-gids ), en de pin is ingesteld als uitvoer. Vervolgens wordt de pin ingeschakeld.

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

GPIO Zero heeft een module voor LED's, die bij de start is geïmporteerd. Dit betekent dat u de pincode kunt declareren en de . kunt bellen led.on() methode.

hoe een laptop te gebruiken met gesloten deksel?

Waarom is de aanpak van GPIO Zero beter?

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

Ten eerste voldoet het aan de eis van 'makkelijk leesbaar, zo kort mogelijk'. Hoewel de installatie-instructies van RPi.GPIO eenvoudig genoeg zijn om te begrijpen, zijn ze niet nodig. Een LED zal altijd een uitgang zijn, dus GPIO Zero stelt de pinnen achter de schermen in. Het resultaat is slechts drie regels code om in te stellen en vervolgens een LED aan te steken.

Het is je misschien opgevallen dat er geen kaartmodus is ingesteld in het GPIO Zero-voorbeeld. 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 voor algemeen gebruik zijn --- en dat zijn ze niet. Sluit een LED aan op pin 11, waarom niet nog wat meer op pin 1, 2, 3 en 4? Nou 1 is 3V3. 2 en 4 zijn 5V. Onwetendheid over het doel van de spelden kan gevaarlijk zijn.'

Op deze manier is het absoluut logisch om de BCM-nummers te gebruiken. Gezien het feit dat GPIO Zero in de toekomst 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 problemen? Zoals bij elke nieuwe codeerbibliotheek, is het een kwestie van mening. Aan de ene kant is het verwijderen van de setup-code uitstekend voor zowel beginners als ervaren programmeurs. Het schrijven van code is eenvoudiger en sneller.

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

De knop module vereenvoudigt de instelling voor drukknoppen. Het weet dat knoppen inputs zijn, dus gebruikt het de gedeclareerde pincode voor setup. Controleren op een druk op de knop is ook gemakkelijker, met de .is_pressed om het indrukken van een knop te detecteren.

We hebben deze exacte functionaliteit gebruikt in de Zelfstudie Raspberry Pi-knop , 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 te weten over 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 wilt leren in meer diepgang daar is genoeg ruimte voor --- maar het zou niet verplicht moeten zijn als je net begint.'

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

Is Python de enige optie?

Python is de taal waar de Pi om bekend staat, maar het is niet de enige optie. Als u al bekend bent met programmeren in de C-taal, dan: Bedrading Pi heeft u gedekt.

Als alternatief, als u al in JavaScript programmeert, kan Node.js eenvoudig op de Pi worden geïnstalleerd. GPIO-toegang is beschikbaar via de rpi-gpio npm bibliotheek . Ruby op 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 excellent goedkoop kan 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 waar je iets nodig hebt dat het niet biedt, ben je meer dan klaar om in je eigen tempo in deze andere bibliotheken te duiken.

Zelf aan de slag met GPIO Zero

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

beste browser voor Windows XP 2019

Gezien het gebruik van de Raspberry Pi in het onderwijs, is alles wat 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 met GPIO Zero aan de slag te gaan, is door een beginnersproject zoals de Musical Door Sensor te nemen en dit over te zetten naar de nieuwe bibliotheek.

Deel Deel Tweeten E-mail 5 tips om uw VirtualBox Linux-machines een boost te geven

Moe van de slechte prestaties van virtuele machines? Dit is wat u moet doen om uw VirtualBox-prestaties te verbeteren.

Lees volgende
Gerelateerde onderwerpen
  • doe-het-zelf
  • Programmeren
  • Raspberry Pi
  • Python
  • GPIO
Over de auteur Ian Buckley(216 artikelen gepubliceerd)

Ian Buckley is een freelance journalist, muzikant, performer en videoproducent die in Berlijn, Duitsland woont. Als hij niet aan het schrijven of op het podium staat, sleutelt hij aan doe-het-zelf-elektronica of code in de hoop een gekke wetenschapper te worden.

Meer van Ian Buckley

Abonneer op onze nieuwsbrief

Word lid van onze nieuwsbrief voor technische tips, recensies, gratis e-boeken en exclusieve deals!

Klik hier om je te abonneren