# MONTAJE 6 Piano luminoso

#### <span style="background-color: rgb(255, 255, 255); color: rgb(22, 145, 121);">**Enunciado**</span>

<p class="callout info">*Realizar un programa que suene una nota diferente según la luz*</p>

##### <span style="color: rgb(22, 145, 121);">**Solución en EchidnaScratch**</span>

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](https://libros.catedu.es/uploads/images/gallery/2024-12/scaled-1680-/2024-12-05-12-29-44-presentacion1-powerpoint.png)](https://libros.catedu.es/uploads/images/gallery/2024-12/2024-12-05-12-29-44-presentacion1-powerpoint.png)

<iframe allowfullscreen="allowfullscreen" height="314" src="https://www.youtube.com/embed/O59dMDvtELQ" width="560"></iframe>

Todos los programas de este curso se encuentran en este repositorio: [https://github.com/JavierQuintana/Echidna](https://github.com/JavierQuintana/Echidna)

##### <span style="color: rgb(22, 145, 121);">**Solución con mBlock5**</span>

En el Arduino el programa es

[![ECHIDNA-PIANOLUZ1.png](https://libros.catedu.es/uploads/images/gallery/2023-11/scaled-1680-/echidna-pianoluz1.png)](https://libros.catedu.es/uploads/images/gallery/2023-11/echidna-pianoluz1.png)

En el objeto, el panda es

[![ECHIDNA-PIANOLUZ2.png](https://libros.catedu.es/uploads/images/gallery/2023-11/scaled-1680-/echidna-pianoluz2.png)](https://libros.catedu.es/uploads/images/gallery/2023-11/echidna-pianoluz2.png)

<p class="callout warning">Nota: se ha incorporado una música con un tono, el C Elec Piano</p>

El programa lo tienes aquí

[https://planet.mblock.cc/project/projectshare/3228812](https://planet.mblock.cc/project/projectshare/3228812)

##### <span style="background-color: rgb(22, 145, 121);">**Con mBlock versión 3 ATENCIÓN ESTA VERSIÓN ES OBSOLETA NO RECOMENDADO sólo para PCs muy viejos**</span>

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](#bkmrk-3.2.3.1-cambios-de-e)*

##### Solución

  
El programa es pues el siguiente  
  
![](https://libros.catedu.es/uploads/images/gallery/2022-03/embedded-image-pc7ndklq.png)  
  
¿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](https://libros.catedu.es/books/echidna/page/124-mblock-vs-snap4arduino-cual-es-el-mejor#bkmrk-1.2.4.7-importante-s).

El resultado lo puedes ver en [este vídeo](https://www.youtube.com/watch?v=b7SSXn4q8WM):

<iframe allowfullscreen="allowfullscreen" height="314" id="bkmrk--11" src="//www.youtube.com/embed/b7SSXn4q8WM" width="560"></iframe>

##### 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](#3-2-1-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**:

![](https://libros.catedu.es/uploads/images/gallery/2022-03/embedded-image-sd1d3wb8.png)

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

![](https://libros.catedu.es/uploads/images/gallery/2022-03/embedded-image-nmekugja.png)

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](https://docs.google.com/spreadsheets/d/e/2PACX-1vTyASTvUIs_xsZ8c4RZOJ1sEstk4Cc6d--_Drne_U0o1_CXhgzxQkvZ4ZNYGLdKa2lrhLHDKmAwsKnK/pub?output%3Dxlsx) 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:

![](https://libros.catedu.es/uploads/images/gallery/2022-03/embedded-image-ayouzjze.png)

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