Arduino: Game of Thrones amb speaker piezo elèctric

La definició original de hacker té molt a veure amb la curiositat i la investigació.  Per sort, o per desgràcia, la curiositat és quelcom que sempre m’ha acompanyat i tot i que hi han èpoques a la vida en les que un no hi pot dedicar gaire temps, n’hi han d’altres que explores varis camps alhora.

Actualment estic dedicant estones a tafanejar amb Arduino i la robòtica i per tant, de tant en tant, trobareu algun post dedicat a aquest meravellós aparell de investigació i aprenentatge.

Per començar, un codi senzill, amb elements que podem trobar a qualsevol taller informàtic i amb un propòsit simple i alhora friki: Fer sonar la música de Juego de Tronos.

El codi font és aquest i al vídeo podeu veure el resultat així com la simplicitat del circuit elèctric.

/* Definim les notes, mitjançant les freqüències.  També es podria fer mitjançant una llibreria (header) però s’inclouen dins del codi per a que sigui més atòmic i didàctic. */

#define NOTE_G3 196
#define NOTE_C3 131
#define NOTE_DS3 156
#define NOTE_F3 175
#define NOTE_B2 123
#define NOTE_D3 147

/* Aquí creem la melodia, com a successió de notes i la duració de les mateixes. */

int melody[]={NOTE_G3,NOTE_C3,NOTE_DS3,NOTE_F3,NOTE_G3,NOTE_C3,NOTE_DS3,NOTE_F3,NOTE_D3,NOTE_F3,NOTE_B2,NOTE_D3,NOTE_DS3,NOTE_F3,NOTE_B2,NOTE_DS3,NOTE_D3,NOTE_C3};
int noteDurations[]={3,3,1,1,2,2,1,1,9,3,3,1,1,2,2,1,1,9};

/* Es fan tocar les notes amb la seva freqüència i duració. */

void setup(){
for(int thisNote=0;thisNote<18;thisNote++){
int noteDuration=300*noteDurations[thisNote];
tone(8,melody[thisNote],noteDuration);
delay(noteDuration+30);
noTone(8);
}
}

void loop(){}

Advertisements

~ per madyyelf a 27 gener 2014.