Light Show library for organic, calm, light display.
Dependencies: BLE_API mbed nRF51822
Fork of mbed_blinky by
light_show.h@26:8bc9984c4600, 2016-02-01 (annotated)
- Committer:
- nargetdev
- Date:
- Mon Feb 01 01:43:59 2016 +0000
- Revision:
- 26:8bc9984c4600
- Parent:
- 25:d48f46d753fd
- Child:
- 27:a55dde8334f3
commented and sane
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 | 26:8bc9984c4600 | 13 | const float HYSTERESIS_QUANTITY = PI*2; |
nargetdev | 26:8bc9984c4600 | 14 | const float INCREMENT = 0.00628f * 2; |
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 | 26:8bc9984c4600 | 20 | |
nargetdev | 26:8bc9984c4600 | 21 | /* randomize parameters of the 3 sine waves */ |
nargetdev | 24:52319c0a14b8 | 22 | void randomize_params(); |
nargetdev | 25:d48f46d753fd | 23 | |
nargetdev | 26:8bc9984c4600 | 24 | /* Displays light show. |
nargetdev | 26:8bc9984c4600 | 25 | * The light show is a composition of 3 sine waves for 3 channel LEDs |
nargetdev | 26:8bc9984c4600 | 26 | **/ |
nargetdev | 25:d48f46d753fd | 27 | void show(); |
nargetdev | 26:8bc9984c4600 | 28 | |
nargetdev | 26:8bc9984c4600 | 29 | /** sanity check for debugging **/ |
nargetdev | 26:8bc9984c4600 | 30 | void simple_show(); |
nargetdev | 25:d48f46d753fd | 31 | |
nargetdev | 25:d48f46d753fd | 32 | private: |
nargetdev | 25:d48f46d753fd | 33 | Rgb* strip; |
nargetdev | 25:d48f46d753fd | 34 | Sinusoid sine_waves[3]; |
nargetdev | 24:52319c0a14b8 | 35 | |
nargetdev | 25:d48f46d753fd | 36 | // get some randomness |
nargetdev | 25:d48f46d753fd | 37 | Timer t; |
nargetdev | 25:d48f46d753fd | 38 | |
nargetdev | 24:52319c0a14b8 | 39 | static const float HYSTERESIS_QUANTITY = PI/4; |
nargetdev | 24:52319c0a14b8 | 40 | |
nargetdev | 25:d48f46d753fd | 41 | float time; // phase |
nargetdev | 25:d48f46d753fd | 42 | uint8_t finished; // bit mask for smooth fade out |
nargetdev | 25:d48f46d753fd | 43 | float hysteresis; |
nargetdev | 25:d48f46d753fd | 44 | float rgb_c[3]; |
nargetdev | 24:52319c0a14b8 | 45 | |
nargetdev | 25:d48f46d753fd | 46 | void update_rgb(); |
nargetdev | 24:52319c0a14b8 | 47 | }; |
nargetdev | 24:52319c0a14b8 | 48 | |
nargetdev | 24:52319c0a14b8 | 49 | #endif |