Saltar la navegación

Reto 6: Melodías codificadas

 

MelodíaEn este reto vas a tener que descodificar melodías escritas en formas de código de barras. ¿Cómo? Utiliza el siguelíneas para que lea el código de barras, acumula los datos leídos (deberás usar listas para acumular tantos datos) y luego transforma esas señales en una hermosa melodía.

Como en los casos anteriores, tienes el vídeo que te ayudará a comprender el objetivo pretendido.

Guía de apoyo

Como el siguelíneas tiene dos sensores de infrarrojos, vamos a utilizar uno de ellos para establecer los tiempos, y así indicarle al otro cuando tiene que leer y cuando no. Los datos captados por el sensor que lee solo pueden ser 1 o 0; tendremos que combinar secuencias de 1 y 0 para poder distinguir 7 datos y, por tanto, las 7 notas. Tendrás que trabajar, por tanto, con señales digitales. 

Para poder trabajar con los sensores del siguelíneas de forma separada tenemos la instrucción:

Instrucción del senso IR del siguelíneas

Según elijamos Banco 1/2 será un sensor u otro, antes de nada identificar cual es cual. Esta instrucción devuelve un cero (cuando el sensor ve blanco) o un uno (cuando el sensor ve negro).

Si se introduce la intrusión anterior en una espera como se muestra a continuación:

¿Qué haría esta intrusión? Detener la ejecución del programa hasta que "sensor de límite....." vale uno, esto es cuando ve negro ese sensor; en ese momento continúa la secuencia de ejecución del programa.

Análogamente, tenemos esta instrucción que hace que continúe el programa cuando "sensor de límite...." vale cero (pues como está negado, el conjunto pasaría a valer 1), esto es, cuando ve blanco.

Con estas instrucciones podemos establecer los tiempos en los que el otro sensor tiene que leer el código. Para reproducir 7 notas necesitamos combinar 3 ceros y uno, así tendremos:

Nota Código Colores
Do 000 blanco-blanco-blanco
Re 001 blanco-blanco-negro
Mi ... ...

Sigue tu montando la tabla. 

Ejemplo de nota codificada

En la imagen mostramos como sería el código de barras para una nota. Como ves, en la columna de la derecha tenemos la temporalización, cada vez que el sensor del banco 1 haga la secuencia negro-blanco deberá el banco 2 hacer la lectura (cuadro verde). En esa imagen la lectura es 001, por lo que se corresponde con la nota Re. Los cuadros son más anchos que un código de barras normal por el ancho del propio sensor, si son muy finos detecta siempre blanco, pues siempre hay algo de reflejo. 

Plantéate el reto por etapas, primero intenta hacer la lectura del código de barras, guardando los datos en una lista. Puedes ir viendo si lo hace bien pues la lista es visible por pantalla.

Cuando tengas la lectura del código de barras resuelta, transforma los datos de la lista en notas musicales. Vas a tener que utilizar la siguientes instrucción:

Usar bucle para leer una lista

Para que repita la comparación tantas veces como elementos tiene la lista.