This is an old revision of the document!
IN PROGRESS
#include <Adafruit_NeoPixel.h> #define PIN 15 #define NUM_LEDS 75 Adafruit_NeoPixel strip = Adafruit_NeoPixel(NUM_LEDS, PIN, NEO_GRB + NEO_KHZ800); void setup() { strip.begin(); strip.show(); // Initialize all pixels to 'off' } void loop() { Main(0x50, 0, 0x50, 4, 60, 0); Party(0x50, 0x50, 0, 2, 100, 100); Interrupt(0x50, 0, 0x50, 25, 100); Main1(0x50, 0x50, 0, 4, 60, 0); Party(0x50, 0, 0x50, 2, 100, 100); Interrupt(0x50, 0x50, 0, 25, 100); } void Main(byte red, byte green, byte blue, int EyeSize, int SpeedDelay, int ReturnDelay){ CenterToOutside(red, green, blue, EyeSize, SpeedDelay, ReturnDelay); OutsideToCenter(red, green, blue, EyeSize, SpeedDelay, ReturnDelay); CenterToOutside(red, green, blue, EyeSize, SpeedDelay, ReturnDelay); OutsideToCenter(red, green, blue, EyeSize, SpeedDelay, ReturnDelay); } void CenterToOutside(byte red, byte green, byte blue, int EyeSize, int SpeedDelay, int ReturnDelay) { for(int i =((NUM_LEDS-EyeSize)/2); i>=0; i--) { setAll(0,0,0); setPixel(i, 0x50, 0x50, 0); for(int j = 1; j <= EyeSize; j++) { setPixel(i+j, red, green, blue); } setPixel(i+EyeSize+1, 0x50, 0x50, 0); setPixel(NUM_LEDS-i, 0x50, 0x50, 0); for(int j = 1; j <= EyeSize; j++) { setPixel(NUM_LEDS-i-j, red, green, blue); } setPixel(NUM_LEDS-i-EyeSize-1, 0x50, 0x50, 0); showStrip(); delay(SpeedDelay); } delay(ReturnDelay); } void OutsideToCenter(byte red, byte green, byte blue, int EyeSize, int SpeedDelay, int ReturnDelay) { for(int i = 0; i<=((NUM_LEDS-EyeSize)/2); i++) { setAll(0,0,0); setPixel(i, 0x50, 0x50, 0); for(int j = 1; j <= EyeSize; j++) { setPixel(i+j, red, green, blue); } setPixel(i+EyeSize+1, 0x50, 0x50, 0); setPixel(NUM_LEDS-i, 0x50, 0x50, 0); for(int j = 1; j <= EyeSize; j++) { setPixel(NUM_LEDS-i-j, red, green, blue); } setPixel(NUM_LEDS-i-EyeSize-1, 0x50, 0x50, 0); showStrip(); delay(SpeedDelay); } delay(ReturnDelay); } void Main1(byte red, byte green, byte blue, int EyeSize, int SpeedDelay, int ReturnDelay){ CenterToOutside1(red, green, blue, EyeSize, SpeedDelay, ReturnDelay); OutsideToCenter1(red, green, blue, EyeSize, SpeedDelay, ReturnDelay); CenterToOutside1(red, green, blue, EyeSize, SpeedDelay, ReturnDelay); OutsideToCenter1(red, green, blue, EyeSize, SpeedDelay, ReturnDelay); } void CenterToOutside1(byte red, byte green, byte blue, int EyeSize, int SpeedDelay, int ReturnDelay) { for(int i =((NUM_LEDS-EyeSize)/2); i>=0; i--) { setAll(0,0,0); setPixel(i, 0x50, 0, 0x50); for(int j = 1; j <= EyeSize; j++) { setPixel(i+j, red, green, blue); } setPixel(i+EyeSize+1, 0x50, 0, 0x50); setPixel(NUM_LEDS-i, 0x50, 0, 0x50); for(int j = 1; j <= EyeSize; j++) { setPixel(NUM_LEDS-i-j, red, green, blue); } setPixel(NUM_LEDS-i-EyeSize-1, 0x50, 0, 0x50); showStrip(); delay(SpeedDelay); } delay(ReturnDelay); } void OutsideToCenter1(byte red, byte green, byte blue, int EyeSize, int SpeedDelay, int ReturnDelay) { for(int i = 0; i<=((NUM_LEDS-EyeSize)/2); i++) { setAll(0,0,0); setPixel(i, 0x50, 0, 0x50); for(int j = 1; j <= EyeSize; j++) { setPixel(i+j, red, green, blue); } setPixel(i+EyeSize+1, 0x50, 0, 0x50); setPixel(NUM_LEDS-i, 0x50, 0, 0x50); for(int j = 1; j <= EyeSize; j++) { setPixel(NUM_LEDS-i-j, red, green, blue); } setPixel(NUM_LEDS-i-EyeSize-1, 0x50, 0, 0x50); showStrip(); delay(SpeedDelay); } delay(ReturnDelay); } void Interrupt(byte red, byte green, byte blue, int Count, int SpeedDelay) { setAll(0,0,0); for (int i=0; i<Count; i++) { setPixel(random(NUM_LEDS),red,green,blue); showStrip(); delay(SpeedDelay); } delay(SpeedDelay); } void Party(byte red, byte green, byte blue, int EyeSize, int SpeedDelay, int ReturnDelay){ for(int i =((NUM_LEDS-EyeSize)/2); i>=0; i--) { for(int j = 1; j <= EyeSize; j++) { setPixel(i+j, red, green, blue); } setPixel(i+EyeSize+1, red, blue, green); for(int j = 1; j <= EyeSize; j++) { setPixel(NUM_LEDS-i-j, red, green, blue); } setPixel(NUM_LEDS-i-EyeSize-1, red, blue, green); showStrip(); delay(SpeedDelay); } delay(ReturnDelay); } void showStrip() { strip.show(); } void setPixel(int Pixel, byte red, byte green, byte blue) { strip.setPixelColor(Pixel, strip.Color(red, green, blue)); } void setAll(byte red, byte green, byte blue) { for(int i = 0; i < NUM_LEDS; i++ ) { setPixel(i, red, green, blue); } showStrip(); }
Current status:
Only one LED stripe on the backside.
Plan is do have two, starting at the below middle and over the shoulder to the front.
Battery and esp8266 are placed in the bottom next to the rain cover.