:::Prototype 1:::

Continuing with the idea of the grid as a way to show the progression of time, I came up with this little ghost character. The idea is that the light in his belly is stuff that he has eaten and you can see it go down as the lights move from his mouth (  I still have to give him a mouth) to his belly. I am still working on the code. It is taking me a bit to figure out how to create the progression of lights moving down. Since I really like the translucency of velum paper, I have made him out of it. In the inside there is the grid with light blue paper in front of it in the shape of a simplify digestive system, but it does not show 😦

::Sketch of character::
Sketch

::ghost character::
Front


::view from the top of the character::
Inside 

::video:: 


Notice that the code does not do what it should yet. Eventually a path of LEDs will light up at the top (mouth) and go down to its stomach. The LEDs at the "bottom of the stomach will stay lit. Eventually all the red LEDs will be lit up to show that its tummy is full and the cycle will be again.
Another idea to show the passage of time would give him cheeks that light up in a circle like pattern to show the passage of time.


::Breadboard with very simple circuit::

Breadboard

:::Code::: It is just a variation of the Loop code but with more outputs

int timer = 500;                   // The higher the number, the slower the timing.

int pins[] = { 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13 }; // an array of pin numbers

int num_pins = 12;                  // the number of pins (i.e. the length of the array)

void setup()

{

  int i;

  for (i = 0; i < num_pins; i++)   // the array elements are numbered from 0 to num_pins – 1

    pinMode(pins[i], OUTPUT);      // set each pin as an output

}

void loop()

{

  int i;

  for (i = 0; i < num_pins; i++) { // loop through each pin…

    digitalWrite(pins[i], HIGH);   // turning it on,

    delay(timer);                  // pausing,

    digitalWrite(pins[i], LOW);    // and turning it off.

  }

  for (i = num_pins – 1; i >= 0; i–) { 

    digitalWrite(pins[i], HIGH);

    delay(timer);

    digitalWrite(pins[i], LOW);

  }

}