Sense HAT Emulator

Este es uno de los capítulos del tutorial Raspberry Pi 400. Encontrarás los enlaces a todos los de capítulos, al final de este artículo.

Creo, que desde el principio de mis tiempos, me di cuenta que la mejor forma de aprender a programar es programando. Por supuesto que, cuanto mejor, y como mejor se aprende es materializando esos conocimientos en una aplicación, o mejor todavía en algo que puedas ver o incluso tocar. Conseguir que un chisme realice una tarea que tu le has programado, reporta un subidón de adrenalina. El problema es que no siempre estamos en disposición de adquirir chismes. Y con chismes me refiero a cualquier dispositivo que puedas conectar a tu Raspberry, como un sensor de temperatura, humedad, etc. Pero ¿y si pudieras tener un emulador? Pues precisamente de esto trata este capítulo del tutorial de Sense HAT Emulator.

No es necesario que compres ningún dispositivo para aprender a programar o incluso para avanzar en tus conocimientos de programación. Puedes experimentar con el Sense Hat Emulator. En este capítulo te cuento que esto del Sense Hat, el Sense Hat Emulator y como comenzar con esta aplicación con la que podrás disfrutar y profundizar en tus conocimientos de Python y de la programación en general.

Sense HAT Emulator

Sense HAT Emulator

¿Que es el Sense HAT?

Si no conoces el Sense HAT, es muy probable que te estés preguntando que es esto del *Sense HAT. O mejor que es esto de un HAT. Un HAT no es mas una pieza de hardware que se añade a la Raspberry para dotarla de mas funcionalidades. El significado es Hardware Attached on Top, es decir hardware colocado en la parte superior, por aquello de que los *pines* donde puedes conectar dispositivos a la Raspberry quedan en la parte superior, y cualquier dispositivo que conectes a la Raspberry quedará encima de ella.

Existen HAT de diferentes propósitos. Muchos realmente interesantes. HAT que te permiten añadir sensores hasta otros que te permiten interconectar tu Raspberry con otras piezas de hardware, como pueden ser pantallas de tinta electrónica, amplificador y procesador digital de señales, centenares de LED, y mucho mas.

Entre estas piezas de hardware hay uno realmente interesante que es el Sense HAT. Se trata de un dispositivo multipropósito empleado junto con la Raspberry Pi, como el corazón de las unidades Astro Pi que se utilizan en la Estación Espacial Internacional. Si, lo que has leído. Esto permite diseñar y programar un experimento científico para ponerlo en funcionamiento a bordo de la Estación Espacial Internacional. ¿Que te parece?.

Como te decía, el Sense HAT fue concebido para la misión Astro Pi, y puesto en órbita por primera vez, en la Estación Espacial Internacional, en Diciembre de 2015. Se ttrata de un dispositivo que tiene los siguientes dispositivos,

  • una matriz de LED de 8×8
  • botón joystick
  • giroscopio
  • acelerómetro
  • magenetómetro
  • sensor de temperatura
  • sensor de presión
  • y un sensor de humedad

Pero, además, La Raspberry Pi Foundation, implementó una librería Python, que facilita el acceso a todos estos dispositivos. Con lo que crear una sencilla aplicación va a ser algo relativamente sencillo. Al menos saber la temperatura, humedad y presión atmosférica a la que te encuentras, ya no dependerá de la información que te faciliten terceros. Toda esta información la puedes saber tu de primera mano. Aunque es cierto que muchos de estos sensores ya vienen de serie en muchos de los móviles que utilizamos a diario.

¿Cual es el inconveniente del Sense HAT? Para mi, el principal inconveniente del Sense HAT es el precio, porque tiene un coste de unos 40 €, al menos en el momento de escribir este capítulo del tutorial. Y evidentemente esto puede parar a muchos a la hora de adquirir este dispositivo.

¿Que es el Sense HAT Emulator?

El Sense HAT Emulator, es una aplicación, que puede paliar, al menos en parte este problema del coste del Sense HAT, aunque, como te puedes imaginar el subidón de adrenalina no es el mismo. Quiero decir, que no es exactamente lo mismo el Sense HAT Emulator que hacerlo directamente en el Sense HAT, pero, para probar sobra.

Se trata de un desarrollo por parte de la Raspberry Pi Foundation junto con Trinket. El objetivo es proporcionar los recursos necesarios de aprendizaje, y no solo esto. Además, permite que mas gente pueda participar en futuras competiciones de Astro Pi.

Pero no solo esto, sino que además tienes la posibilidad de ejecutar Sense HAT Emulator directamente en tu navegador preferido, con simplemente navegar a Code the Sense Hat. Ahí, directamente puedes probar y ejecutar tu código para ver el funcionamiento.

En el caso que nos ocupa, se trata de una aplicación interactiva, implementada utilizando GTK, con un aspecto como el que te muestro en la siguiente captura de pantalla,

