Perché GPIO Zero è meglio di RPi.GPIO per i progetti Raspberry Pi

Perché GPIO Zero è meglio di RPi.GPIO per i progetti Raspberry Pi / Programmazione

Il Raspberry Pi è il computer perfetto per l'apprendimento. Il sistema operativo Raspbian basato su Linux ha Python integrato, che lo rende un ottimo primo sistema per i codificatori principianti. I pin General Purpose Input / Output (GPIO) semplificano ai produttori in erba la sperimentazione di progetti di elettronica fai-da-te.

È particolarmente facile quando si utilizzano librerie di codice che controllano questi pin e la famosa libreria Pyi RPG Python è un eccellente esempio di tale libreria. Ma è la strada migliore per i principianti? Unisciti a noi mentre investigiamo.

Cos'è GPIO Zero?

La libreria Zero di GPIO è una libreria Python per lavorare con i pin GPIO. È stato scritto dal community manager di Raspberry Pi, Ben Nuttall. Rivolto all'essere intuitivo e “amichevole,” snellisce il codice Python per la maggior parte dei casi d'uso regolari di Raspberry Pi.

Combinando semplici pratiche di denominazione e funzioni descrittive, GPIO Zero è più accessibile ai principianti. Anche gli utenti esperti della libreria RPi.GPIO potrebbero preferirlo e, per capire perché, diamo un'occhiata a come RPi.GPIO si confronta con GPIO Zero.

Cosa c'è di sbagliato con RPi.GPIO?

Niente. Niente di niente. RPi.GPIO è stato rilasciato all'inizio del 2012 dallo sviluppatore Ben Croston. È una solida libreria che consente agli utenti di controllare i pin GPIO dal codice. Presenta in quasi tutti i progetti per principianti Progetti Raspberry Pi per principianti Progetti Raspberry Pi per principianti Questi 10 progetti Raspberry Pi per principianti sono ideali per ottenere un'introduzione alle funzionalità hardware e software del Pi e ti aiuteranno a iniziare e iniziare in tempo! Per saperne di più abbiamo coperto.

Nonostante il suo uso esteso, RPi.GPIO non è mai stato progettato per gli utenti finali. È una testimonianza del buon design di RPi.GPIO che molti principianti lo usano comunque.

Cosa c'è di buono in GPIO Zero?

Quando stai imparando il codice Python, impari che dovrebbe essere facile da leggere e il più breve possibile. GPIO Zero mira a coprire entrambi i punti. Costruito su RPi.GPIO come un wrapper per la lingua front-end, semplifica la configurazione e l'utilizzo di GPIO.

Considera il seguente esempio, impostando e accendendo un LED:

Il codice sopra dovrebbe essere abbastanza familiare a chiunque abbia usato il Pi per controllare i LED.

La libreria RPi.GPIO viene importata e viene dichiarato un pin per il LED. Il tipo di layout dei pin è impostato (la modalità BCM e BOARD sono spiegate nella nostra guida GPIO Tutto quello che c'è da sapere su Raspberry Pi Pin GPIO Tutto quello che c'è da sapere su Raspberry Pi Pin GPIO Il Raspberry Pi è un piccolo computer fantastico, ma cosa fare i perni GPIO (General Purpose Input / Output) fanno esattamente? In breve, aprono un intero mondo di bricolage elettronico e invenzione fai-da-te. Per saperne di più) e il pin è impostato come uscita. Quindi, il pin è acceso.

Questo approccio ha senso, ma il modo in cui GPIO Zero è molto più semplice:

GPIO Zero ha un modulo per LED, importato all'inizio. Ciò significa che è possibile dichiarare il numero del pin e chiamare il led.on () metodo.

Perché l'approccio di GPIO Zero è migliore?

Ci sono alcune ragioni per cui questo metodo di lavoro è un miglioramento su RPi.GPIO.

Innanzitutto, incontra il “facile da leggere, il più breve possibile” Requisiti. Sebbene le istruzioni di installazione di RPi.GPIO siano abbastanza facili da comprendere, non sono necessarie. Un LED sarà sempre un'uscita, quindi GPIO Zero imposta i pin dietro le quinte. Il risultato è solo tre righe di codice da configurare, quindi accendere un LED.

Si potrebbe notare che non vi è alcuna impostazione della modalità scheda nell'esempio Zero di GPIO. La libreria utilizza solo la numerazione Broadcom (BCM) per i pin. Il designer della biblioteca Ben Nuttall spiega perché in un'intervista di RasPi.tv 2015:

