sábado, julio 29, 2017

Leds y voz con Raspberry Pi

sábado, julio 29, 2017

Este proyecto ha surgido de la idea de hacer simple una tarea utilizando el lenguaje nativo que cualquier persona conoce sin ningún tipo de conocimiento técnico previo.


Sin movernos del contexto de la informática, todo comienza con ¿qué es una interfaz? Una interfaz es aquello que nos permite interactuar con un ordenador. Y hasta que un ordenador no sea inteligente, la manera de interactuar con él es enviando órdenes.

Hoy una de las interfaces más extendidas y fáciles de utilizar son las interfaces de las tablets y móviles actuales. A base de simplificar con iconos lanzadores de aplicaciones que pueden ser ejecutadas con el simple hecho de mover el dedo y deslizar, presionar o levantar el dedo de ellas podemos enviar comandos de una manera sencilla.

Es algo que parece muy fácil a los que día a día utilizan este tipo de tecnologías, y el comportamiento es bastante sencillo de reproducir por otras personas, pero no por todas.

Si se observa a un niño que nunca ha utilizado una tablet, se verá que puede interactuar con su interfaz de manera rápida, pero si se mira más detenidamente un niño carece de la capacidad innata de utilizar una interfaz táctil, como todo ser humano tiene que aprender.

Evidentemente, que sea fácil de aprender no quiere decir que sea intutivo. Los dedos no saben, tienen que aprender (que se lo digan a un pianista). Las personas mayores no tienen la capacidad que sí tiene un niño de aprender una nueva interfaz, por muy sencilla que sea. Todos tienen que educar su mente para adaptarse a esa interfaz, y no a todos les es intuitivo lanzar estos comandos.

Uno de estos proyectos ha sido programar una pantalla de leds para que pueda ser usada con una Raspberry Pi y se pueda interactuar con ella sin necesidad de abrir ningún terminal. La verdadera finalidad de la pequeña muestra es que una persona sin ningún tipo de conocimiento pueda usarlo utilizando simplemente su voz y los ojos.

Con un poco de trabajo y paciencia se puede probar algo tan simple como montarte tu propio panel leds y usarlo como interfaz de salida. La construcción es bastante sencilla (al menos el prototipado):







Y reduciendo la cantidad y tamaño de cables (después de testear que todo está ok y que el desarrollo puede perfeccionarse) obtendremos algo así:


Bien, el hardware está ok, ahora queda la parte del software. En este caso he trabajado con un script que está siempre escuchando, y todo lo que se escucha es procesado y transcrito (porque la verdadera finalidad es controlar una Raspberry Pi). Los pasos que se han seguido son los siguientes:
  • Enviar texto a los arrays de leds de manera que pueda leerse con facilidad.
 
  • Mostrar un texto desde la salida de un script.
  • Generar una respuesta a partir de la entrada de voz.
  • Procesar la voz, traducir en órdenes y ejecutar scripts. 
 


Dependiendo de lo que se comunique se pueden programar más órdenes. En mi caso todo se ejecuta a base de scripts, se analiza el lenguaje y dependiendo de lo que se haya ordenado se lanzan comandos con los parámetros necesarios para ofrecer una respuesta acorde a lo que se ha pedido.

La mejor interfaz es la de order y respuesta.


Bit
Hide Me!