Skip to main content

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

2024-12-05 12_29_44-Presentación1 - PowerPoint.png

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

ECHIDNA-PIANOLUZ1.png

En el objeto, el panda es

ECHIDNA-PIANOLUZ2.png

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