Por qué GPIO Zero es mejor que RPi.GPIO para proyectos de Raspberry Pi
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 uso general (GPIO) facilitan a los fabricantes en ciernes experimentar con proyectos de electrónica de bricolaje.
Es especialmente fácil cuando utiliza bibliotecas de códigos que controlan estos pines, y la popular biblioteca de Python RPi.GPIO es un excelente ejemplo de dicha biblioteca. ¿Pero es el mejor camino para los 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 gerente de la comunidad de Raspberry Pi, Ben Nuttall. Dirigido a ser intuitivo y “simpático,” agiliza el código de Python para la mayoría de los casos de uso de Raspberry Pi.
Combinando prácticas simples de nomenclatura y funciones descriptivas, GPIO Zero es más accesible para que los principiantes entiendan. Incluso los usuarios experimentados de la biblioteca RPi.GPIO pueden preferirlo, y para entender por qué, echemos un vistazo a cómo RPi.GPIO se compara con GPIO Zero.
Qué está mal 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 Raspberry Pi Proyectos para principiantes Raspberry Pi Proyectos para principiantes Estos 10 proyectos Raspberry Pi para principiantes son excelentes para obtener una introducción a las capacidades de hardware y software del Pi, y lo ayudarán a ponerse en marcha. ¡hora! Leer más 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, sin embargo, muchos principiantes lo utilizan..
¿Qué tiene de bueno GPIO Zero??
Cuando estás aprendiendo el código Python, aprendes que debería ser fácil de leer y lo más corto posible. GPIO Zero tiene como objetivo cubrir ambos puntos. Construido sobre RPi.GPIO como envoltorio de lenguaje de front-end, simplifica la configuración y el uso de GPIO.
Considere el siguiente ejemplo, configurar y encender un LED:
El código anterior debe ser bastante familiar para cualquiera que haya usado 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 se explican en nuestra guía GPIO. Todo lo que necesita saber sobre la Raspberry Pi. Pernos GPIO. Todo lo que necesita saber sobre los pines GPIO de la Raspberry Pi. La Raspberry Pi es una pequeña computadora fantástica, ¿Los pines GPIO (entrada / salida de uso general) hacen exactamente? En resumen, abren todo un mundo de inventos y broches 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 de hacerlo de GPIO Zero es mucho más simple:
GPIO Zero tiene un módulo para LED, importado desde el principio. Esto significa que puede declarar el número de pin y llamar al llevado en() método.
¿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 la “Fácil de leer, lo más corto posible” requisito. Si bien las instrucciones de configuración de RPi.GPIO son fáciles de entender, no son necesarias. Un LED siempre será una salida, por lo que GPIO Zero configura los pines detrás de las escenas. El resultado es solo tres líneas de código para configurar, luego encender un LED.
Puede observar que no hay configuración de modo de placa en el ejemplo de GPIO Zero. La biblioteca solo utiliza la numeración Broadcom (BCM) para los pines. El diseñador de bibliotecas Ben Nuttall explica por qué en una entrevista de RasPi.tv 2015:
“La numeración de BOARD puede parecer más simple, pero 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 conecta un poco más a los pines 1, 2, 3 y 4? Bueno 1 es 3V3. 2 y 4 son 5V. La falta de conciencia de cuál es el propósito de los pasadores puede ser peligrosa.”
Dicho de esta manera, tiene sentido absoluto utilizar los números de BCM. Dado que GPIO Zero será estándar en la documentación de Raspberry Pi en el futuro, vale la pena aprender!
Es GPIO Zero realmente mejor?
Si bien parece más sencillo en la superficie, ¿la biblioteca tiene algún problema? Al igual que con cualquier nueva biblioteca de codificación, 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 qué está pasando es importante para aprender. Tome el ejemplo de configurar un botón de la 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, así que usa el número de pin declarado para la configuración. Verificar la pulsación de un botón también es más fácil, con la .se presiona para detectar pulsaciones de botones.
Usamos esta funcionalidad exacta en el tutorial del botón Raspberry Pi 2 maneras de agregar un botón a su proyecto Raspberry Pi 2 maneras de agregar un botón a su proyecto Raspberry Pi ¿Cómo se conecta un botón a su Raspberry Pi? Aquí hay dos formas de comenzar, demostrar 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 la Pi no están configuradas en el código. Ésto plantea una pregunta interesante. ¿Es esencial que los principiantes sepan acerca de las resistencias pull-up / down? Una vez más, Ben Nuttall tiene una respuesta a esta pregunta:
“Podría argumentar que es bueno saber acerca de las flexiones y bajadas, y tendría razón, pero ¿por qué tengo que enseñar eso el primer día? [...] Si desea enseñar la electrónica con mayor profundidad, hay un montón de espacio para eso, pero no debería ser obligatorio si recién estás empezando.”
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 idioma por el que se conoce al 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 el 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 la Raspberry Pi, aunque la Pi podría no ser la mejor manera de aprender Rails!
Todas estas alternativas, junto con las bibliotecas en varios idiomas, como el excelente pigpio, pueden hacer que la elección de una biblioteca sea confusa. Aquí es donde sobresale GPIO Zero: 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 preparado para sumergirse en estas otras bibliotecas a su propio ritmo..
Empezando con GPIO Zero Yourself
GPIO Zero es la biblioteca más nueva para crear un toque para la Pi y con buena razón. Para la mayoría de los usuarios, hace que la codificación de los 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 de tema cuando entras en la sala con Raspberry Pi Toca tu propia melodía de tema cuando entras en la sala con Raspberry Pi ¿Alguna vez has querido? ¿Llegar a casa a una bienvenida personal? En este sencillo proyecto de Raspberry Pi usaremos un interruptor de lengüeta para activar una melodía cuando se abra una puerta. Lea más y transfiéralo a la nueva biblioteca..
Explora más acerca de: GPIO, Python, Raspberry Pi.