No se como reproducir sonidos en la cpu con arduino.

Iniciado por LaRazonQueTeDemora, 8 Agosto 2013, 22:56 PM

0 Miembros y 1 Visitante están viendo este tema.

LaRazonQueTeDemora

Holass. Me desafié a mi mismo a armar una batería (me refiero al instrumento musical), con sensores piezoeléctricos, y que cuando el sensor mande las señales de una fuerza/vibración a arduino, reproducir el sonido correspondiente a cada sensor. Me explico mejor: Tengo tres sensores, uno para el platillo, otro para la tarola y otro para el bombo. entonces, (sabiendo en que pin esta conectado el sensor obvio) necesito que cuando toque el sensor correspondiente al bombo, suene el bombo desde la computadora con arduino conectado a esta. tengo los sonidos de los instrumentos de la batería (bombo, tarola, platillos) que duran c/u menos de 3 segundos, depende el instrumento, cosa de que al reproducir el sonido sea casi instantáneo. el problema es que no se como hacer las configuraciones necesarias para que funcione eso (lo de los sonidos en la pc).
Además, tiene que ser algo que soporte dos sonidos a la vez, ya que si toco el bombo y un platillo al mismo tiempo tienen que sonar los dos.

Alguien sabe que tengo que leer o buscar para aprender lo necesario para realizarme este proyecto?
Gracias de antemano, abrazo!

engel lex

ya no es solo "configuración" el arduino tiene capacidad de comunicacion serial... recomiendo:

asignale un valor binario a cada sonido por ejemplo:
tambor_1 = B00001
tambor_2 = B00010
tambor_3 = B00100
platillo = B01000
bombo = B10000

entonces lees los inputs, creas una variable con el valor final y haces if


int valor_final=0;
if(input1==1) valor_final+=tambor_1;
if(input2==1) valor_final+=tambor_2;
if(input3==1) valor_final+=tambor_3;
if(input4==1) valor_final+=platillo;
if(input5==1) valor_final+=bombo ;



luego usas serial.print para imprimir por serial el valor_final


en tu pc, debes tener un programa que lea serial, y según el valor, reproduzca el sonido...
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

LaRazonQueTeDemora

Gracias por responder engelx.
La verdad no tengo mucha idea de esto de electrónica y software, pero gracias a los foros e info de Internet me arreglo para aprender mas.
No se si entendí bien el concepto de tu recomendación. Osea vos decís que primero le de un valor binario a los sonidos individualmente, bien. Después que lea los inputs, ¿con eso queres decir que conecte los sensores a arduino, y esta a la cpu y lea los  inputs de los sensores cuando reciben el golpeteo? Lo del variable con el valor final no lo entendí tampoco.. :S .. Vos pusiste:
if(input1==1) valor_final+=tambor_1;
que seria el valor final? input1 tengo que leerlo con read () aparte de todo, no?
Perdona mi ignorancia, soy medio torpe jaja!
abrazo

engel lex

sorry ;) es que puse el codigo por encimita y lo resumí como un medio pseudocodigo... :P

input del 1 al 5 irian en el codigo como


if(digitalRead(pinN)==HIGH) valor_final+=instrumento;


pinN seria tu respectivo pin a leer... (claro el numero correcto para cada uno)
instrumento seria el valor asignado para cada instrumento (como tambor_1)

si, cada cierto tiempo (eso lo controlarás con un wait) lees las entradas a ver si hubo un golpe, la variable final la hice en binario por cosas de practicidad... pero perfectamente puedes hacer algo como


Serial.println("inicio ciclo");
if(digitalRead(pin1)==HIGH) Serial.println("pin1");
if(digitalRead(pin2)==HIGH) Serial.println("pin2");
//igual para los demás
Serial.println("fin ciclo");

y que el programa que lea la entrada serial haga sonar el instrumento cada vez
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.