Light Show library for organic, calm, light display.

Dependencies:   BLE_API mbed nRF51822

Fork of mbed_blinky by Mbed

Committer:
nargetdev
Date:
Mon Feb 01 01:02:46 2016 +0000
Revision:
25:d48f46d753fd
Parent:
24:52319c0a14b8
Child:
26:8bc9984c4600
alpha done refactoring to object oriented

Who changed what in which revision?

UserRevisionLine numberNew contents of line
nargetdev 24:52319c0a14b8 1 #ifndef LIGHT_SHOW_H
nargetdev 24:52319c0a14b8 2 #define LIGHT_SHOW_H
nargetdev 24:52319c0a14b8 3
nargetdev 25:d48f46d753fd 4 #include "macros.h"
nargetdev 25:d48f46d753fd 5 #include "config.h"
nargetdev 25:d48f46d753fd 6 #include "utility.h"
nargetdev 25:d48f46d753fd 7
nargetdev 25:d48f46d753fd 8 #include "rgb_led.h"
nargetdev 25:d48f46d753fd 9 #include "sinusoid.h"
nargetdev 25:d48f46d753fd 10
nargetdev 25:d48f46d753fd 11 extern Serial pc;
nargetdev 25:d48f46d753fd 12
nargetdev 25:d48f46d753fd 13 const float HYSTERESIS_QUANTITY = HPI;
nargetdev 25:d48f46d753fd 14 const float INCREMENT = 0.05f;
nargetdev 25:d48f46d753fd 15
nargetdev 24:52319c0a14b8 16 class LightShow
nargetdev 24:52319c0a14b8 17 {
nargetdev 24:52319c0a14b8 18 public:
nargetdev 25:d48f46d753fd 19 LightShow(Rgb*);
nargetdev 24:52319c0a14b8 20 void randomize_params();
nargetdev 25:d48f46d753fd 21
nargetdev 25:d48f46d753fd 22 void show();
nargetdev 25:d48f46d753fd 23 void simple_show(); /** sanity check **/
nargetdev 25:d48f46d753fd 24
nargetdev 25:d48f46d753fd 25 private:
nargetdev 25:d48f46d753fd 26 Rgb* strip;
nargetdev 25:d48f46d753fd 27 Sinusoid sine_waves[3];
nargetdev 24:52319c0a14b8 28
nargetdev 25:d48f46d753fd 29 // get some randomness
nargetdev 25:d48f46d753fd 30 Timer t;
nargetdev 25:d48f46d753fd 31
nargetdev 24:52319c0a14b8 32 static const float HYSTERESIS_QUANTITY = PI/4;
nargetdev 24:52319c0a14b8 33
nargetdev 25:d48f46d753fd 34 float time; // phase
nargetdev 25:d48f46d753fd 35 uint8_t finished; // bit mask for smooth fade out
nargetdev 25:d48f46d753fd 36 float hysteresis;
nargetdev 25:d48f46d753fd 37 float rgb_c[3];
nargetdev 24:52319c0a14b8 38
nargetdev 25:d48f46d753fd 39 void update_rgb();
nargetdev 24:52319c0a14b8 40 };
nargetdev 24:52319c0a14b8 41
nargetdev 24:52319c0a14b8 42 #endif