MONTAJE 6 Piano luminoso
Enunciado
Realizar un programa que suene una nota diferente según la luz
Solución en EchidnaScratch
En echidna no podemos dar las notas numéricas (en mBlock sí) tenemos que utilizar la notación midi a b c d e f g luego simplemente según un nivel de luz que toque una de esas notas
Todos los programas de este curso se encuentran en este repositorio: https://github.com/JavierQuintana/Echidna
Solución con mBlock5
En el Arduino el programa es
En el objeto, el panda es
Nota: se ha incorporado una música con un tono, el C Elec Piano
El programa lo tienes aquí
https://planet.mblock.cc/project/projectshare/3228812
Con mBlock versión 3 obsoleto
En esta versión no es tan sencillo ¿por qué? Porque hay cambios de escala: el LDR nuestro trabaja con valores distintos al de las notas, por lo tanto hay que hacer UN CAMBIO DE ESCALA, y esto necesita un apartado diferente, te recomendamos ver 3.2.3.1 Cambios de escala
Solución
El programa es pues el siguiente
¿por qué lo hacemos con la opción de subir a Arduino? Porque la simulación va lenta (se oye tut-tut-tut) si lo subes al Arduino reproduce el tono correctamente. VER COMO SUBIR AL ARDUINO.
El resultado lo puedes ver en este vídeo:
3.2.3.1 Cambios de escala
Nos encontramos que:
- Los valores de entrada, es decir, el LDR trabaja con unos límites, que según hemos visto en el apartado comprobar los límites, el nuestro va de 108 a 982, llamaremos a esta variable de entrada X
- Los valores de salida son los tonos,que mBlock trabaja con la norma americana (la europea es el típico Do-Re-Mi-Fa-Sol) y los americanos, son valores numéricos que van desde 48 hasta 72 (lo puedes comprobar con la instrucción “tocar nota” que está en Programas-Sonido). Llamaremos a la variable salida de notas Y:
Problema: ¿cómo convertimos X en Y?
Matemáticamente es una recta con una pendiente m y una ordenada n :
Y = m*X + n
Para calcular m y n tenemos que utilizar un sistema de ecuaciones dadas las condiciones límites de X e Y:
- Cuando X = 108 quiero que Y valga 48: 48=m*108 + n
- Cuando X = 982 quiero que Y valga 72: 72=m*982 + n
Ala! dos ecuaciones y dos incógnitas: calcula m y n
Buen ejercicio para los alumnos para que vean matemáticas aplicadas
No obstante, como esto lo repetiremos muchas veces los cambios de escala, hemos confeccionado ESTA HOJA DE CÁLCULO que te lo puedes descargar y facilita las cosas: Ponemos en las celdas amarillas los valores límites :
- X1= 108 X2=982
- Y1=48 Y2=72
Y nos da los valores m y n automáticamente:
Luego la fórmula para el cálculo de la Y (las notas) en función de la luminosidad X es:
Y = 0.027 * X + 45
No Comments