Poll
Question: que modelo de arduino es??
yes
no

Pages: [1] 2   Go Down
Author Topic: Bola musical luminosa con led RGB y micro  (Read 4797 times)
0 Members and 1 Guest are viewing this topic.
Coruña (Spain)
Offline Offline
Newbie
*
Karma: 0
Posts: 25
robot POWA!
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Buenas, este es un proyecto de hace un tiempo. lo documento pues varios me han pedido el código smiley

Se trata de una bola luminosa que reacciona al sonido. Según el nivel de ruido se ilumina en azul, verde y rojo secuencialmente.

Es hipnótica funcionando en vivo. Ahi va un vídeo en el que se ve mas o menos el funcionamiento.


[media]http://www.youtube.com/watch?v=_QrF_CfAFEY[/media]

La finalidad de este proyecto era en principio ayudar a darse cuenta de manera visual que se estaba haciendo tanto ruido como para molestar al resto de habitantes de la casa o vecinos.

Después de varias pruebas se encontró la diversión de utilizarlo como luz de efectos para música.[smiley=2vrolijk_08.gif]

Además el módulo montado se puede reutilizar como indicador de cualquier tipo de paramétro. Lectura de un sensor, modos de uso, batería, etc.



Los componentes que se utilizaron fueron:
-Un LED RGB de cuatro patillas ánodo común.
-Tres resistencias de 220 Ohm.
-Un micro preamplificado (Breakout Board for Electret Microphone sku: BOB-08669 de sparkfun)

Este es el circuito:

 

Estas son imágenes del módulo rgb casero:


Fotos del montaje:



Code:
/*
////////////////////////////////////////////////////////////////////////////////
  Bola musical luminosa
 
 Es una bola que reacciona a la presion sonora iluminandose.
 Según el nivel se ilumina secuencialmente  en azul, verde y rojo.
 
 El circuito:
 * LED RGB de 4 patillas. Ánodo conectado a 5v, cátodos conectados a
   pines 9,10 y 11 y luego a tierra a través de resistencias de 220 Ohm.
 * Microfono preamplificado en pin analógico 0. (yo use el Breakout Board
   for Electret Microphone sku: BOB-08669 de sparkfun ).
   Tambien se puede utilizar cualquier elemento que nos proporcione un
   voltaje variable hasta 5V.

 Vídeo:                        http://www.youtube.com/watch?v=_QrF_CfAFEY
 Mira tambien:                 http://www.youtube.com/watch?v=hckZEcqkg40


 creado el 22 de junio de 2010
 Por Alejandro Taracido Cano (TCRobotics)
 Canal de youtube:             http://www.youtube.com/user/TCRobotics
 ///////////////////////////////////////////////////////////////////////////////
  Musical ball light
  
 It is a ball that reacts to the sound pressure with light.
 According to the sound level it sequentially lights in blue, green and red.
  
 The circuit:
 * 4-pin RGB LED. 5v connected to anode, cathodes connected to
   pin 9,10 and 11 and then to ground through 220 Ohm resistor.
 * Analog microphone preamplifiers in pin 0. (I use the Breakout Board
   for Electret Microphone sku: BOB-08 669 from SparkFun).
   You can also use anything that will give us a variable voltage
   between 5 and 0 volts.

 Video: http://www.youtube.com/watch?v=_QrF_CfAFEY
 See also: http://www.youtube.com/watch?v=hckZEcqkg40

 
 created 22 Jun 2010
 By Alejandro Taracido Cano (TCRobotics)
 Youtube channel: http://www.youtube.com/user/TCRobotics
////////////////////////////////////////////////////////////////////////////////
 */
int MicPin = 0;          // pin that the mic is attached to

int redPin = 9;          // pins that the cathodes of LED are attached to  
int greenPin = 10;
int bluePin = 11;

int MicValue = 0;        // the Microphone value

void setup() {
  //Serial.begin(9600);  //for test the input value initialize serial
  pinMode(redPin, OUTPUT);
  pinMode(greenPin, OUTPUT);
  pinMode(bluePin, OUTPUT);

  analogWrite(redPin, 255);       //turn off all LEDs
  analogWrite(greenPin, 255);
  analogWrite(bluePin, 255);
}

void loop() {

  MicValue = analogRead(MicPin);  //read the value of the microphone
 
  //Serial.println(MicValue);     //for test the input value

  if (MicValue > 530) {     //adjust this value to the desired sensitivity
    analogWrite(bluePin,0); //lights up blue
    delay(15);              //small delay for quick response at low noise levels
    }
  
  if (MicValue > 540) {       //adjust this value to the desired sensitivity
    analogWrite(bluePin,255); //lights up green and turn off blue
    analogWrite(greenPin, 0);
    delay(60);               //mid delay for response at mid noise levels
    }
  
  if (MicValue > 550) {        //adjust this value to the desired sensitivity
    analogWrite(greenPin,255); //lights up red and turn off green
    analogWrite(redPin, 0);
    delay(140);                //high delay for response at high noise levels
    }

analogWrite(greenPin, 255);    //Turn off all LEDs
analogWrite(redPin, 255);
analogWrite(bluePin,255);  

}