Instalación

Por defecto en Raspberry Pi OS ya viene instalado, pero en el caso de que no lo tuvieras instalado, lo puedes instalar ejecutando las siguientes instrucciones en un emulador de terminal,

sudo apt update
sudo apt install python3-sense-emu sense-emu-tools

En el caso de que lo quisieras instalar en Ubuntu o derivadas, lo puedes hacer añadiendo el repositorio e instalado,

sudo add-apt-repository ppa://waveform/ppa
sudo apt install python3-sense-emu sense-emu-tools

Uso y funcionamiento

Una vez instalada la aplicación, cuando la inicies verás que la pantalla principal está dividida en cuatro partes. En la parte izquierda encontrarás una representación del Sense HAT.

Para actuar sobre el emulador solo tienes que importar el módulo sense_emu en tu script en Python, tal y como te mostraré mas adelante. Pero para que te hagas una idea, utilizando esa librería puedes desde iluminar cualquier LED hasta leer la temperatura.

En la parte inferior de la representación encontrarás unos botones que te permiten girar la vista del HAT.

Justo a la derecha tienes unas barras de desplazamiento que te permitirán modificar los valores de temperatura, humedad y presión. Así, puedes cambiar los valores que obtendrás utilizando la librería que te he mencionado anteriormente.

Mas a la derecha, encontrarás otras barras de desplazamiento que te permiten modificar la orientación del HAT, para modificar los valores que vas a obtener del giroscopio, el acelerómetro y el magnetómetro.

Por último justo debajo de estas últimas barras de desplazamiento, vas a encontrar unos botones que que emularán el joystick del HAT.

Sense HAT API

La clase principal que utilizarás para interactuar con el emulador es SensHat. Esta clase te proporciona acceso a todos los sensores, a los LED y por supuesto, también al joystick.

Así el primer paso sería importarte la clase para empezar a utilizarla. Para ello, simplemente ejecuta la siguiente instrucción,

from sense_emu import SenseHat

Lo mejor de todo es que el código que implementes para el emulador te funcionará exactamente igual, con tan solo cambiar, precisamente la línea anterior con la que te indico a continuación,

from sense_hat import SenseHat

Con esto ya lo tendrías.

Puedes acceder a toda la documentación del emulador, donde se encuentran los diferentes métodos que se utilizan con esta clase desde el navegador Chromium. Para ello, abre la siguiente dirección en el navegador file:///user/share/doc/python-sense-emu-doc/html/api.html.

Para que te hagas una idea. Obtener la temperatura es tan sencillo, como ejecutar las siguientes líneas de código,

from sense_emu import SenseHat

sense = SenseHat()
temperature = sense.get_temperature()
print(temperature)

Según he podido leer en la documentación de Sense Hat Emulator, los desarrolladores de esta aplicación han introducido errores aleatorios en los valores que devuelve la aplicación de presión, temperatura y humedad, de acuerdo a las especificaciones de los sensores reales que incorpora el Sense Hat. Es decir, que aunque tu muevas la barra de desplazamiento a 15 grados, el valor que obtendrás con sense.get_temperature(), será algo distinto. Curioso e interesante.

Algunos ejemplos

Algo realmente interesante que te ofrece Sense Hat Emulator es que viene con algunos ejemplos. Algunos ejemplos que están ordenados por dificultad en tres grupos, simple, intermedio y avanzado.

Por ejemplo, comenzando por el simple, si lo inicias desde el menú, directamente se abre el [editor Python Thonny]() que pudiste ver en el capítulo anterior del tutorial. Lo puedes ejecutar, y por supuesto, que lo puedes modificar, para adaptarlo a tus necesidades. Por ejemplo, el primero de ellos, el de humedad es como te muestro a continuación,

from sense_emu import SenseHat

sense = SenseHat()

green = (0, 255, 0)
white = (255, 255, 255)

while True:
    humidity = sense.get_humidity()
    humidity_value = 64 * humidity / 100
    pixels = [green if i < humidity_value else white for i in range(64)]
    sense.set_pixels(pixels)

Otro ejemplo realmente sencillo, es el de mostrar un texto desplazándose. Simplemente tienes que utilizar las siguientes líneas de código,

from sense_emu import SenseHat

sense = SenseHat

red = (255, 0, 0)
sense.show_message('Hola', text_colour=red)

Conclusiones

Ya has visto lo realmente sencillo que es utilizar este el emulador Sense Hat Emulator. Esto tiene la ventaja de que si no tienes muchos conocimientos de Python o de programación, de forma directa, puedes ir experimentando con las características de este lenguaje de programación. Y sobre todo con la satisfacción, de ver, poco a poco, como lo que vas desarrollando se va materializando en algo cuasi real.


Más información,

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *