From 55a1c9812bd011590cf0f2678f81d4cdcc8a4dbb Mon Sep 17 00:00:00 2001 From: jrhoffa Date: Mon, 12 Sep 2022 18:31:10 -0700 Subject: [PATCH] Add random and rainbow variant presets Changed refresh rate to 4 Hz to better visualize animations --- main/main.cpp | 2 +- main/presets.cpp | 56 ++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 57 insertions(+), 1 deletion(-) diff --git a/main/main.cpp b/main/main.cpp index 4413116..367aa51 100644 --- a/main/main.cpp +++ b/main/main.cpp @@ -209,7 +209,7 @@ extern "C" void app_main(void) { } else { ESP_LOGI(TAG, "Starting animation"); - int period_us = 1000000; + int period_us = 1000000 / 4; int64_t target_us = time_us(); while (true) { int64_t delay_us = target_us - time_us(); diff --git a/main/presets.cpp b/main/presets.cpp index 1e40a89..3ca744a 100644 --- a/main/presets.cpp +++ b/main/presets.cpp @@ -18,6 +18,24 @@ GRADIENT(rainbow, 6, { Colors::purple, }); +GRADIENT(dark_rainbow, 6, { + Colors::dark_red, + Colors::dark_orange, + Colors::dark_yellow, + Colors::dark_green, + Colors::dark_blue, + Colors::dark_purple, +}); + +GRADIENT(pale_rainbow, 6, { + Colors::pale_red, + Colors::pale_orange, + Colors::pale_yellow, + Colors::pale_green, + Colors::pale_blue, + Colors::pale_purple, +}); + GRADIENT(peacock, 4, { Colors::teal, Colors::black, @@ -25,6 +43,31 @@ GRADIENT(peacock, 4, { Colors::blue, }); +// Guaranteed to be random. https://xkcd.com/221/ +GRADIENT(random, 20, { + {223, 241, 107}, + Colors::black, + {34, 170, 82}, + Colors::black, + {98, 222, 224}, + Colors::black, + {230, 114, 8}, + Colors::black, + {226, 215, 213}, + Colors::black, + {94, 187, 179}, + Colors::black, + {76, 185, 214}, + Colors::black, + {40, 115, 111}, + Colors::black, + {230, 234, 120}, + Colors::black, + {157, 128, 68}, + Colors::black, +}); + + } // Gradients @@ -40,8 +83,18 @@ namespace Patterns { } PATTERN(rainbow); +PATTERN(dark_rainbow); +PATTERN(pale_rainbow); PATTERN(peacock); +static const Pattern random = { + .cycle_length = 20, + .cycle_time_ms = 10000, + .reverse = false, + .march = true, + .gradient = Gradients::random +}; + } // Patterns @@ -51,7 +104,10 @@ namespace Presets { const std::map map = { PRESET(rainbow), + PRESET(dark_rainbow), + PRESET(pale_rainbow), PRESET(peacock), + PRESET(random), }; const Pattern* find(const std::string &name) {