sparks and jordan POV

PERSISTENCE OF VISIONBy 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

FURTHER IMPROVEMENTIf 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 numbersint col_len = 6; // column lenght// customizable parametersint timer1 = 1000; // time between columnsint timer2 = 100; // time between framesint timer3 = 1000; // time between drawingsint frame_len = 51; // frame lengthint frame_num = 1; // number of frames// data corresponding to the image to be displayedint 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); }