Light Show library for organic, calm, light display.
Dependencies: BLE_API mbed nRF51822
Fork of mbed_blinky by
light_show.h@25:d48f46d753fd, 2016-02-01 (annotated)
- 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?
User | Revision | Line number | New 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 |