Confronta e confronta le API GPIO di Python


11

Ho appena iniziato con Pi e voglio programmare GPIO in Python. Finora mi sono imbattuto in cinque biblioteche:

Prima di dedicare tempo all'apprendimento, voglio sapere:

  • Se ci sono limitazioni all'una o all'altra.
  • Quali differenze oggettive significative ci sono tra loro.


Hai ragione, e questo sarà probabilmente chiuso come soggettivo. Non esiste una risposta semplice. gpiozeroè un semplice wrapper, progettato per i principianti. pigpioè probabilmente il più potente, sebbene la documentazione sia imprecisa e più adatta a un programmatore esperto. (Uso il cablaggio cperché è più semplice, ma ho un'esperienza di oltre 40 anni.)
Milliways

Suggerisco di chiudere questa domanda come basata sull'opinione, a meno che non desideriamo che ogni singola persona che utilizza GPIO condivida la propria esperienza nelle risposte.
Dmitry Grigoryev,

Risposte:


13

Avvertimento. Sono l'autore di pigpio, quindi sarà di parte.

Potresti avere un assaggio guardando elinux .

RPi.GPIO è stato il primo ed è il più popolare. Sarà quello per cui vedi più spesso esempi.

RPIO si basa su RPi.GPIO (è pensato per essere un plug-in sostitutivo) e aggiunge alcune funzionalità. In particolare aggiunge PWM a tempo hardware adatto per LED e servi e catene di impulsi a tempo hardware. RPi.GPIO fornisce solo software PWM che fornisce anomalie visibili nei LED e si dice che accorcia la durata dei servi. Come menzionato nel repository github RPIO :

Questo repository non è più attivo attivamente!

cablaggioPi Python è una porta di gran parte della funzionalità C di CIPPi su Python. Non l'ho usato e non ne so molto.

pigpio Python è una porta della funzionalità C di pigpio su Python. Come RPIO.GPIO fornisce PWM con temporizzazione hardware per LED e servi e catene di impulsi con temporizzazione hardware. Una caratteristica unica di pigpio è che molti volte gli eventi GPIO alla fonte, quindi per qualsiasi scopo di temporizzazione è probabile che il pigpio sia il più preciso. pigpio può essere eseguito su un PC in rete (Windows, Mac, Linux) per controllare un Pi remoto.

gpiozero è un wrapper di semplificazione praticamente su tutte le librerie di cui sopra. È in effetti un front-end che tenta di rimuovere l'utente il più possibile dai dettagli di implementazione sottostanti. gpiozero (credo) è il punto di partenza Python raccomandato dalla Fondazione. gpiozero può (penso) funzionare su un PC in rete (Windows, Mac, Linux) per controllare un Pi remoto se pigpio è il backend.

Attenzione, chiedi ad altre 10 persone e avranno 10 visualizzazioni diverse. Tutte le librerie hanno i loro usi. Sono tutti strumenti. Il meglio per te dipende dal tipo di lavoratore che sei.


0

Consiglierei RPi.GPIO ma GPIO zero è il migliore per i principianti ma ha più limitazioni. Tuttavia, non ho alcuna conoscenza degli altri, ma se non ne ho sentito parlare, ciò non significa che non sia buono come il resto.


GPIO Zero fa tutto ciò che fa RPi.GPIO, non ci sono limiti lì. Ci sono funzionalità più avanzate in pigpio che non sono ancora implementate in GPIO Zero, ma per quello che supporta, fornisce una bella API in cima a entrambe le librerie.
ben_nuttall
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.