Este proyecto ayuda a crear una gran entrada. Caminando en detecta y reproduce una canción de entrada. Entrar a la sala con tu canción favorita de starwars reproduciéndose para usted. Usted también necesitará instalar la biblioteca de tono en:
http://Rogue-Code.googlecode.com/files/Arduino-Library-Tone.zip
Ayuda instalar bibliotecas para ir a:
http://code.Google.com/p/Rogue-Code/wiki/InstallingArduinoLibraries
Componentes necesarios:
1 x altavoz
1 x Arduino
1 x Junta de pan
1 x receptor IR
1 x 470 Ohm Resistor
1 x 220 o resistencia de 100 Ohm
Cables de
Los componentes pueden encontrarse en http://egrobotics.com/store/
Este uso del proyecto y placa Arduino y Kit adicionado de la IR
www.EGRobotics.com
El código:
Todas las canciones son comentó que antes de subir escoger la canción que desea mediante la eliminación de
el "/ /" antes de él. Buscar tonos más en http://code.google.com/p/roguecode/wiki/ToneLibraryDocumentation
#include
Tone1 tono;
#define OCTAVE_OFFSET 0
int notas [] = {0,
NOTE_C4, NOTE_CS4, NOTE_D4, NOTE_DS4, NOTE_E4, NOTE_F4, NOTE_FS4, NOTE_G4,
NOTE_GS4, NOTE_A4, NOTE_AS4, NOTE_B4, NOTE_C5, NOTE_CS5, NOTE_D5, NOTE_DS5, NOTE_E5, NOTE_F5, NOTE_FS5, NOTE_G5,
NOTE_GS5, NOTE_A5, NOTE_AS5, NOTE_B5,
NOTE_C6, NOTE_CS6, NOTE_D6, NOTE_DS6, NOTE_E6, NOTE_F6, NOTE_FS6, NOTE_G6,
NOTE_GS6, NOTE_A6, NOTE_AS6, NOTE_B6,
NOTE_C7, NOTE_CS7, NOTE_D7, NOTE_DS7, NOTE_E7, NOTE_F7, NOTE_FS7, NOTE_G7,
NOTE_GS7, NOTE_A7, NOTE_AS7, NOTE_B7
};
char * canción = "el
Simpsons:d=4,o=5,b=160:c.6,E6,f#6,8a6,g.6,E6,C6,8A,8F#,8F#,8F#,2g,8P,8P,8F#,8F#,8F#,8g,a#.,8c6,8
C6, 8c 6, c6 ";
char * canción =
"Indiana: d = 4, o = 5, b = 250:e, p 8, 8f, 8 g, p 8, 1 c 6, p. 8, d, p 8, 8e, 1f, p., g, p 8, 8a, 8b, 8 p, 1f6, p, a, p 8, 8b, c 2 6, 2 d 6, 2e
6,e,8P,8F,8g,8P,1c6,p,D6,8P,8e6,1F.6,g,8P,8g,e.6,8P,D6,8P,8g,e.6,8P,D6,8P,8g,f.6,8P,E6,8P,8d6,2C6 ";
char * canción =
"TakeOnMe:d = 4, o = 4, b = 160:8f #5, 8f 8f #5 #5, 8 d 5, p 8, 8b, 8 p, 8e5, 8P, 8e5, 8P, 8e5, 8 g #5, 8 g #5, 8a5, 8b5, 8a
5, 8a5, 8a5, 8e5, 8p, 8d 5, 8P, 8f #5, p 8, 8f #5, p 8, 8f #5, 8e5, 8e5, 8f #5, 8e5, 8f #5, 8f #5, 8f 8d 5, #5, p 8, 8b, 8p, 8e5, 8
p, 8e5, 8P, 8e5, 8g #5, 8g #5, 8a5, 8b5, 8a5, 8a5, 8a5, 8e5, p 8, 8d 5, 8P, 8f #5, p 8, 8f #5, p 8, 8f #5, 8e5, 8e5 ";
char * canción =
"Entertainer:d=4,o=5,b=140:8d,8d#,8e,c6,8e,c6,8e,2c.6,8c6,8d6,8d#6,8e6,8c6,8d6,e6,8b,d6,2c6,p,8
d,8D#,8E,C6,8E,C6,8E,2C.6,8P,8A,8g,8F#,8A,8c6,E6,8d6,8c6,8A,2D6 ";
char * canción =
"Muppets:d = 4, o = 5, b = 250:c6, c6, a, b, 8a, b, g, p, c6, c6, a, 8b, 8a, 8 p, g, p, e, e, g, f, 8e, f, 8 c 6, 8 c, 8 d, e, 8e, 8e, p 8, 8
e, g, 2P, c6, c6, a, b, 8a, b, g, p, c6, c6, a, 8b, a, g, p, e, e, g, f, 8e, f, 8 c 6, 8 c, 8 d, e, 8e, d, 8 d, c ";
char * canción =
"Xfiles:d = 4, o = 5, b = 125:e, b, a, b, d6, 2b., 1 p, e, b, a, b, e6, 2b., 1 p, g6, f #6, e6, d6, e6, 2b., 1 p, g6, f #6, e6, d6, f #6,2
b. 1 p, e, b, a, b, d6, 2b., 1 p, e, b, a, b, e6, 2b., 1 p, e6, 2b. ";
char * canción =
"Looney: d = 4, o = 5, b = p 140:32, c6, 8f6, 8e6, 8 d 6, c 8 6, a., 8 c 6, 8f6, 8e6, 8 d 6 d 8 #6,e.6,8e6,8e6,8c6,8d6,8c6,
8e6, 8 c 6 d 8 6, 8a, 8 c 6, 8 g, # 8a, 8a, 8f ";
char * canción =
"20thCenFox:d = 16, o = 5, b = 140:b, p 8, b, b, 2b, p, c6, 32 p, b, p 32, c6, 32 p, b, p 32, c6, 32 p, b, p 8, b, b, b, 32 p, b, 32
p, b, 32p, b, 32p, b, 32p, b, 32p, b, p 32, g #, 32p, a, p 32, b, p 8, b, b, 2b, p 4, 8e, 8 g #, 8b, 1 c# 6, 8f #, 8a, 8C #6, 1e6, 8a, 8C
#6, 8e6, 1e6, 8b, 8 g # 8a, 2b ";
char * canción =
"Bonos: d = 4, o = 5, b = 80:32 p, 16 c# 6, 32d #6, 32d #6, #6, 8D #6, 16C #6, 16C #6, 16 c 16 c# 6, #6 32e6, 32e6, de 16 d 16
E6, 8e6, 16d 16d 16d 16 c# 6, #6 #6 #6 #6 32d, 32d #6, 16d #6, #6, 16C #6, de 8d 16 c# 6, 16C #6, 16C #6, 32e6, 32e6, 1
6e6,8e6,16D#6,16d6,16C#6,16C#7,c.7,16g#6,16F#6,g#.6 ";
char * canción =
"MASH:d = 8, o = 5, b = 140:4a, 4 g, f #, g, p, f #, p, g, p, f #, p, 2e., p, f #, e, 4f #, e, f #, p, e, p, 4 d., p, f #, 4e, d, e, p, d, p, e, p, d
, p, c# 2., p, d, c#, 4D, c#, d, p, e, p, 4f #, p, p, 4b, a, b, p, p, b, p, 2a., 4P, a, b, a, 4b, a, b, p, 2a., 4f #, a,b,p,d6,p,4e.6, d
6, b, p, a, p, 2b ";
char * canción =
"StarWars:d = 4, o = 5, b = p 45:32 32f # 32f #, 32f #, 8b., 8f #.6, 32e6, 32d #6, 32 c# 6,8b.6,16f #.6, 32e6, 32d #6,3
2C#6,8b.6,16F#.6,32e6,32d#6,32e6,8C#.6,32F#,32F#,32F#,8b.,8F#.6,32e6,32d#6,32C#6,8b.6,16F#.6,3
2E6,32d#6,32C#6,8b.6,16F#.6,32e6,32d#6,32e6,8C#6 ";
char * canción =
"GoodBad:d = 4, o = 5, b = 56:32 p, 32a #, 6 # 32d 32a #, 6 # 32d, 8a #., 16f #., 16 g #., d #, 32a #, 6 # 32d 32a #, 32d #6,
8A #., 16f #., 16 g #., c# 6, 32a #, 6 # 32d 32a #, 6 # 32d, 8a #., 16f #., 32f. 32d #, c#, 32a #, 6 # 32d 32a #, 6 # 32d, 8a #.,
16 g #., d #";
char * canción =
"TopGun:d = 4, o = 4, b = 31:32 p, 16 c#, g # 16, 16 g #, 32f #, 32f, 32f #, 32f, d # 16, 16 d #, 32 c#, # 32d, 16f, # 32d, 32f, 16f #, 32f, 32 c#, 16f, d #, c# 16, 16 g #, g # 16, 32f #, 32f, 32f #, 32f, 16 d #, 16 d #, 32 c#, # 32d, 16f, # 32d, 32f, 16f #, 3
2F, 32 c#, g #";
char * canción = "ATeam:d = 8, o = 5, b = 125:4 d #6, un #, 2d #6, p 16, g #, 4a #, d # 4., p, 16 g, 16 #, d #6, un #, f6, 2d #6, p 16, c#.6, 16 c 6, 16a #
, g #., 2a #";
char * canción =
"Flinstones:d = 4, o = 5, b = 40:32 p, 16f6, 16a #, 16 #6, 32 g 6, 16f6, 16a #., 16f6, 32d #6, 32 d 6 d 32 6, 32d #6, 32f
6, 16a #, 16c 6, d6, 16f6, 16a #., 16a #6, 32g 6, 16f6, 16a #., 32f6, 32f6, 32d #6, 32d 6 d 32 6, 32d #6, 32f6, 16a #, 16
C6,a#,16a6,16d.6,16A#6,32a6,32a6,32g6,32F#6,32a6,8g6,16g6,16C.6,32a6,32a6,32g6,32g6,32f6,32E
6, 32g 6 8f6, 16f6, 16a #., 16a #6, 32g 6, 16f6, 16a #., 16f6, 32d #6, 32d 6 d 32 6, 32d #6, 32f6, 16a #, 16c.6,32d6, 3
2D#6,32f6,16A#,16C.6,32d6,32d#6,32f6,16A#6,16c7,8A#.6 ";
char * canción =
"Peligro: d = 4, o = 6, b = 125:c, f, c, f5, c, f, 2 c, c, f, c, f, a., 8 g, 8f, 8e, 8 d, 8 c#, c, f, c, f5, c, f, 2 c, f., 8 d, c, a #5 a5, g5, f5,
p,d#,g#,d#,g#5,d#,g#,2D#,d#,g#,d#,g#,c.7,8A#,8g#,8g,8F,8E,d#,g#,d#,g#5,d#,g#,2D#,g#.,8F,d#,c#,c,p,
a #5, p g.5 #, d #, g #";
char * canción =
"Gadget: d = 16, o = 5, b = 50:32d # 32f, 32f #, 32 g #, a #, f #, a, f, g #, f #, # 32d, 32f, 32f #, 32 g #, a #, d #6, 4 d 6, # 32d, 3
2F, 32f # 32 g #, a #, f #, a, f, g #, f #, d # 8 ";
char * canción =
"Smurfs:d = 32, o = 5, b = 200:4 c# 6, p 16, 4f #6, p, 16 c# 6, p, 8 d #6, p, 8b, p, g # 4, p 16, 4C #6, p, 16a #, p, 8f #, p, 8a #, p,
g # 4, p 4, g #, p, un #, p, b, p, c6, p, 4 c# 6, p 16, 4f #6, p, 16 c# 6, p, 8d #6, p, 8b, p, g # 4, p 16, 4C #6, p, 16a #, p, 8b, p, 8f, p, 4f
#";
char * canción =
"MahnaMahna:d = 16, o = 6, b = 125:c#, c., b5, 8a #.5, 8f., 4 g #, a #, g., d #, 8 4P, c#, c., b5, 8a #.5, 8f., g #., 8a #., 4 g, 8
p, c#, c., b5, 8a #.5, 8f., 4 g #, f, g., 8 d #., f, g., 8 d #., f, g 8, 8 d #., f, g 8, d #, c 8, 5 #, 8 d #., 8 d #., 4 d #, d # 8. ";
char * canción =
"LeisureSuit:d=16,o=6,b=56:f.5,f#.5,g.5,g#5,32a#5,f5,g#.5,a#.5,32f5,g#5,32a#5,g#5,8c#.,a#5,32c#,
A5, un.5 #, c#., 32a5, una #5 32 c#, d #, 8e, c#., f., f., f., f., f, 32e, d #, 8d, un.5 #, e, 32f e, 32f, c#, d #., c# ";
char * canción =
"MissionImp:d = 16, o = 6, b = 95:32d, # 32d, # 32d, 32d, 32d, 32d #, # 32d, 32d, 32d, 32d, # 32d, 32e, 32f, 32f #, 32
g, g, p 8, g, p 8, un #, p, c7, p, g, p 8, g, p 8, f, p, f #, p, g, p 8, g, p 8, un #, p, c7, p, g, p 8, g, p 8, f, p, f #, p, un #, g, 2d, 32p, un #, g, c 2 #, 3
2 p, un #, g, c 2, #5, 8 c, 2P, p 32, #5, g5, 2f # 32 p, #5, g5, 2f, p 32, #5, g5, 2e, d #, d 8 ";
#define IRsensorPin 6
#define IRledPin 5
#define D13ledPin 13
void IR38Write() {}
para (int i = 0; i < = 384; i ++) {}
digitalWrite (IRledPin, alto);
delayMicroseconds(13);
digitalWrite (IRledPin, bajo);
delayMicroseconds(13);
}
}
void setup(void)
{
Serial.Begin(9600);
tone1.Begin(3);
pinMode (IRledPin, salida);
digitalWrite (IRledPin, bajo);
pinMode (D13ledPin, salida); digitalWrite (D13ledPin, bajo);
}
#define isdigit(n) (n > = '0' & & n < = '9')
void play_rtttl(char *p)
{
default_dur bytes = 4;
byte default_oct = 6;
int bpm = 63;
int num;
wholenote largo;
de larga duración;
Nota de bytes;
escala de bytes;
mientras que (* p! = ':') p ++; omitir nombre
p ++; saltar ':'
obtener duración predeterminada
Si (* p == había ')
{
p ++; p ++; saltar "d ="
Num = 0;
while(isdigit(*p))
{
Num = (num * 10) + (* p ++ - '0');
}
Si (num > 0) default_dur = num;
p ++; omitir la coma
}
Serial.Print ("ddur:"); Serial.println (default_dur, 10);
conseguir la octava por defecto
Si (* p == ' o ')
{
p ++; p ++; saltar "o ="
Num = * p ++ - '0';
Si (num > = 3 & & num < = 7) default_oct = num;
p ++; omitir la coma
}
Serial.Print ("pued:"); Serial.println (default_oct, 10);
Haz BPM
Si (* p == 'b')
{
p ++; p ++; saltar "b ="
Num = 0;
while(isdigit(*p))
{num = (num * 10) + (* p ++ - '0');
}
BPM = num;
p ++; Pase colon
}
Serial.Print ("bpm:"); Serial.println (bpm, 10);
BPM generalmente expresa la cantidad de notas de cuarto por minuto
wholenote = (60 * 1000L / bpm) * 4; Este es el momento para la nota entera (en milisegundos)
Serial.Print ("wn:"); Serial.println (wholenote, 10);
ahora iniciar bucle Nota
while(*p)
{
en primer lugar, obtener la duración de la nota, si existen
Num = 0;
while(isdigit(*p))
{
Num = (num * 10) + (* p ++ - '0');
}
if(NUM) duración = wholenote / num;
más duración = wholenote / default_dur; tendremos que comprobar si somos una nota punteada después
ahora conseguir la nota
Nota = 0;
Switch(*p)
{
caso 'c':
Nota = 1;
rotura;
caso sería ':
Nota = 3;
rotura;
caso 'e':
Nota = 5;
rotura;
caso 'f':
Nota = 6;
rotura;
caso 'g':
Nota = 8;
rotura;
caso 'a':
Nota = 10;
rotura;
caso 'b':
Nota = 12; rotura;
caso 'p':
por defecto:
Nota = 0;
}
p ++;
Ahora, conseguir opcional '#' sharp
Si (* p == '#')
{
Nota ++;
p ++;
}
Ahora, conseguir opcional '.' Nota puntos
Si (* p == '.')
{
+= duración duración/2;
p ++;
}
if(isdigit(*p))
{
escala = * p - '0';
p ++;
}
otra cosa
{
escala = default_oct;
}
escala += OCTAVE_OFFSET;
Si (* p == ',')
p ++; omitir la coma para la siguiente nota (o seamos al final)
ahora tocar la nota
if(Note)
{
Serial.Print ("jugando:");
Serial.Print (escala, 10); Serial.Print(' ');
Serial.Print (Nota 10); Serial.Print ("('');
Serial.Print (notas [(scale-4) * 12 + Nota], 10);
Serial.Print(")");
Serial.println (duración, 10);
tone1.Play (notas [(scale-4) * 12 + Nota]);
Delay(Duration);
tone1.STOP();
}
otra cosa
{Serial.print ("pausa:");
Serial.println (duración, 10);
Delay(Duration);
}
}
}
void loop(void)
{
IR38Write();
Si (digitalRead(IRsensorPin)==HIGH) {}
digitalWrite (D13ledPin, alto);
play_rtttl(Song);
Delay(1000);
}
Else {}
digitalWrite (D13ledPin, bajo);
}
Delay(100);
}
El Video:
Ir a para la diversión más proyectos!