La biblioteca RPi.GPIO Python es estándar para programar los pines GPIO de Raspberry Pi, pero GPIO Zero es posiblemente mejor.

Por qué GPIO Zero es mejor que RPi.GPIO para proyectos de Raspberry Pi

Anuncio La Raspberry Pi es la computadora perfecta para aprender. El sistema operativo Raspbian basado en Linux tiene Python incorporado, lo que lo convierte en un excelente primer sistema para codificadores principiantes. Sus pines de entrada / salida de propósito general (GPIO) facilitan a los fabricantes en ciernes experimentar con proyectos electrónicos de bricolaje.

Anuncio

La Raspberry Pi es la computadora perfecta para aprender. El sistema operativo Raspbian basado en Linux tiene Python incorporado, lo que lo convierte en un excelente primer sistema para codificadores principiantes. Sus pines de entrada / salida de propósito general (GPIO) facilitan a los fabricantes en ciernes experimentar con proyectos electrónicos de bricolaje.

Es especialmente fácil cuando usa bibliotecas de código que controlan estos pines, y la popular biblioteca RPi.GPIO Python es un excelente ejemplo de dicha biblioteca. ¿Pero es el mejor camino para principiantes? Únete a nosotros mientras investigamos.

¿Qué es GPIO Zero?

La biblioteca GPIO Zero es una biblioteca de Python para trabajar con pines GPIO. Fue escrito por el administrador de la comunidad de Raspberry Pi, Ben Nuttall. Dirigido a ser intuitivo y "amigable", optimiza el código Python para la mayoría de los casos de uso de Raspberry Pi.

Combinando prácticas simples de nombres y funciones descriptivas, GPIO Zero es más accesible para que los principiantes lo entiendan. Incluso los usuarios experimentados de la biblioteca RPi.GPIO pueden preferirlo, y para comprender por qué, echemos un vistazo a cómo RPi.GPIO se compara con GPIO Zero.

¿Qué hay de malo con RPi.GPIO?

Nada. Nada en absoluto. RPi.GPIO fue lanzado a principios de 2012 por el desarrollador Ben Croston. Es una biblioteca robusta que permite a los usuarios controlar los pines GPIO desde el código. Se presenta en casi todos los proyectos para principiantes Los 11 mejores proyectos de Raspberry Pi para principiantes Los 11 mejores proyectos de Raspberry Pi para principiantes Estos proyectos de Raspberry Pi para principiantes son excelentes para comenzar con las capacidades de cualquier modelo de Raspberry Pi. Leer más que hemos cubierto.

A pesar de su uso extensivo, RPi.GPIO nunca fue diseñado para usuarios finales. Es un testimonio del buen diseño de RPi.GPIO que tantos principiantes lo usan de todos modos.

¿Qué tiene de bueno GPIO Zero?

Cuando aprende el código Python, aprende que debe ser fácil de leer y lo más breve posible. GPIO Zero tiene como objetivo cubrir ambos puntos. Construido sobre RPi.GPIO como un envoltorio de lenguaje front-end, simplifica la configuración y el uso de GPIO.

Considere el siguiente ejemplo, configurar y encender un LED:

Código para configurar y LED para salida utilizando la biblioteca RPi.GPIO

El código anterior debería ser bastante familiar para cualquiera que haya usado su Pi para controlar los LED.

La biblioteca RPi.GPIO se importa y se declara un pin para el LED. El tipo de diseño de los pines está configurado (los modos BCM y BOARD se explican en nuestra guía GPIO Todo lo que necesita saber sobre los pines GPIO de Raspberry Pi Todo lo que necesita saber sobre los pines GPIO de Raspberry Pi El Raspberry Pi es una pequeña computadora fantástica, pero ¿qué hace? los pines GPIO (Entrada / Salida de Propósito General) hacen exactamente? En resumen, abren todo un mundo de retoques e inventos electrónicos de bricolaje. Leer más), y el pin se configura como una salida. Entonces, el pin se enciende.

Este enfoque tiene sentido, pero la forma GPIO Zero de hacerlo es mucho más simple:

Configurar un LED con GPIO Zero

GPIO Zero tiene un módulo para LED, importado al inicio. Esto significa que puede declarar el número PIN y llamar al método led.on () .

¿Por qué es mejor el enfoque de GPIO Zero?

Hay algunas razones por las cuales este método de trabajo es una mejora en RPi.GPIO.

En primer lugar, cumple con el requisito de "fácil de leer, lo más breve posible". Si bien las declaraciones de configuración de RPi.GPIO son lo suficientemente fáciles de entender, no son necesarias. Un LED siempre será una salida, por lo que GPIO Zero configura los pines detrás de escena. El resultado es solo tres líneas de código para configurar, luego enciende un LED.

