diff --git a/.gitignore b/.gitignore index 1159b2d..f03ad3e 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,4 @@ .clang_complete .gcc-flags.json .ccls +*.swp diff --git a/src/main.ino b/src/main.ino index c407b85..7023734 100644 --- a/src/main.ino +++ b/src/main.ino @@ -9,22 +9,28 @@ #define LED_PIN 7 -const int mode = 2; // 1 for acceleration, 2 for fire -const int debug = 2; -const int STRIPS = 2; -const int NUM_LEDS = 15; -const int FRAMES_PER_SECOND = 30; +byte mode = 2; // 0 for acceleration, 1 for fire, 2 for waterfall, 3 pride, 4 glitter, 5 off +const byte NUM_MODES = 6; +const byte debug = 3; +const byte STRIPS = 6; +const byte NUM_LEDS = 10; +const byte FRAMES_PER_SECOND = 30; const float range = 0.5; //accelleration range in g -const int BRIGHTNESS = 50; -const int COOLING = 80; -const int SPARKING = 50; +const byte BRIGHTNESS = 50; +const byte COOLING = 80; +const byte SPARKING = 50; +uint8_t gHue = 0; + float accelerationHistory [STRIPS]; MPU6050 mpu(Wire); CRGB leds[NUM_LEDS * STRIPS]; CRGBPalette16 gPal; +CRGB flagcolors[6] = {CRGB::Red, CRGB::DarkOrange, CRGB::Yellow, CRGB::DarkGreen, CRGB::Blue, CRGB::DarkViolet}; + +const byte modeSwitchPin = 2; void setup() { Serial.begin(19200); @@ -32,12 +38,14 @@ void setup() { FastLED.addLeds(leds, NUM_LEDS*STRIPS).setCorrection( TypicalLEDStrip ); FastLED.setBrightness( BRIGHTNESS ); - gPal = CRGBPalette16( CRGB::Black, CRGB::Red, CRGB::Yellow, CRGB::White); - //gPal = CRGBPalette16( CRGB::Black, CRGB::Blue, CRGB::Aqua, CRGB::White); + + pinMode(modeSwitchPin, INPUT_PULLUP); + attachInterrupt(digitalPinToInterrupt(modeSwitchPin), setMode, RISING); for (int i = 0; i= NUM_MODES) { + mode = 0; + } + if (debug <= 3) { + Serial.print("Blinkmode:\t"); + Serial.println(mode); + } + +} + +void loop() { + if (mode == 0) { + // === Read acceleromter data === // + float accCombined = calculateOrientationData(); + enableLEDsOnAcceleration(accCombined); + } + else if ((mode == 1) || (mode == 2)) { + random16_add_entropy( random()); + drawFire(); + } + else if (mode == 3) { + drawPride(); + } + else if (mode == 4) { + drawGlitter(); + } + else if (mode == 5) { + drawOff(); + } + FastLED.show(); + gHue++; + FastLED.delay(1000 / FRAMES_PER_SECOND); +} +