Compare y contraste las API Python GPIO

11

Estoy empezando con Pi y quiero programar GPIO en Python. Hasta ahora me he encontrado con cinco bibliotecas:

Antes de dedicar tiempo a aprender uno, quiero saber:

  • Si hay alguna limitación para uno u otro.
  • Qué diferencias objetivas significativas hay entre ellos.
Spinkus
fuente
Tienes razón, y esto probablemente se cerrará como subjetivo. No hay una respuesta simple. gpiozeroes un envoltorio simple, diseñado para principiantes. pigpioes probablemente el más poderoso, aunque la documentación es incompleta y más adecuada para un programador experimentado. (Uso el cableado cporque es más fácil, pero tengo más de 40 años de experiencia c.)
Milliways
Sugiero que cerremos esta pregunta según la opinión, a menos que queramos que todas las personas que usan GPIO compartan su experiencia en las respuestas.
Dmitry Grigoryev

Respuestas:

13

Advertencia. Soy el autor de Pigpio, así que seré parcial.

Puedes probarlo mirando a elinux .

RPi.GPIO fue el primero y es el más popular. Será el que más a menudo vea ejemplos.

RPIO se basa en RPi.GPIO (está destinado a ser un complemento de reemplazo) y agrega algunas capacidades. En particular, agrega hardware PWM temporizado adecuado para LED y servos y cadenas de pulso temporizadas por hardware. RPi.GPIO solo proporciona software PWM que proporciona fallas visibles en los LED y se dice que acorta la vida útil de los servos. Como se menciona en RPIO github repo :

¡Este repositorio ya no se mantiene activamente!

cableado Pi Python es un puerto de gran parte de la funcionalidad C de cableado Pi a Python. No lo he usado y no sé mucho al respecto.

pigpio Python es un puerto de la funcionalidad C de pigpio para Python. Al igual que RPIO.GPIO, proporciona PWM temporizado por hardware para LED y servos, y cadenas de pulso temporizadas por hardware. Una característica única de pigpio es que sincroniza los eventos GPIO en la fuente, por lo que para cualquier propósito de temporización es probable que pigpio sea el más preciso. pigpio puede ejecutarse en una PC en red (Windows, Mac, Linux) para controlar una Pi remota.

gpiozero es un contenedor simplificador de casi cualquiera de las bibliotecas anteriores. En efecto, es una interfaz que intenta eliminar al usuario tanto como sea posible de los detalles de implementación subyacentes. gpiozero (creo) es el punto de inicio de Python recomendado por la Fundación. gpiozero puede (creo) ejecutarse en una PC en red (Windows, Mac, Linux) para controlar una Pi remota si pigpio es el backend.

Advertencia, pregunte a otras 10 personas y tendrán 10 puntos de vista diferentes. Todas las bibliotecas tienen sus usos. Son todas herramientas. Lo que sea mejor para usted depende del tipo de trabajador que sea.

joan
fuente
0

Recomendaría RPi.GPIO, pero GPIO zero es el mejor para principiantes pero tiene más limitaciones. Sin embargo, no tengo conocimiento de los demás, pero si no he oído hablar de ellos, no significa que no sean tan buenos como el resto.

Rey globo
fuente
GPIO Zero hace todo RPi.GPIO hace, no hay limitaciones allí. Hay características más avanzadas en pigpio que aún no se implementan en GPIO Zero, pero por lo que admite, proporciona una buena API sobre cualquiera de las bibliotecas.
ben_nuttall