Puede notar que no hay una configuración de modo de placa en el ejemplo GPIO Zero. La biblioteca solo usa la numeración Broadcom (BCM) para los pines. El diseñador de la biblioteca Ben Nuttall explica por qué en una entrevista RasPi.tv 2015:

“La numeración del TABLERO puede parecer más simple, pero diría que lleva a los nuevos usuarios a pensar que todos los pines son de uso general, y no lo son. Conecte un LED al pin 11, ¿por qué no conecta un poco más a los pines 1, 2, 3 y 4? El pozo 1 es 3V3. 2 y 4 son 5V. La falta de conciencia de cuál es el propósito de los alfileres puede ser peligroso ".

Dicho de esta manera, tiene sentido usar los números de BCM. Dado que GPIO Zero será estándar en la documentación de Raspberry Pi en adelante, ¡vale la pena aprenderlo!

¿GPIO Zero es realmente mejor?

Si bien parece más sencillo en la superficie, ¿la nueva biblioteca tiene algún problema? Como con cualquier biblioteca de codificación nueva, es una cuestión de opinión. Por un lado, eliminar el código de configuración es excelente tanto para principiantes como para programadores experimentados. Escribir código es más sencillo y rápido.

Por otro lado, saber exactamente lo que está sucediendo es importante para aprender. Tome el ejemplo de configurar un botón de la documentación de GPIO Zero:

Código de ejemplo GPIO Zero Button

El módulo de botones simplifica la configuración de los botones. Sabe que los botones son entradas, por lo que utiliza el número de pin declarado para la configuración. También es más fácil verificar la presión de un botón, con .is_pressed para detectar las pulsaciones de botón.

Utilizamos esta funcionalidad exacta en el tutorial de botones de Raspberry Pi. 2 formas de agregar un botón a su proyecto de Raspberry Pi. 2 formas de agregar un botón a su proyecto de Raspberry Pi. ¿Cómo conecta un botón a su Raspberry Pi? Aquí hay dos formas de comenzar, demostradas usando Python y un LED. Leer más, que es una excelente manera de familiarizarse con las diferencias en las bibliotecas.

Los usuarios de la biblioteca RPi.GPIO notarán que las resistencias internas pull-up / pull-down de Pi no están configuradas en el código. Ésto plantea una pregunta interesante. ¿Es esencial que los principiantes sepan sobre las resistencias pull-up / down? De nuevo, Ben Nuttall tiene una respuesta a esta pregunta:

"Se podría argumentar que es bueno saber acerca de pull ups y pull down, y estaría en lo cierto, pero ¿por qué tengo que enseñar eso el primer día? [...] Si quieres enseñar la electrónica con más profundidad, hay un montón de alcance para eso, pero no debería ser obligatorio si recién está comenzando ".

En general, el enfoque simple de GPIO Zero es probablemente algo bueno para principiantes y veteranos por igual. Además, RPi.GPIO no va a ninguna parte. Siempre estará allí para volver a cambiar si es necesario.

¿Es Python la única opción?

Python es el lenguaje por el que se conoce a Pi, pero no es la única opción. Si ya está familiarizado con la programación en lenguaje C, entonces Wiring Pi lo tiene cubierto.

Alternativamente, si ya programa en JavaScript, Node.js puede instalarse fácilmente en Pi. El acceso a GPIO está disponible a través de la biblioteca rpi-gpio npm. Ruby on Rails también se puede instalar en Raspberry Pi, ¡aunque es posible que Pi no sea la mejor manera de aprender Rails!

Todas estas alternativas, junto con bibliotecas multilingües como el excelente pigpio, pueden hacer que elegir una biblioteca sea confuso. Aquí es donde sobresale GPIO Zero: para principiantes que se preguntan cómo y dónde comenzar.

Si se encuentra en un punto donde necesita algo que no proporciona, estará más que listo para sumergirse en estas otras bibliotecas a su propio ritmo.

Comenzando con GPIO Zero Yourself

GPIO Zero es la biblioteca más nueva para impresionar a Pi y con razón. Para la mayoría de los usuarios, hace que la codificación de pines GPIO sea más fácil de leer y más rápida de escribir.

Dado el uso de Raspberry Pi en la educación, cualquier cosa que haga que el aprendizaje sea más natural es algo bueno. Si bien RPi.GPIO ha sido perfecto hasta ahora, GPIO Zero toma una buena idea y la hace aún mejor.

Una excelente manera de comenzar con GPIO Zero es tomar un proyecto para principiantes como el Sensor de puerta musical. Toca tu propia melodía temática cuando entras en la habitación con Raspberry Pi Toca tu propia melodía temática cuando entras en la habitación con Raspberry Pi ¿Alguna vez has querido llegar a casa para una bienvenida personal? En este simple proyecto de Raspberry Pi usaremos un interruptor de láminas para activar una melodía cuando se abre una puerta. Lea más y transfiéralo a la nueva biblioteca.

Explore más sobre: ​​GPIO, Python, Raspberry Pi.