Difference between revisions of "Rhythm Lamp"
From Microduino Wiki
(Created page with "{{Language| Rhythm Lantern}} {| style="width: 800px;" |- | ==Purpose== To control the color of a lantern by detecting sound via mic sound detection sensor. ==Principle== ==...") |
|||
(4 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
− | {{Language| Rhythm | + | {{Language| Rhythm Lamp}} |
{| style="width: 800px;" | {| style="width: 800px;" | ||
|- | |- | ||
| | | | ||
− | == | + | ==Objective== |
− | + | Speak toward MIC, the lamp will change along with the sound rhythm. | |
+ | [[File:mic_sound.jpg|600px|center]] | ||
− | == | + | ==principle== |
+ | *MIC sensor introduction | ||
+ | MIC sensor can turn sound signal to electricity signal. | ||
+ | It can detect sound volume but can't detect certain sound. | ||
+ | *Rhythm Lamp | ||
+ | Detect sound volume via MIC sensor and the system will judge which color range the sound belongs to. At the same, comparing with the pre-set trigger value and choosing to open or close light change, therefore, to control color change of the lamp. | ||
+ | |||
+ | [[File:mic_sch.jpg|600px|center|thumb]] | ||
==Equipment== | ==Equipment== | ||
{|class="wikitable" | {|class="wikitable" | ||
|- | |- | ||
− | | | + | |Moudle||Number||Function |
− | |||
− | |||
|- | |- | ||
− | |[[ | + | |[[mCookie-CoreUSB]]||1||Core board |
|- | |- | ||
− | |[[ | + | |[[mCookie-Hub]]||1||Sensor pin board |
|- | |- | ||
− | |[[Microduino- | + | |[[Microduino-Sound]]||1||Sound detection sensor |
|- | |- | ||
− | |[[Microduino- | + | | [[Microduino-Color led]]||1||Colored LED light |
|} | |} | ||
+ | [[File:mic _lamp.jpg|600px|center]] | ||
+ | ==Preparation== | ||
+ | *Setup 1: Connect CoreUSB and PC/Mac with USB cable and open Arduino IDE. | ||
+ | [[File:CoreUSB_Ble_pc.jpg|600px|center]] | ||
+ | *Setup 2: Download program:[https://github.com/Microduino/Microduino_Tutorials/blob/master/MCookie_Tutorial/SHENGRI/SHENGRI.ino SHENGRI] | ||
+ | [[File: _SHENGR.jpg|600px|center]] | ||
− | + | * Setup 3: Load code, copy program to IDE. Select the right boardcard and COM port and then download after passing the compiling. | |
− | + | ==Program Description== | |
− | == | + | *Read sound analog value (A0 pin), which can be defined by users. Then, print analog sound data via serial port monitor. |
− | * | + | <source lang="cpp"> |
− | + | int v=analogRead(A0); | |
− | + | Serial.println(v); | |
− | + | </source> | |
− | + | *Detect sound volume every 100ms and distinguish the sound. Sound range is defined in " zone_vol[3]", which is among 100-600. Users can change that according to personal needs. | |
− | |||
− | |||
− | = | ||
− | |||
− | |||
− | |||
− | * | ||
− | |||
<source lang="cpp"> | <source lang="cpp"> | ||
− | + | if(millis()-timer[0]>100) | |
+ | { | ||
+ | timer[0]=millis(); | ||
+ | if(v>zone_vol[0]) | ||
+ | zone=0;//Red | ||
+ | else if(v>zone_vol[1]) | ||
+ | zone=1;//Green | ||
+ | else if(v>zone_vol[2]) | ||
+ | zone=2;//Blue | ||
+ | else | ||
+ | zone=9; | ||
+ | } | ||
</source> | </source> | ||
− | * | + | *The analog value decides color combination. |
<source lang="cpp"> | <source lang="cpp"> | ||
switch(zone) | switch(zone) | ||
Line 50: | Line 65: | ||
case 0: | case 0: | ||
if(color!=0) | if(color!=0) | ||
− | vol[0]=map(v,0,1023,0,255); | + | vol[0]=map(v,0,1023,0,255);//Red |
else | else | ||
vol[0]=10; | vol[0]=10; | ||
Line 56: | Line 71: | ||
case 1: | case 1: | ||
if(color!=1) | if(color!=1) | ||
− | vol[1]=map(v,0,1023,0,255); | + | vol[1]=map(v,0,1023,0,255);//Green |
else | else | ||
vol[1]=10; | vol[1]=10; | ||
Line 62: | Line 77: | ||
case 2: | case 2: | ||
if(color!=2) | if(color!=2) | ||
− | vol[2]=map(v,0,1023,0,255); | + | vol[2]=map(v,0,1023,0,255);//Blue |
else | else | ||
vol[2]=10; | vol[2]=10; | ||
break; | break; | ||
} | } | ||
− | |||
// Some example procedures showing how to display to the pixels: | // Some example procedures showing how to display to the pixels: | ||
colorWipe(strip.Color(vol[0],vol[1], vol[2]), 20); | colorWipe(strip.Color(vol[0],vol[1], vol[2]), 20); | ||
</source> | </source> | ||
+ | |||
+ | ==Hardware Buildup== | ||
+ | *Setup 1: Connect MIC to A0 pin of Sensorhub and Colored LED to PIN 6. Both sides of Sensorhub have pin description, which can be connected with sensors accordingly. | ||
+ | [[File:CoreUSB_mic_steup1.jpg|600px|center]] | ||
+ | *Setup 2: Connect the activated battery box to BM. | ||
+ | [[File:CoreUSB_Ble_steup2.jpg|600px|center]] | ||
+ | *Setup 3: Stack all modules together without fixed order and finish the circuit buildup. | ||
+ | [[File: music_mic_all.jpg|600px|center]] | ||
==Result== | ==Result== | ||
− | Speak towards | + | Speak towards MIC and you'll find different effect. |
− | [[File:mic_colorled——legao.jpg|600px|center | + | [[File:mic_colorled——legao.jpg|600px|center]] |
==Video== | ==Video== | ||
|} | |} |
Latest revision as of 06:52, 30 September 2016
Language: | English • 中文 |
---|
ContentsObjectiveSpeak toward MIC, the lamp will change along with the sound rhythm. principle
MIC sensor can turn sound signal to electricity signal. It can detect sound volume but can't detect certain sound.
Detect sound volume via MIC sensor and the system will judge which color range the sound belongs to. At the same, comparing with the pre-set trigger value and choosing to open or close light change, therefore, to control color change of the lamp. Equipment
Preparation
Program Description
int v=analogRead(A0);
Serial.println(v);
if(millis()-timer[0]>100)
{
timer[0]=millis();
if(v>zone_vol[0])
zone=0;//Red
else if(v>zone_vol[1])
zone=1;//Green
else if(v>zone_vol[2])
zone=2;//Blue
else
zone=9;
}
switch(zone)
{
case 0:
if(color!=0)
vol[0]=map(v,0,1023,0,255);//Red
else
vol[0]=10;
break;
case 1:
if(color!=1)
vol[1]=map(v,0,1023,0,255);//Green
else
vol[1]=10;
break;
case 2:
if(color!=2)
vol[2]=map(v,0,1023,0,255);//Blue
else
vol[2]=10;
break;
}
// Some example procedures showing how to display to the pixels:
colorWipe(strip.Color(vol[0],vol[1], vol[2]), 20); Hardware Buildup
ResultSpeak towards MIC and you'll find different effect. Video |