Per què GPIO Zero és millor que RPi.GPIO per a projectes Raspberry Pi

Per què GPIO Zero és millor que RPi.GPIO per a projectes Raspberry Pi

El Raspberry Pi és l’ordinador perfecte per aprendre. El sistema operatiu Raspbian basat en Linux té Python integrat, cosa que el converteix en un primer sistema fantàstic per a programadors principiants. Els seus pins d’entrada / sortida d’ús general (GPIO) faciliten als fabricants incipients l’experimentació amb projectes d’electrònica de bricolatge.





És especialment fàcil quan feu servir biblioteques de codis que controlen aquests pins i la popular biblioteca RPi.GPIO Python és un excel·lent exemple d’aquesta biblioteca. Però, és el millor camí per a principiants? Uniu-vos a nosaltres mentre investigem.





Què és GPIO Zero?

La biblioteca GPIO Zero és una biblioteca Python per treballar amb pins GPIO. Va ser escrit per Ben Nuttall, gerent de la comunitat Raspberry Pi . Amb l'objectiu de ser intuïtiu i 'amigable', racionalitza el codi Python per als casos d'ús més habituals de Raspberry Pi.





Combinant pràctiques de denominació senzilles i funcions descriptives, GPIO Zero és més accessible per als principiants. Fins i tot els usuaris experimentats de la biblioteca RPi.GPIO poden preferir-ho i, per entendre per què, fem una ullada a la comparació de RPi.GPIO amb GPIO Zero.

Què passa amb RPi.GPIO?

Res. Res en absolut. RPi.GPIO va ser llançat a principis del 2012 pel desenvolupador Ben Croston. És una biblioteca robusta que permet als usuaris controlar els pins GPIO des del codi. Inclou a gairebé tots els projectes per a principiants hem cobert.



com saber si el meu telèfon està piratejat

Tot i el seu ús extensiu, RPi.GPIO mai va ser dissenyat per a usuaris finals. És un testimoni del bon disseny de RPi.GPIO que tants principiants l’utilitzen.

Què té de bo GPIO Zero?

Quan ho siguis aprenent codi Python , apreneu que hauria de ser fàcil de llegir i el més breu possible. GPIO Zero pretén cobrir tots dos punts. Construït sobre RPi.GPIO com a embolcall de llenguatge frontal, simplifica la configuració i l’ús de GPIO.





Penseu en el següent exemple: configurar i encendre un LED:

El codi anterior hauria de ser força familiar per a tothom que en tingui utilitzaven el seu Pi per controlar els LED .





S’importa la biblioteca RPi.GPIO i es declara un pin per al LED. El tipus de disseny del pin està configurat (el mode BCM i BOARD ho són) explicat a la nostra guia GPIO ), i el pin es configura com a sortida. A continuació, s’activa el passador.

Aquest enfocament té sentit, però la manera de fer-ho GPIO Zero és molt més senzilla:

GPIO Zero té un mòdul per a LEDs, importat al principi. Això vol dir que podeu declarar el número de PIN i trucar al led.on () mètode.

com mantenir el flaix habilitat a Chrome

Per què l’enfocament de GPIO Zero és millor?

Hi ha algunes raons per les quals aquest mètode de treball suposa una millora en RPi.GPIO.

En primer lloc, compleix el requisit de 'fàcil lectura, el més breu possible'. Tot i que les instruccions de configuració de RPi.GPIO són ​​prou fàcils d’entendre, no són necessàries. Un LED sempre serà una sortida, de manera que GPIO Zero estableix els pins darrere de les escenes. El resultat és només tres línies de codi per configurar i després encendre un LED.

És possible que noteu que no hi ha configuració del mode de placa a l’exemple GPIO Zero. La biblioteca només utilitza la numeració Broadcom (BCM) per als pins. El dissenyador de biblioteques Ben Nuttall explica per què en un 2015 Entrevista RasPi.tv :

'La numeració de la JUNTA pot semblar més senzilla, però diria que fa que els nous usuaris pensin que tots els pins tenen un propòsit general, i no ho són. Connecteu un LED al pin 11, per què no connecteu-ne més als pins 1, 2, 3 i 4? El bé 1 és 3V3. 2 i 4 són 5V. La manca de consciència de quina és la finalitat dels pins pot ser perillosa.

Dit d'aquesta manera, és absolutament absolut utilitzar els números BCM. Tenint en compte que GPIO Zero serà estàndard a la documentació de Raspberry Pi en endavant, val la pena aprendre-ho.

