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);
}