ESQUISITE CORPSE v1
Sample code to use for each individual node.
/**********************************************
Exquisite Corpse API
Vincent Leclerc 10/2011
with a small update by Mouna Andraos 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);
// seed random data to begin loop
Serial.write((byte)random(255));
Serial.write((byte)random(255));
Serial.write((byte)random(255));
}
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);
Serial.write(datum2);
Serial.write(datum3);
//////////////////////////////////////////////////////////
// PAUSE FOR 1 SECOND
//////////////////////////////////////////////////////////
delay(2000);
}
//////////////////////////////////////////////////////////////
// BLINKING LED FUNCTION
//////////////////////////////////////////////////////////////
void blinkLED(){
digitalWrite(13,HIGH);
delay(55);
digitalWrite(13,LOW);
delay(55);
}