GPIO Zero és realment millor?

Tot i que sembla més senzill a la superfície, la nova biblioteca té algun problema? Com passa amb qualsevol nova biblioteca de codificació, és una qüestió d'opinió. Per una banda, eliminar el codi de configuració és excel·lent tant per a principiants com per a programadors experimentats. Escriure codi és més senzill i ràpid.

D’altra banda, saber exactament què passa és important per aprendre. Preneu l 'exemple de configurar un botó des de Documentació GPIO Zero :

El botó El mòdul simplifica la configuració dels polsadors. Sap que els botons són entrades, de manera que utilitza el número de pin declarat per a la configuració. També és més fàcil comprovar si es prem un botó .està_pressat per detectar prems de botons.

Hem utilitzat aquesta funcionalitat exacta a Tutorial de botons Raspberry Pi , que és una bona manera de familiaritzar-se amb les diferències de les biblioteques.

Els usuaris de la biblioteca RPi.GPIO notaran que les resistències de desplegament / desplegament internes del Pi no estan configurades en codi. Això planteja una pregunta interessant. És fonamental que els principiants coneguin les resistències pull-up / down? De nou, Ben Nuttall té una resposta a aquesta pregunta:

'Podríeu argumentar que és bo saber sobre els alts i baixos, i tindríeu raó, però per què he d'ensenyar això el primer dia? [...] Si voleu ensenyar electrònica a més profunditat, hi ha un ampli abast per això, però no hauria de ser obligatori si tot just comenceu. '

En general, l’enfocament senzill de GPIO Zero probablement sigui bo tant per a principiants com per a veterans. A més, RPi.GPIO no va enlloc. Sempre hi serà per tornar-hi si cal.

Python és l’única opció?

Python és el llenguatge conegut pel Pi, però no és l'única opció. Si ja esteu familiaritzats amb la programació en llenguatge C, llavors Cablatge Pi t’has cobert.

Alternativament, si ja programa a JavaScript, Node.js es pot instal·lar fàcilment al Pi. L'accés GPIO està disponible a través de biblioteca rpi-gpio npm . Ruby on Rails també es pot instal·lar al Raspberry Pi, tot i que és possible que el Pi no sigui la millor manera d’aprendre Rails.

Totes aquestes alternatives, juntament amb biblioteques en diversos idiomes, com l’excel·lent barat pot fer que l'elecció d'una biblioteca sigui confusa. Aquí és on excel·leix GPIO Zero: per a principiants que es preguntin com i per on començar.

Si esteu en un punt en què necessiteu alguna cosa que no us proporciona, estareu més que preparats per submergir-vos en aquestes altres biblioteques al vostre ritme.

Introducció a GPIO Zero Yourself

GPIO Zero és la biblioteca més nova que fa un toc per al Pi i amb una bona raó. Per a la majoria d’usuaris, la codificació dels pins GPIO és més fàcil de llegir i d’escriure més ràpidament.

has de pagar spotify

Tenint en compte l’ús del Raspberry Pi a l’educació, tot el que faci que l’aprenentatge sigui més natural és bo. Tot i que RPi.GPIO ha estat perfecte fins ara, GPIO Zero pren una bona idea i la fa encara millor.

Una bona manera de començar amb GPIO Zero és agafar un projecte per a principiants com el Musical Door Sensor i portar-lo a la nova biblioteca.

Compartir Compartir Tweet Correu electrònic 5 consells per sobrecarregar les vostres màquines VirtualBox Linux

Cansat del baix rendiment que ofereixen les màquines virtuals? Això és el que heu de fer per millorar el rendiment del VirtualBox.

Llegiu a continuació
Temes relacionats
  • Bricolatge
  • Programació
  • Raspberry Pi
  • Python
  • GPIO
Sobre l'autor Ian Buckley(216 articles publicats)

Ian Buckley és periodista, músic, intèrpret i productor de vídeo independent que viu a Berlín, Alemanya. Quan no escriu ni està a l’escenari, juga amb electrònica o codi de bricolatge amb l’esperança de convertir-se en un científic boig.

Més de Ian Buckley

Subscriu-te al nostre butlletí

Uniu-vos al nostre butlletí per obtenir consells tècnics, ressenyes, llibres electrònics gratuïts i ofertes exclusives.

Feu clic aquí per subscriure-us