Instrumento musical con arduino

SISTEMAS EMPOTRADOS Y DE PROCESAMIENTO REAL
Intrumento musical con arduino
Grupo 11
Alicia Gálvez Jiménez
Mohamed Marheraoui del Álamo
Virginia Chacón López








ÍNDICE

1.    
Introducción
2.    
Presupuesto y Componentes
3.    
Circuito
4.    
Implementación
5.    
Código de Arduino
6.    
Manual de usuario
7.    
Posibles mejoras
8.    
Problemas durante
el desarrollo



1.      Introducción
Nuestro proyecto consiste en un instrumento musical
electrónico realizado con arduino y materiales reciclados, en los que incluimos
vasos de plástico y una caja que servirá de soporte para estos. Cada vaso
contiene un fotoresistor cuya función será medir la cantidad de luz que tiene.
Así generamos las notas musicales, tapando la luz de dichos vasos en los que se
diferencias diferentes tonos y así poder reproducir una canción.
2.      Componentes
Aquí mostramos los componentes que hemos usado para poder
componer nuestro instrumento musical, tanto tecnológicos como estructurales.
Un elemento fundamental para la estructura de nuestro
instrumento musical son los 6 vasos que la
componen incorporado con una caja de
cartón.

Estos elementos los hemos incorporado haciéndole una
circunferencia por vaso en la caja y sellándolos con una pistola termofusible.

Dentro de estos vasos, unimos 6
fotoresistencias de 10K con el objetivo de medir la luz que pasa a través de
ellos.

Éstas, van a estar conectadas a través de 12 pinzas cocodrilo, una pinza
por cada pata del fotoresistor.


Es imprescindible para el correcto
funcionamiento de las fotoresistencias, incorporar resistencias apropiadas en
cada una de ellas. En este caso, tras evaluar nuestra situación, incorporamos
resistencias de 330 Ohm.

Todo esto, irá conectado en una placa base como la
que mostramos a continuación.

En la caja, también encontramos un altavoz  de 4 Ohm y 10 W el cual emite sonidos, una
pantalla LCD en la que mostraremos las opciones que tenemos para tocar nuestras
canciones y 3 botones con los que elegiremos las opciones que se mostrarán en
el LCD.

La
placa que se usa es ARDUINO UNO.

PRESUPUESTO
COMPONENTE
UNIDAD
PRECIO
VASOS
Recicladoà
0€
CAJA
DE CARTÓN
Recicladoà 0€
FOTORESISTORES
10
5,00 €
PINZAS
DE COCODRILO
20
7,00 €
RESISTENCIAS DE 330
Ohm
10
1,00 €
PLACA
MADRE
Reciclado
à0€
ARDUINO
Prestadoà0€
LCD
2X16
1,00 €
CABLES
Prestado à0€
ALTAVOZ
4Ohm y 10W
13,27 €
BOTONES
3
Prestado à0€
TOTAL
27,27€
3.      Circuito

4.      Implementación
Paso 1: Incorporamos los fotoresistores
en los vasos y los pegamos en la caja junto con el LCD y los botones. Este será
el aspecto final que tendrá nuestro proyecto por delante y por detrás en este
punto.

-Paso 2: empezamos a hacer las
conexiones del LCD en el tablero de circuitos y en el Arduino. Agrupamos los
cables y los pegamos en la caja para poder tener un orden en el cableado. El
resultado final será así en este punto.
Paso 3: Conectamos los fotoresistores
en el tablero de circuitos y el Arduino utilizando los cables con pinzas de
cocodrilo para así poder coger cada pata del fotoresistor. Este es el resultado
final en este punto.

Paso
4
: Incorporamos a la caja el altavoz con una pistola termofusible y lo
conectamos al arduino y al tablero de circuitos. Y así se quedaría el resultado
final.

5.      Código de Arduino
long DO=523,
     DOS=554,
     RE=587,
     RES=622,
     MI=659,
     FA=698,
     FAS=739,
     SOL=783,
     SOLS=830,
     LA=880,
     LAS=932;
int altavoz=13;
const int ldrPin0 = 0;//Declaramos el pin de sensor tactil1
const int ldrPin1 = 1;//Declaramos el pin de sensor tactil1
const int ldrPin2 = 2;//Declaramos el pin de sensor tactil2
const int ldrPin3 = 3;//Declaramos el pin de sensor tactil3
const int ldrPin4 = 4;//Declaramos el pin de sensor tactil4
const int ldrPin5 = 5;//Declaramos el pin de sensor tactil5
//Declaración de variables para el estado del sensor
int estadoLdr0 = 0;
int estadoLdr1 = 0;
int estadoLdr2 = 0;
int estadoLdr3 = 0;
int estadoLdr4 = 0;
int estadoLdr5 = 0;
void setup() {
            //Iniciamos el puerto serie
            Serial.begin(9600);
            pinMode(altavoz,
OUTPUT);
 }
