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.
gpiozero
es un envoltorio simple, diseñado para principiantes.pigpio
es probablemente el más poderoso, aunque la documentación es incompleta y más adecuada para un programador experimentado. (Uso el cableadoc
porque es más fácil, pero tengo más de 40 años de experiencia c.)Respuestas:
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 :
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.
fuente
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.
fuente