Se agradecerán los comentarios, preguntas y sugerencias smiley
« Last Edit: June 25, 2010, 08:17:48 am by TCRobotics » Logged


Offline Offline
Edison Member
*
Karma: 23
Posts: 1375
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Debería ser obligatorio que existiera una bola de estas en cada casa, jajaja

Una pregunta, ¿por qué usas salidas analógicas? Supongo que lo habrás puesto para una posible ampliación.

Un saludo
Logged

Mercadillo electrónico. Kit iniciación a Arduino, shield LCD a color y más cosas!

Coruña (Spain)
Offline Offline
Newbie
*
Karma: 0
Posts: 25
robot POWA!
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Jajaajja smiley

Pues si, realmente con este código puedes conseguir colores RGB variando los valores analógicos de cada color. Es una manía mía utilizar el analogwrite en los códigos con LEDs RGB, así si quiero que sea otro color pues lo modifico rápidamente. Vamos, para que sea mas reutilizable.

Gracias por el interés!
Logged


Valencia, España
Offline Offline
Newbie
*
Karma: 0
Posts: 49
Arduinomaniaco
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Sencillo y super guapo! [smiley=thumbsup.gif]

Felicidades y gracias por compartirlo.
Logged

Coruña (Spain)
Offline Offline
Newbie
*
Karma: 0
Posts: 25
robot POWA!
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Gracias Caramono! [smiley=dankk2.gif]
Logged


0
Offline Offline
Newbie
*
Karma: 0
Posts: 3
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hola he hecho este proyecto y es genial, ahora querria ampliarlo  para por ejemplo tener 3 leds uno para graves o tro para medios y otro para los agudos.
como lo hago?

gracias de antemano
Logged

Coruña (Spain)
Offline Offline
Newbie
*
Karma: 0
Posts: 25
robot POWA!
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Gracias electronicyuyu!

Pues eso ya es un poco mas complicado. Te metes más en audio.

En este proyecto lo que busco para señalizar es el "volumen" del sonido, vamos, la amplitud de la onda de sonido.
Si buscamos diferenciar graves o agudos, lo que tendríamos que mirar es la frecuencia de la onda (graves menos frecuencia, agudos más frecuencia). El problema es que el "audio" tiene frecuencias comprendidas entre los 20 Hz y los 20 kHz(http://es.wikipedia.org/wiki/Espectro_audible). Por lo que para conocer la frecuencia instantánea de un sonido (según el teorema de Nyquist http://es.wikipedia.org/wiki/Teorema_de_muestreo_de_Nyquist-Shannon) deberías muestrear con el conversor A/D del arduino a 40 KHz.

Nuestro querido arduino sin embargo puede muestrear a un máximo de 10KHz :'(  (http://arduino.cc/en/Reference/AnalogRead).

Otra cosa es que te metas en hardware externo si te quieres pelear smiley-wink


Un saludo!!
« Last Edit: August 25, 2010, 03:30:19 pm by TCRobotics » Logged


Offline Offline
Edison Member
*
Karma: 23
Posts: 1375
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hay algún chip (creo haberlo leído en el foro inglés) que te saca 6 ó 7 frecuencias (no lo recuerdo bien) y te da los valores de audio en cada una de ella por puerto serie, por lo que es bastante fácil usarlo.
Logged

Mercadillo electrónico. Kit iniciación a Arduino, shield LCD a color y más cosas!

Coruña (Spain)
Offline Offline
Newbie
*
Karma: 0
Posts: 25
robot POWA!
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Que interesante, si lo encuentras postéalo por aquí!
Logged


Offline Offline
Edison Member
*
Karma: 23
Posts: 1375
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Pues por suerte estaba en la primera página y fue fácil encontrarlo

http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1275615544
Logged

Mercadillo electrónico. Kit iniciación a Arduino, shield LCD a color y más cosas!

0
Offline Offline
Newbie
*
Karma: 0
Posts: 3
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Gracias a TC y a CHIVA.
estas semanas intentare montar algo.
Postearé los resultados o las dudas...
Un saludo.
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 47
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

hola ¿hay alguna forma de sustituir el microfono por un microfono normal?
Logged

Coruña (Spain)
Offline Offline
Newbie
*
Karma: 0
Posts: 25
robot POWA!
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Pues de los micros normales solo puedes conseguir señales de poco voltaje, del orden de milivoltios.

Por eso se necesita amplificar esta señal para poder leerla mediante la entrada analógica.

El micro que uso ya incorpora un amplificador. Aunque puedes hacer el circuito de amplificación tu:)
Logged


0
Offline Offline
Newbie
*
Karma: 0
Posts: 47
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

muchas gracias pero llo tanto no se ¿abra algo en internet?
Logged

Coruña (Spain)
Offline Offline
Newbie
*
Karma: 0
Posts: 25
robot POWA!
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Busca en google amplificador microfono electret smiley-wink
« Last Edit: August 30, 2010, 04:39:03 pm by TCRobotics » Logged


Pages: [1] 2   Go Up
Jump to: