Comparar e contrastar APIs GPIO do Python GPIO

11

Estou apenas começando com o Pi e quero programar o GPIO em Python. Até agora, encontrei cinco bibliotecas:

Antes de dedicar tempo para aprender um, quero saber:

  • Se houver alguma limitação em um ou outro.
  • Que diferenças objetivas significativas existem entre elas.
spinkus
fonte
Você está correto, e isso provavelmente será fechado como subjetivo. Não existe uma resposta simples. gpiozeroé um invólucro simples, projetado para iniciantes. pigpioé provavelmente o mais poderoso, embora a documentação seja superficial e mais adequada para um programador experiente. (Eu uso wiringpi cporque é mais fácil, mas eu tenho 40 anos c experiência.)
Milliways
Sugiro que fechemos esta questão com base em opiniões, a menos que desejemos que cada pessoa que usa o GPIO compartilhe sua experiência nas respostas.
Dmitry Grigoryev

Respostas:

13

Aviso. Eu sou o autor de pigpio, por isso será tendencioso.

Você pode experimentar o elinux .

O RPi.GPIO foi o primeiro e é o mais popular. Será o exemplo para o qual você mais frequentemente vê exemplos.

O RPIO se baseia no RPi.GPIO (deve ser um substituto de plug-in) e adiciona alguns recursos. Em particular, ele adiciona PWM com tempo de hardware adequado para LEDs e servos e cadeias de pulso com tempo de hardware. O RPi.GPIO fornece apenas software PWM, o que fornece falhas visíveis nos LEDs e reduz a vida útil dos servos. Como mencionado no repositório do Github do RPIO :

Este repositório não é mais mantido ativamente!

cabeamentoPi Python é uma porta de grande parte da funcionalidade C do cabeamentoPi para Python. Eu não o usei e não sei muito sobre isso.

pigpio Python é uma porta da funcionalidade C do pigpio para Python. Como o RPIO.GPIO, ele fornece PWM com sincronização de hardware para LEDs e servos e cadeias de pulso com sincronização de hardware. Um recurso exclusivo do pigpio é que ele gera eventos GPIO na fonte, portanto, para qualquer finalidade de tempo, é provável que o pigpio seja o mais preciso. O pigpio pode ser executado em um PC em rede (Windows, Mac, Linux) para controlar um Pi remoto.

O gpiozero é um wrapper simplificador para praticamente qualquer uma das bibliotecas acima. Na verdade, é um front end que tenta remover o usuário o máximo possível dos detalhes subjacentes da implementação. O gpiozero (eu acho) é o ponto de partida recomendado pela Fundação em Python. O gpiozero pode (eu acho) rodar em um PC em rede (Windows, Mac, Linux) para controlar um Pi remoto se pigpio for o back-end.

Atenção, pergunte a outras 10 pessoas e elas terão 10 visualizações diferentes. Todas as bibliotecas têm seus usos. Eles são todas as ferramentas. O que é melhor para você depende de que tipo de trabalhador você é.

joan
fonte
0

Eu recomendaria o RPi.GPIO, mas o GPIO zero é melhor para iniciantes, mas tem mais limitações. No entanto, eu não tenho conhecimento dos outros, mas se eu não os ouvi, isso não significa que não seja tão bom quanto o resto.

King Balloonion
fonte
O GPIO Zero faz tudo o que o RPi.GPIO faz, não há limitações. Existem recursos mais avançados no pigpio que ainda não foram implementados no GPIO Zero, mas, para o que ele suporta, ele fornece uma boa API no topo de qualquer biblioteca.
ben_nuttall