“La numerazione BOARD potrebbe sembrare più semplice, ma direi che porta i nuovi utenti a pensare che tutti i pin siano di uso generale e non lo sono. Collegare un LED al pin 11, perché non collegarne altri ai pin 1, 2, 3 e 4? Bene 1 è 3V3. 2 e 4 sono 5V. Una mancanza di consapevolezza di quale sia lo scopo degli spilli può essere pericoloso.”

Messo in questo modo, ha assolutamente senso usare i numeri BCM. Dato che GPIO Zero sarà standard nella documentazione di Raspberry Pi in futuro, vale la pena imparare!

GPIO Zero è effettivamente migliore?

Mentre sembra più semplice sulla superficie, la nuova libreria ha qualche problema? Come con qualsiasi nuova libreria di codifica, è una questione di opinione. Da un lato, la rimozione del codice di installazione è eccellente sia per i principianti che per i programmatori esperti. Scrivere codice è più semplice e veloce.

D'altra parte, sapere esattamente cosa sta succedendo è importante per l'apprendimento. Prendi l'esempio dell'impostazione di un pulsante dalla documentazione di GPIO Zero:

Il pulsante il modulo semplifica la configurazione dei pulsanti. Sa che i pulsanti sono input, quindi usa il numero pin dichiarato per l'installazione. Anche il controllo della pressione di un pulsante è più semplice, con .is_pressed per rilevare le pressioni dei pulsanti.

Abbiamo usato questa esatta funzionalità nel tutorial del pulsante Raspberry Pi 2 modi per aggiungere un pulsante al tuo progetto Raspberry Pi 2 modi per aggiungere un pulsante al tuo progetto Raspberry Pi Come connetti un pulsante al tuo Raspberry Pi? Ecco due modi per iniziare, dimostrati usando Python e un LED. Leggi altro, che è un ottimo modo per familiarizzare con le differenze nelle librerie.

Gli utenti della libreria RPi.GPIO noteranno che i resistori interni pull-up / pull-down del Pi non sono impostati in codice. Questo solleva una domanda interessante. È essenziale per i principianti conoscere le resistenze pull-up / down? Ancora una volta, Ben Nuttall ha una risposta a questa domanda:

“Potresti obiettare che è bello sapere di pull-up e abbattimenti, e avresti ragione, ma perché devo insegnarlo dal primo giorno? [...] Se vuoi insegnare l'elettronica in modo più approfondito, c'è un sacco di possibilità di farlo, ma non dovrebbe essere obbligatorio se hai appena iniziato.”

Nel complesso, il semplice approccio di GPIO Zero è probabilmente una buona cosa per principianti e veterani. Inoltre, RPi.GPIO non sta andando da nessuna parte. Sarà sempre lì per tornare indietro se necessario.

Python è l'unica opzione?

Python è la lingua per cui Pi è conosciuto, ma non è l'unica opzione. Se hai già familiarità con la programmazione in linguaggio C, allora Wiring Pi ti ha coperto.

In alternativa, se si programma già in JavaScript, Node.js può essere facilmente installato sul Pi. L'accesso GPIO è disponibile tramite la libreria rpm-gpio npm. Ruby on Rails può anche essere installato sul Raspberry Pi, anche se il Pi potrebbe non essere il modo migliore per imparare Rails!

Tutte queste alternative, insieme a librerie multi-lingua come l'eccellente pigpio, possono rendere confusa la scelta di una biblioteca. È qui che GPIO Zero eccelle: per i principianti che si chiedono come e da dove cominciare.

Se sei in un punto in cui hai bisogno di qualcosa che non fornisce, sarai più che pronto a tuffarti in queste altre librerie al tuo ritmo.

Iniziare con GPIO Zero Yourself

GPIO Zero è la libreria più recente per fare un tuffo per il Pi e con una buona ragione. Per la maggior parte degli utenti, rende la lettura dei pin GPIO più semplice da leggere e più veloce da scrivere.

Dato l'utilizzo di Raspberry Pi nell'educazione, tutto ciò che rende l'apprendimento più naturale è una buona cosa. Mentre RPi.GPIO è stato perfetto fino ad ora, GPIO Zero prende una buona idea e lo rende ancora migliore.

Un ottimo modo per iniziare con GPIO Zero è quello di prendere un progetto per principianti come il Musical Door Sensor Riproduci la tua Tune Theme quando entri nella stanza con Raspberry Pi Riproduci la tua Tune Theme quando entri nella stanza con Raspberry Pi Hai mai desiderato arrivare a casa ad un benvenuto personale? In questo semplice progetto Raspberry Pi useremo un interruttore reed per attivare una melodia quando viene aperta una porta. Leggi di più e portalo nella nuova libreria.

Scopri di più su: GPIO, Python, Raspberry Pi.