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

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

La Raspberry Pi es la computadora perfecta para aprender. El sistema operativo Raspbian basado en Linux tiene Python integrado, lo que lo convierte en un excelente primer sistema para programadores principiantes. Sus pines de entrada / salida de uso general (GPIO) facilitan que los fabricantes en ciernes experimenten con proyectos de electrónica de bricolaje.





Es especialmente fácil cuando usa bibliotecas de código que controlan estos pines, y la popular biblioteca Python RPi.GPIO es un excelente ejemplo de dicha biblioteca. ¿Pero es el mejor camino para principiantes? Únase 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 Gerente de comunidad de Raspberry Pi Ben Nuttall . Con el objetivo de ser intuitivo y 'amigable', optimiza el código Python para la mayoría de los casos de uso habituales de Raspberry Pi.





Combinando prácticas de nomenclatura simples 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 entender por qué, echemos un vistazo a cómo se compara RPi.GPIO con GPIO Zero.

¿Qué pasa 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 hemos cubierto.



buenas aplicaciones de edición de video para youtube

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 muchos principiantes lo usen de todos modos.

¿Qué tiene de bueno GPIO Zero?

Cuando estás aprender código Python , aprenderá 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 contenedor de idioma de front-end, simplifica la configuración y el uso de GPIO.





Considere el siguiente ejemplo, configurando y encendiendo un LED:

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





Se importa la biblioteca RPi.GPIO y se declara un pin para el LED. El tipo de disposición de los pines está configurado (los modos BCM y BOARD son explicado en nuestra guía GPIO ) y el pin se configura como salida. Luego, el pin se enciende.

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

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

Intel i3 frente a i5 frente a i7

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

Hay algunas razones por las que 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 bastante 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 son solo tres líneas de código para configurar y luego encender un LED.

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

“La numeración de TABLERO puede parecer más simple, pero yo diría que lleva a los nuevos usuarios a pensar que todos los pines son de propósito general, y no lo son. Conecte un LED al pin 11, ¿por qué no conectar 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 pines puede ser peligrosa '.

Dicho de esta manera, tiene mucho sentido usar los números BCM. Dado que GPIO Zero será estándar en la documentación de Raspberry Pi en el futuro, ¡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 ocurre 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. Tomemos el ejemplo de configurar un botón del Documentación de GPIO Zero :

los botón El módulo simplifica la configuración de los botones pulsadores. 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 comprobar si se pulsa un botón, con el .se presiona para detectar pulsaciones de botones.

Usamos esta funcionalidad exacta en el Tutorial de botones de Raspberry Pi , 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 del Pi no están configuradas en el código. Ésto plantea una pregunta interesante. ¿Es esencial que los principiantes conozcan las resistencias pull-up / down? Una vez más, Ben Nuttall tiene una respuesta a esta pregunta:

'Podrías argumentar que es bueno saber sobre pull ups y pull downs, y estarías en lo cierto --- pero ¿por qué tengo que enseñar eso el primer día? [...] Si quieres enseñar electrónica en más profundidad, hay mucho margen 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 tanto para principiantes como para veteranos. Además, RPi.GPIO no va a ninguna parte. Siempre estará ahí para volver a usarlo 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 Cableado Pi lo tiene cubierto.

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

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

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

Introducción a GPIO Zero usted mismo

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

cómo usar la aplicación para después de la escuela

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 y transferirlo a la nueva biblioteca.

Cuota Cuota Pío Correo electrónico 5 consejos para potenciar sus máquinas Linux VirtualBox

¿Cansado del bajo rendimiento que ofrecen las máquinas virtuales? Esto es lo que debe hacer para mejorar el rendimiento de VirtualBox.

Leer siguiente
Temas relacionados
  • Bricolaje
  • Programación
  • Frambuesa pi
  • Pitón
  • GPIO
Sobre el Autor Ian Buckley(216 Artículos publicados)

Ian Buckley es un periodista, músico, intérprete y productor de video independiente que vive en Berlín, Alemania. Cuando no está escribiendo o en el escenario, está jugando con la electrónica o el código de bricolaje con la esperanza de convertirse en un científico loco.

Más de Ian Buckley

Suscríbete a nuestro boletín

¡Únase a nuestro boletín de noticias para obtener consejos técnicos, reseñas, libros electrónicos gratuitos y ofertas exclusivas!

Haga clic aquí para suscribirse