ESQUISITE CORPSE v3


/**********************************************
Exquisite Corpse API
Vincent Leclerc 10/2011
with a small update by Elio Bidnisot 10/2012
**********************************************/

byte datum1 = 0;
byte datum2 = 0;
byte datum3 = 0;

void setup()
{
// setup serial port
Serial.begin(9600);

// setup digital pin 13 (onboard LED)
pinMode(13,OUTPUT);
pinMode(2, INPUT);
}

void loop()
{
//////////////////////////////////////////////////////////
// WAIT FOR A NEW PACKET
//////////////////////////////////////////////////////////
while (Serial.available() < 3) blinkLED();

datum1 = Serial.read();
datum2 = Serial.read();
datum3 = Serial.read();

//////////////////////////////////////////////////////////
// MAKE SOMETHING HAPPEN IN THE PHYSICAL WORLD
// ACCORDING TO THE RECEIVED PACKET
//////////////////////////////////////////////////////////

// add your code here

//////////////////////////////////////////////////////////
// MODIFY THE PACKET
//////////////////////////////////////////////////////////

// add your code here

//////////////////////////////////////////////////////////
// SEND THE NEW PACKET
//////////////////////////////////////////////////////////
Serial.write(datum1+1);
Serial.write(datum2+1);
Serial.write(datum3+1);

//////////////////////////////////////////////////////////
// PAUSE FOR 1 SECOND
//////////////////////////////////////////////////////////
delay(2000);
}

//////////////////////////////////////////////////////////////
// BLINKING LED FUNCTION
//////////////////////////////////////////////////////////////
void blinkLED()
{
digitalWrite(13,HIGH);
delay(55);
digitalWrite(13,LOW);
delay(55);

// That Digital Switch Connected to Pin 2 - If HIGH then Transmit.
if(digitalRead(2) == HIGH)
{
delay(50);
// Serial.write('a');
// Serial.write('b');
// Serial.write('c');
// "Randomly" Select a Screen Printable Character and Transmit
Serial.write((byte)random(32, 126));
Serial.write((byte)random(32, 126));
Serial.write((byte)random(32, 126));
delay(1000);
}
}