sábado, febrero 13, 2021

Proyectos educativos con Micro:bit para educar a futuros Makers: Control Remoto de Spotify

Hace unos meses os hablamos de la Raspberry Pi y Raspberry Pi Zero con un montón de proyectos que puedes ver en este artículo donde se explora su gran potencial a la hora de realizar varios proyectos educativos o simplemente utilizarla para desafía vuestra faceta Maker. De aquí, podéis seguir creciendo hasta llegar a hacer algo como hizo la gente de LemonCrest, que llegó a crear sus propias consolas de juegos.

Figura 1: Proyectos educativos con Micro:bit para
educar a futuros Makers: Control Remoto de Spotify

Si tienes la afición de hacer cosas, los libros de Arduino para Hackers: PoCs & Hacks Just for Fun, el de Raspberry Pi para Hackers y Makers: PoCs & Hacks Just for Fun y el de Hacking con Drones: Love is in the air, son los libros que debéis leer de nuestros compañeros.
Y para seguir con esta pasión, hoy damos comienzo a una serie de artículos en la que os hablaremos de proyectos similares pero esta vez tomando como plataforma una placa Micro:bit, de la que ya se ha hablado algo por este blog en estos artículos:


Si todavía no conoces Micro:bit, se trata de una iniciativa educativa de la BBC que pretende acercar la programación a la gente más joven a través de la programación de una pequeña placa (microordenador) muy similar a otras placas como la Raspberry Pi o Arduino.

Figura 3: Placa Micro:bit

Micro:bit es compatible con Python, Java y algunos lenguajes de bloques como Scratch, por lo tanto, ofrece numerosas posibilidades a la hora de programar y no es necesario contar con un software específico, o si prefieres no descargar ningún software puedes hacer tu código directamente desde MakeCode, el editor online de Micro:bit.

Controlar Spotify con Mibrobit

En este caso os explicaremos cómo construir un mando inalámbrico con el que controlar vuestra aplicación de Spotify en Windows. Para ello necesitaremos dos placas de Micro:bit, una de las placas estará conectada a nuestro ordenador todo el rato y actuara como proxy mientras que la otra será la que mande las órdenes a través de señales de radio. En este caso utilizaremos la propia página de Micro:bit para crear el código

Placa 1: Proxy

Nuestro proxy simplemente se encargará de recoger cualquier mensaje que la placa reciba por radio y se lo transferirá al puerto serie en el que esté conectado, eso sí, antes de nada, deberemos configurar un grupo de radio para que no haya interferencias con otras placas Micro:bit u otros dispositivos que utilicen este método de comunicación. 

Figura 4: Placa configuración como proxy

Para ello usaremos los siguientes comandos que se ven en la Figura 3: Al iniciar + radio establecer grupo + 55 (este es el canal que usaremos en este caso). También podemos añadir alguna animación con los leds de la placa para que nos indique cada vez que reciba una orden.

Placa 2: Control Remoto   

El primer paso será establecer el mismo grupo de radio que en la placa número 1, así podrán comunicarse entre ellas sin interferencias, hecho esto el siguiente paso es crear los “botones” que queramos en nuestro control remoto, para este ejemplo haremos los botones de pausa y reproducción que se activaran al pulsar cualquiera de los botones (A o B) de nuestra placa. Para hacer el experimento mas intuitivo utilizaremos los led de la placa para mostrar los iconos PLAY y PAUSE dependiendo el estado en el que se encuentre la aplicación.

Figura 5: Control Remoto

Para ello crearemos una variable llamada interruptor y una función llamada activar int con la que enviaremos la señal a nuestro receptor. Ahora que ya tenemos nuestras dos placas conectadas y emitiendo en la misma frecuencia solo nos queda hacer que nuestro ordenador interactúe con la placa receptora.

Comunicación con el ordenador

Para que nuestra Micro:bit conectada al puerto serie se comunique con el ordenador y a su vez con la aplicación de Spotify deberemos instalar Node y generar un proceso para que el ordenador lea la información del puerto serie correcto. Por suerte para nosotros existe una librería llamada node-serialport que nos facilitará mucho el trabajo.

Para empezar, tendremos que crear un nuevo directorio en el que guardar nuestro proyecto e instalar la librería. Después utilizando el editor que más nos guste tendremos que crear un archivo al que llamaremos microbit-spotify.js y en el que copiaremos el código que viene a continuación.
var SerialPort = require("serialport");
const Readline = SerialPort.parsers.Readline;

const SpotifyWebHelper = require('spotify-web-helper');
const spotify = SpotifyWebHelper({'port': 4381});

var port = new SerialPort('COM7', {
 baudRate: 115200,
 autoOpen: false
})
const parser = new Readline();
port.pipe(parser);

spotify.player.on('ready', () => {
    console.log("Spotify ready")
    port.open(() => {
        console.log("Port open");
        parser.on('data', (data) => {
            console.log('Received Data: ' + data.toString());
            processData(data);
        });
    })

    function processData(data) {
        if (data.indexOf('PLAY') == 0) {
            // Handle PLAY received
            spotify.player.pause(true);
        } else if (data.indexOf('PAUSE') == 0) {
            // Handle PAUSE received
            spotify.player.pause(false);
        }
    }
});
Ahora que ya hay comunicación entre el ordenador y la Micro:bit solo nos falta que la placa se conecte con la aplicación de Spotify. Existen numerosos paquetes de Node para interactuar con Spotify, en este caso usaremos el paquete Spotify-web-helper. Deberemos instalarlo en nuestro directorio e importarlo al comienzo del archivo creado en los pasos anteriores. Es importante tener en cuenta que el puerto que utiliza por defecto la librería es el 4370, así que deberemos de cambiarlo al puerto 4381 para que funcione correctamente. 


Figura 6: Control de Spotify con Micro:bit

En cuanto a el código del control remoto si la única función que queremos configurar es la de PLAY y PAUSE la forma más sencilla es hacerlo con un parámetro booleano. Al igual que hemos hecho los botones PLAY y PAUSE se podría configurar un botón de la placa para pasar de canción, o llevarlo donde quieras de complejo. En el vídeo se puede ver cómo se tiene el control completo de las playlists.

Autor: Sergio Sancho, Security Researcher en Ideas Locas.

No hay comentarios:

Entrada destacada

10 maneras de sacarle el jugo a tu cuenta de @MyPublicInbox si eres un Perfil Público

Cuando doy una charla a algún amigo, conocido, o a un grupo de personas que quieren conocer MyPublicInbox , siempre se acaban sorprendiendo ...

Entradas populares