Arduino Beep Bop Boopin’

http://vimeo.com/19540512

I hacked the “toneMelody” example in Arduino to make my robot phrases

/*  Melody

Plays a melody

circuit:

  • 8-ohm speaker on digital pin 8

created 21 Jan 2010

modified 14 Oct 2010

by Tom Igoe
This example code is in the public domain.

http://arduino.cc/en/Tutorial/Tone  */

#include “pitches.h”
// notes in the melody:

int melody[] = {

NOTE_D3, NOTE_F3, NOTE_AS3,

0, NOTE_D4, NOTE_AS3,

0, NOTE_D4, NOTE_AS3, NOTE_F3, NOTE_D3, NOTE_F3, NOTE_AS2,

0, NOTE_C5, 0, NOTE_C3, NOTE_FS3, NOTE_DS3,

0, NOTE_C4, NOTE_F4, NOTE_A4, NOTE_C5, NOTE_A4, NOTE_F4, NOTE_C4, NOTE_F4, NOTE_A4, NOTE_C5, NOTE_A4, NOTE_F4,

0, NOTE_C4, NOTE_CS4, NOTE_C4, NOTE_CS4, NOTE_C4, NOTE_CS4, NOTE_C4, NOTE_CS4,

0, NOTE_C4, NOTE_CS4, NOTE_C4, NOTE_CS4, NOTE_C4, NOTE_CS4, NOTE_C4, NOTE_CS4,

0, NOTE_A4, NOTE_B4, NOTE_C5, 0, NOTE_C4};
// note durations: 4 = quarter note, 8 = eighth note, etc.:

int noteDurations[] = {

8,8,8, 4, 8,8, 1, 8,8,2, 8, 8,2, 1, 8, 1,  8,8,8, 1, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 1,  16, 16, 16, 16, 16, 16, 16, 16, 1, 16, 16, 16, 16, 16, 16, 16, 16, 1,  16,16,16, 4, 4

};
void setup() {

// iterate over the notes of the melody:

for (int thisNote = 0; thisNote < 56; thisNote++) {
// to calculate the note duration, take one second

// divided by the note type.

//e.g. quarter note = 1000 / 4, eighth note = 1000/8, etc.

int noteDuration = 1000/noteDurations[thisNote];

tone(8, melody[thisNote],noteDuration);
// to distinguish the notes, set a minimum time between them.

// the note’s duration + 30% seems to work well:

int pauseBetweenNotes = noteDuration * 2;

delay(pauseBetweenNotes);

// stop the tone playing:

noTone(8);  }

}
void loop() {  // no need to repeat the melody.}