void loop()
{
 
//Leemos y guardamos el estado de
los sensores
 
estadoLdr0 = analogRead(ldrPin0);
 
estadoLdr1 = analogRead(ldrPin1);
 
estadoLdr2 = analogRead(ldrPin2); 
 
estadoLdr3 = analogRead(ldrPin3);
 
estadoLdr4 = analogRead(ldrPin4);
 
estadoLdr5 = analogRead(ldrPin5);
//Mientras el sensor 0 este
pulsado suena la nota 0
 
while(estadoLdr0<300){
            tone(altavoz,
DO);
            estadoLdr0
= analogRead(ldrPin0);
            Serial.println(“Ldr0
“);//Imprimimos “Tactil1 “
 
}
//Mientras el sensor 1 este
pulsado suena la nota 1
 
while(estadoLdr1<300){
            tone(altavoz,
RE);
            estadoLdr1
= analogRead(ldrPin1);
            Serial.println(“ldrPin1
“);
 
}
 
//Mientras el sensor 2 este pulsado suena la nota 2
 
while(estadoLdr2<300){
            tone(altavoz,
MI);
            estadoLdr2
= analogRead(ldrPin2);
                        Serial.println(“ldrPin2
“);
            }
            //Mientras el sensor 3 este pulsado
suena la nota 3
            while(estadoLdr3<300){
                        tone(altavoz, FA);
                        estadoLdr3 =
analogRead(ldrPin3);
                        Serial.println(“ldrPin3
“);
            }
            //Mientras el sensor 4 este pulsado
suena la nota 4
            while(estadoLdr4<300){
                        tone(altavoz, SOL);
                        estadoLdr4 =
analogRead(ldrPin4);
                        Serial.println(“ldrPin4
“);
            }
            //Mientras el sensor 5 este pulsado
suena la nota 5
            while(estadoLdr5<300){
                        tone(altavoz, LA);
                        estadoLdr5 =
analogRead(ldrPin5);
                        Serial.println(“ldrPin5
“);
            }
            noTone(altavoz);
}
6.      Manual de usuario
Una
vez que se ejecuta Arduino, en el LCD podremos elegir entre “APRENDE”, “RETO” o
“->”. Si no se toca ninguna opción, se puede tocar de modo libre el instrumento
sin seleccionar ninguna de las opciones.
Como
hemos podido observar en el apartado anterior, debajo del LCD hemos incorporado
unos botones, que serán con los que el usuario deberá elegir entre las opciones
mencionadas anteriormente.
Pulsando
en el botón de “->”, el usuario volverá al estado inicial del LCD, es decir,
el menú principal. Por otro lado, tenemos las opciones:
-OPCIÓN
APRENDE: en esta opción el usuario podrá aprender a usar nuestro instrumento
musical  tocando una canción. Por el LCD
le aparecerán las notas que debe tocar despacio para que al usuario le de
tiempo a tocar las notas y a aprender dónde se encuentra cada una.
-OPCIÓN
RETO: en este caso, el usuario deberá toca una canción cuyas notas aparezcan en
el LCD a gran velocidad, al mismo tiempo en que aparecen.
Las
notas musicales corresponden de izquierda a derecha en los vasos:
DO,
RE, MI, FA, SOL, LA
En
los siguientes enlaces se pueden ver los vídeos sobre el resultado final del proyecto, además de servir como guía para el usuario:
* Modo aprende: https://youtu.be/rd2qer1wW7M
* Modo reto: https://youtu.be/rzkHdU7I3gE
* Modo libre: https://youtu.be/zNFFIMn0xFE
7.      Posibles mejoras
En las posibles mejoras destacamos:
         
Mejorar el funcionamiento del LCD en la opción
RETO para que se sincronice con los fotoresistores de forma que cambie de
estado del LCD al detectar una nota (al detectarse un fotoresistor).
8.      Problemas durante el desarrollo
Entre
los problemas que hemos tenido en el desarrollo de nuestro proyecto destacamos:
         
En primer lugar, decidimos utilizar el ordenador
para emitir el sonido que se reproduciría al detectar luz en cada fotoresistor.
Tras una investigación exhaustiva, llegamos a la conclusión de poder hacer esto
de dos formas:
o  
El programa “miniAudicle”, que es un entorno
gráfico integrado para la síntesis de audio digital cuyo lenguaje de
programación es Chuck. Configurando éste para coger señal del Arduino, seríamos
capaces de emitir sonidos con el altavoz de nuestro ordenador. Descartamos la
posibilidad de utilizar este método debido a la dificultad que presentaba la
conexión de miniAudicle con Arduino. Tras intentarlo reiteradas veces,
decidimos cambiar de estrategia.
o  
A través de “Scratch”. Haciendo investigaciones,
si utilizábamos este programa, no se programaría nada en Arduino sino en este
entorno y por ello decidimos descartarlo.
         
Tras estos problemas presentados en primer
lugar, compramos un altavoz para sustituir los altavoces del ordenador.
Procedimos a la conexión de estos con un fotoresistor, y funcionaba en su
perfección. El problema surgió al conectar varios fotoresistores ya que el
altavoz empezó a emitir un sonido distorsionado. Este problema fue solucionado ya
que era una cuestión de código.
         
El LCD funcionaba perfectamente cuando le
hacíamos la conexión únicamente con el arduino pero tras conectarlo con los
fotoresistores y el altavoz salían en la pantalla letras y cuadrados que no
estaban configurados en el código. Esto se consiguió solucionar en la
funcionalidad RETO y conseguimos controlar también que volviese al menú cuando
le pulsábamos la opción “->” (menú principal).

También te podría gustar...

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *