Archivos de la categoría GPIO

Detalle del prototipo donde se pueden ver las conexiones a cada uno de los terminales del LED

Programar un LED RGB con GPIO Zero

En este artículo veremos lo sencillo que es actuar sobre un prototipo formado únicamente por un LED RGB desde la Raspberry Pi. Necesitaremos lo siguiente:

  • Una Raspberry Pi con las librerías GPIO Zero para Python 3 instaladas.
  • Una placa de prototipado
  • Tres resistores de 220 Ω
  • Cuatro cables de interconexión
  • Un LED RGB de cátodo común
  • Opcional: placa de expansión.

Para programar este prototipo usaremos desde Python la librería GPIO Zero, de la que ya os hablé en su día en un artículo especialmente dedicado a ello. Veréis lo simple que queda el código.

Sigue leyendo Programar un LED RGB con GPIO Zero

GPIO Zero: simplifica el control de prototipos desde Python

El pasado mes de noviembre tuve la oportunidad de grabar un podcast en directo con Diógenes Digital, en el que hablamos largo y tendido de Arduino, Raspberry Pi y niños aprendiendo robótica y programación. En aquel programa discutíamos las diferencias, los usos y enfoques de estas dos plataformas, y una de las cuestiones que comentaba era el control de motores, prototipos y dispositivos comunes a través de los pines GPIO de la Raspberry Pi.

La librería estándar a través de la cual venimos controlando nuestros prototipos desde Raspbian, RPi.GPIO, exige al programador pensar en términos de pines y de tensiones:

  • Configurar un determinado pin como entrada o como salida
  • Poner tal o cual pin a nivel alto (3,3 V) o a nivel bajo (0 V)

Es decir, ofrece una solución de muy bajo nivel en el sentido de que obliga a pensar en esos términos (pines GPIO), en lugar de los componentes que queríamos controlar (LED, pulsador, motor,…). Por lo tanto, la distancia que hay entre manejar los voltajes de los pines que usas en tus proyectos y el efecto final (que un LED se encienda, que un motor haga girar un brazo 90 grados,…) la debes asumir tú y resolver por tus propios medios. Al empezar con estas cosas, cuanto más trabajemos con pines y voltajes en lugar de con motores y componentes, más esfuerzo debemos hacer al diseñar nuestros programas y por lo tanto más riesgo de frustrarnos corremos en nuestro aprendizaje.

En este artículo os voy a introducir una alternativa a RPi.GPIO, aparecida el pasado mes de noviembre, y que os facilitará el trabajo con prototipos: GPIO Zero (inglés). Con ella, podrás enseñar a quien tengas a tu alrededor los fundamentos básicos de la programación relacionada con objetos del mundo real de una forma más amigable que hablándole de pines y tensiones.

Sigue leyendo GPIO Zero: simplifica el control de prototipos desde Python

Solución al ejercicio del prototipo con pulsador

Hace un par de semanas nos divertíamos con un prototipo que contaba nada menos que con un LED y un pulsador, aprendiendo a controlar el LED gracias a la señal proveniente del pulsador que introducíamos por un PIN GPIO.

Al final del artículo os proponía un ejercicio que decía así:

Tomando como base los programas de este artículo, consigue variar su funcionamiento de tal forma que pulsar el botón cambie su estado. Es decir, una pulsación lo enciende, otra lo apaga; si dejamos el dedo oprimiendo el pulsador, el LED parpadea cambiando de estado cada segundo. Como en este vídeo:

Consideraciones para Python: puedes usar un bucle infinito en Python (while True:), y terminar el programa usando la combinación de teclas CTRL + C (pulsar a la vez las teclas Control y C).

Lo mejor, en cualquier caso, sería que usases un bloque try: ... finally: ... como los que vimos en el artículo de excepciones, para hacer cosas como liberar recursos y apagar el LED antes de finalizar el programa.

Vamos a ver la solución.

Sigue leyendo Solución al ejercicio del prototipo con pulsador

Vuelve la electrónica: recibir información a través del GPIO de la Raspberry Pi

Ha llegado el momento de retomar la electrónica en PItando: hoy vamos a ver cómo se pueden usar pulsadores para introducir información en la Raspberry Pi, a través de los terminales GPIO.

Para eso, en este artículo he ampliado el prototipo que nos viene acompañando en los últimos artículos de electrónica para demostrar conceptos, de la siguiente forma:

Prototipo con pulsador. <strong>Pincha en la imagen</strong> para ampliarla. Pincha, por favor. En serio: pincha.
Prototipo con pulsador. Pincha en la imagen para ampliarla. Pincha, por favor. En serio: pincha.

Como ves, he movido el prototipo conocido a la parte derecha de la placa, y en la izquierda he montado el pulsador. Necesitarás:

  • Una Raspberry Pi
  • Un kit de prototipado (placa de expansión, placa de prototipado o breadboard y el cable de conexión plano)
  • Un diodo emisor de luz, o LED
  • Una resistencia de 330 Ω y otra de 10 kΩ
  • Tres cables de prototipado, cortos
  • Un pulsador

Si tienes un kit como el que uso en PItando, lo tendrás todo.

Sigue leyendo Vuelve la electrónica: recibir información a través del GPIO de la Raspberry Pi

ScratchGPIO: control de prototipos con Scratch

ScratchGPIO es un proyecto de software libre desarrollado por Simon Walters (Cymplecy) que consiste en un añadido a Scratch que lo capacita para manejar los puertos GPIO de la Raspberry Pi. Lógicamente, no es compatible con la versión de Scratch de navegador, por razones obvias: un PC o un Mac no tienen puertos GPIO.

Este proyecto me gusta mucho porque Scratch supone una alternativa muy asequible a Python en función de la experiencia programando y la capacidad de abstracción de la persona que intente programar una placa a través de los puertos. Por ejemplo, si lo que queréis es introducir en estos temas a un niño de corta edad (8 a 12 años), probablemente se incline más por usar Scratch que Python. En este sentido, ScratchGPIO abre la puerta de la electrónica y de la programación a una audiencia mucho más amplia, en edad, que Python.

Actualmente en la versión 7, es compatible con los modelos 1 y 2 de la Raspberry Pi, y es muy fácil de instalar. En este artículo y en el vídeo que lo acompaña lo instalaremos y haremos una prueba rápida con el prototipo del artículo anterior.

Sigue leyendo ScratchGPIO: control de prototipos con Scratch