User Tools

Site Tools


projects:neopixel-backpack

This is an old revision of the document!


NeoPixel BackPack

Hardware

  1. 1* Backpack
  2. 1* esp8266
  3. 2* WS2812B IP67 (75 Led long, or the length you need)
  4. wire to connect esp8266 and WS2812B
  5. heat shrink tube
  6. 1* Generic Plastic Case (LxHxB)
  7. 1* Battery Pack
  8. 1* USB cable to connect esp8266 with battery pack

Assembly

IN PROGRESS

Current Arduino Code

#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();
}
projects/neopixel-backpack.1575382410.txt.gz · Last modified: 2019-12-03 14:13 by seven