Advertentie

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

Het is vooral gemakkelijk als u 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? Doe mee terwijl we 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. Het is bedoeld om intuïtief en 'vriendelijk' te zijn en stroomlijnt de Python-code voor de meeste reguliere Raspberry Pi-toepassingen.

Door eenvoudige naamgevingspraktijken en beschrijvende functies te combineren, is GPIO Zero toegankelijker voor beginners om te begrijpen. Zelfs ervaren gebruikers van de RPi. GPIO-bibliotheek geeft er misschien de voorkeur aan - en om te begrijpen waarom, laten we eens kijken hoe RPi. GPIO is vergelijkbaar met GPIO Zero.

instagram viewer

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 vanuit code kunnen bedienen. Het komt voor in bijna elk beginnersproject De 11 beste Raspberry Pi-projecten voor beginnersDeze Raspberry Pi-projecten voor beginners zijn geweldig om aan de slag te gaan met de mogelijkheden van elk Raspberry Pi-model. Lees verder we hebben gedekt.

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

Wat is er zo goed aan GPIO Zero?

Wanneer jij bent Python-code leren, leer je dat het gemakkelijk te lezen en zo kort mogelijk moet zijn. GPIO Zero streeft ernaar beide punten te behandelen. Gebouwd bovenop RPi. GPIO als een front-end taalomslag, het vereenvoudigt de installatie en het gebruik van GPIO.

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

Code om in te stellen en LED voor uitvoer met behulp van de RPi. GPIO-bibliotheek

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

De RPi. GPIO-bibliotheek wordt geïmporteerd en een pin voor de LED wordt gedeclareerd. Het pin layout type is ingesteld (BCM en BOARD mode zijn uitgelegd in onze GPIO-gids Alles wat u moet weten over Raspberry Pi GPIO-pinnenDe Raspberry Pi is een fantastische kleine computer, maar wat doen de GPIO-pinnen (General Purpose Input / Output) precies? Kortom, ze openen een hele wereld van doe-het-zelf knutselen en uitvinden. Lees verder ), en de pin is ingesteld als uitgang. Vervolgens wordt de pin ingeschakeld.

Deze aanpak is logisch, maar de manier waarop GPIO Zero het doet, is veel eenvoudiger:

Een LED opzetten met GPIO Zero

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

Waarom is de aanpak van GPIO Zero beter?

Er zijn een aantal redenen waarom deze werkwijze een verbetering is ten opzichte van RPi. GPIO.

Ten eerste voldoet het aan de eis "gemakkelijk te lezen, zo kort mogelijk". Terwijl de RPi. GPIO-instellingsverklaringen zijn gemakkelijk te begrijpen, ze zijn niet nodig. Een LED zal altijd een output zijn, dus GPIO Zero zet de pinnen achter de schermen. Het resultaat is slechts drie regels code om in te stellen en vervolgens een LED te laten branden.

Je merkt misschien dat er geen bordmodus 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 een algemeen doel hebben - en dat zijn ze niet. Sluit een LED aan op pin 11, waarom niet nog een paar op pin 1, 2, 3 en 4? Nou 1 is 3V3. 2 en 4 zijn 5V. Een gebrek aan besef van wat het doel van de pinnen is, 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 coderingsbibliotheek, is het een kwestie van mening. Aan de ene kant is het verwijderen van de installatiecode uitstekend voor zowel beginners als doorgewinterde programmeurs. Code schrijven is eenvoudiger en sneller.

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

GPIO Zero Button voorbeeldcode

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

We gebruikten deze exacte functionaliteit in de Raspberry Pi-knop tutorial 2 manieren om een ​​knop toe te voegen aan uw Raspberry Pi-projectHoe sluit je een knop aan op je Raspberry Pi? Hier zijn twee manieren om te beginnen, gedemonstreerd met Python en een LED. Lees verder , wat een geweldige manier is om vertrouwd te raken met de verschillen in de bibliotheken.

Gebruikers van de RPi. GPIO-bibliotheek zal 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 zeggen dat het goed is om te weten over pull-ups en pull-downs, en je zou gelijk hebben - maar waarom moet ik dat op de eerste dag leren? [...] Als je wilt de elektronica dieper leren, daar is voldoende ruimte voor, maar het zou niet verplicht moeten zijn als je gewoon begonnen."

Over het geheel genomen 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 bekend om 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 on Rails kan ook op de Raspberry Pi worden geïnstalleerd, hoewel de Pi dat misschien niet is beste manier om Rails te leren!

Al deze alternatieven, samen met meertalige bibliotheken zoals de uitstekende Pigpio 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.

Aan de slag met GPIO Zero Yourself

GPIO Zero is de nieuwste bibliotheek die een goede indruk maakt op de Pi en terecht. Voor de meeste gebruikers maakt het coderen voor GPIO-pinnen eenvoudiger te lezen en sneller te schrijven.

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

Een geweldige manier om aan de slag te gaan met GPIO Zero is om een ​​beginnersproject als het Muzikale deursensor Speel je eigen themaliedje wanneer je de kamer binnenkomt met Raspberry PiAltijd al eens persoonlijk thuis willen komen? In dit eenvoudige Raspberry Pi-project gebruiken we een reed-schakelaar om een ​​deuntje te activeren wanneer een deur wordt geopend. Lees verder en port het naar de nieuwe bibliotheek.

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