sparks and jordan POV

PERSISTENCE OF VISION
By Jake Sparks and Jordan Kucinski


BRIEF DESCRIPTION
Our project consists of a fan, with 6 leds connected to half an arduino board mounted on the center. The leds are sitting on one fan blade with the counter weight being wires wrapped around the opposite two fan blades. the leds are battery powered so when its spinning, the wires wont get tangled or messed up. When the fan is spinning with the leds on, it will read ELECTRONIC.

PROBLEMS
There were an assortment of problems that we ran into while in the process of assembling this project. First we had to put all the components onto the fan being as light weight as possible.  we had to sauter six wires to the six leds with limited space, so it was hard trying to sauter while not burning our fingers. then we ran into the problem of trying to find the right timing for the leds in order to make the letters of ELECTRONICC come out correctly. It actully took us a few days just to do that. laying out the wires was pretty hard so we had to hot glue them down to the fan which added more weight, which in turn, we had to counter with wires. Also the speed of the fan affected the timing of the flashing of the leds.

VIDEO

YouTube Video



FURTHER IMPROVEMENT
If we had more time or money, we would like to have this made on a larger scale, possibly on the size of an airplane propeler. In, addition to that we would like there to be more than 6 leds so we can make more complex pictures of images. we could also clean it up a bit and not have it look like junk with glue and tape everywhere. We would also like to make it more stable becuase right now it kinda of moves around a little bit.

THE "ELECTRONIC" CODE

int pins[] = {
  7,6,5,4,3,2};    // an array of pin numbers
int col_len = 6;        // column lenght

// customizable parameters
int timer1 = 1000;                       // time between columns
int timer2 = 100;                        // time between frames
int timer3 = 1000;                    // time between drawings
int frame_len = 51;                // frame length
int frame_num = 1;              // number of frames
// data corresponding to the image to be displayed
int data[] = {
  1,1,1,1,1,1, 1,0,1,0,0,1, 1,0,1,0,0,1, 1,1,1,0,0,1, 0,0,0,0,0,0, 1,1,1,1,1,1, 0,0,0,0,0,1, 0,0,0,0,0,1, 0,0,0,0,1,1, 0,0,0,0,0,0, 1,1,1,1,1,1, 1,0,1,0,0,1, 1,0,1,0,0,1, 1,1,1,0,0,1, 0,0,0,0,0,0, 1,1,1,1,1,1, 1,0,0,0,0,1, 1,0,0,0,0,1, 1,0,0,0,0,1, 0,0,0,0,0,0, 1,0,0,0,0,0, 1,0,0,0,0,0, 1,1,1,1,1,1, 1,0,0,0,0,0, 0,0,0,0,0,0, 1,1,1,1,1,1, 1,0,0,1,0,0, 1,0,1,1,0,0, 1,1,1,0,1,1, 0,0,0,0,0,0, 1,1,1,1,1,1, 1,0,0,0,0,1, 1,0,0,0,0,1, 1,1,1,1,1,1, 0,0,0,0,0,0, 1,1,1,1,1,1, 0,1,1,0,0,0, 0,0,0,1,1,0, 1,1,1,1,1,1, 0,0,0,0,0,0, 1,0,0,0,0,1, 1,0,0,0,0,1, 1,1,1,1,1,1, 1,0,0,0,0,1, 0,0,0,0,0,0,  1,1,1,1,1,1, 1,0,0,0,0,1, 1,0,0,0,0,1, 1,0,0,0,0,1, 0,0,0,0,0,0, 0,0,0,0,0,0, };

void setup()
{
  int i;
  for (i = 0; i < col_len; i++)
    pinMode(pins[i], OUTPUT);    // set each pin as an output
}

void loop()
{
  int a,b,c;

  // go through all data for all columns in each frame.
  for (a = 0; a < frame_num; a++)
  {
    for (b = 0; b < frame_len; b++)
    {
      for (c = 0; c < col_len; c++)
      {
        if (data[a*frame_len*col_len + b*col_len + c] == 0) {
          digitalWrite(pins[c], LOW);
        }
        else {
          digitalWrite(pins[c], HIGH);
        }
      }
      delayMicroseconds(timer1);
    }
    for (c = 0; c < col_len; c++)
    {
      digitalWrite(pins[c], LOW);
    }
    delayMicroseconds(timer2);
  }
  delayMicroseconds(timer3);
}


Comments