28#define FASTLED_ESP32_USE_CLOCKLESS_SPI
57#define LED_DIAMETER 0.15f
59#define FIRST_ANIMATION fl::AnimartrixAnim::SLOW_FADE
82 "Samples a circular ring out of a 2D Animartrix grid. @author of fx is "
86 "RGB_BLOBS5",
"RGB_BLOBS4",
"RGB_BLOBS3",
"RGB_BLOBS2",
"RGB_BLOBS",
87 "POLAR_WAVES",
"SLOW_FADE",
"ZOOM2",
"ZOOM",
"HOT_BLOB",
88 "SPIRALUS2",
"SPIRALUS",
"YVES",
"SCALEDEMO1",
"LAVA1",
89 "CALEIDO3",
"CALEIDO2",
"CALEIDO1",
"DISTANCE_EXPERIMENT",
"CENTER_FIELD",
90 "WAVES",
"CHASING_SPIRALS",
"ROTATING_BLOB",
"RINGS",
"COMPLEX_KALEIDO",
91 "COMPLEX_KALEIDO_2",
"COMPLEX_KALEIDO_3",
"COMPLEX_KALEIDO_4",
"COMPLEX_KALEIDO_5",
"COMPLEX_KALEIDO_6",
92 "WATER",
"PARAMETRIC_WATER",
"MODULE_EXPERIMENT1",
"MODULE_EXPERIMENT2",
"MODULE_EXPERIMENT3",
93 "MODULE_EXPERIMENT4",
"MODULE_EXPERIMENT5",
"MODULE_EXPERIMENT6",
"MODULE_EXPERIMENT7",
"MODULE_EXPERIMENT8",
94 "MODULE_EXPERIMENT9",
"MODULE_EXPERIMENT10",
"MODULE_EXPERIMENT_SM1",
"MODULE_EXPERIMENT_SM2",
"MODULE_EXPERIMENT_SM3",
95 "MODULE_EXPERIMENT_SM4",
"MODULE_EXPERIMENT_SM5",
"MODULE_EXPERIMENT_SM6",
"MODULE_EXPERIMENT_SM8",
"MODULE_EXPERIMENT_SM9",
96 "MODULE_EXPERIMENT_SM10",
"FLUFFY_BLOBS"
124 Serial.println(
"AnimartrixRing setup complete");
133 static int sLastFxIndex = -1;
134 if (
fxIndex.as_int() != sLastFxIndex) {
135 sLastFxIndex =
fxIndex.as_int();
145 uint8_t finalBrightness;
153 finalBrightness =
static_cast<uint8_t
>(
brightness.value());
156 FastLED.setBrightness(finalBrightness);
fl::FxEngine fxEngine(NUM_LEDS)
fl::Animartrix animartrix(xyMap, FIRST_ANIMATION)
fl::UIDropdown fxIndex("Animartrix - index", { "RGB_BLOBS5", "RGB_BLOBS4", "RGB_BLOBS3", "RGB_BLOBS2", "RGB_BLOBS", "POLAR_WAVES", "SLOW_FADE", "ZOOM2", "ZOOM", "HOT_BLOB", "SPIRALUS2", "SPIRALUS", "YVES", "SCALEDEMO1", "LAVA1", "CALEIDO3", "CALEIDO2", "CALEIDO1", "DISTANCE_EXPERIMENT", "CENTER_FIELD", "WAVES", "CHASING_SPIRALS", "ROTATING_BLOB", "RINGS", "COMPLEX_KALEIDO", "COMPLEX_KALEIDO_2", "COMPLEX_KALEIDO_3", "COMPLEX_KALEIDO_4", "COMPLEX_KALEIDO_5", "COMPLEX_KALEIDO_6", "WATER", "PARAMETRIC_WATER", "MODULE_EXPERIMENT1", "MODULE_EXPERIMENT2", "MODULE_EXPERIMENT3", "MODULE_EXPERIMENT4", "MODULE_EXPERIMENT5", "MODULE_EXPERIMENT6", "MODULE_EXPERIMENT7", "MODULE_EXPERIMENT8", "MODULE_EXPERIMENT9", "MODULE_EXPERIMENT10", "MODULE_EXPERIMENT_SM1", "MODULE_EXPERIMENT_SM2", "MODULE_EXPERIMENT_SM3", "MODULE_EXPERIMENT_SM4", "MODULE_EXPERIMENT_SM5", "MODULE_EXPERIMENT_SM6", "MODULE_EXPERIMENT_SM8", "MODULE_EXPERIMENT_SM9", "MODULE_EXPERIMENT_SM10", "FLUFFY_BLOBS" })
fl::UISlider timeSpeed("Time Speed", 1, -10, 10,.1)
fl::UISlider brightness("Brightness", BRIGHTNESS, 0, 255)
uint8_t applyBrightnessCompression(float inputBrightnessPercent, uint8_t maxBrightness, float lowThreshold, float highThreshold)
float getAverageBrightness(fl::span< const CRGB > leds)
fl::ScreenMap makeRingScreenMap(int numLeds, int gridWidth, int gridHeight, float diameter)
fl::FxEngine fxEngine(NUM_LEDS)
fl::UISlider brightness("Brightness", BRIGHTNESS, 0, 255, 1)
fl::UIDropdown fxIndex("Animartrix - index", { "RGB_BLOBS5", "RGB_BLOBS4", "RGB_BLOBS3", "RGB_BLOBS2", "RGB_BLOBS", "POLAR_WAVES", "SLOW_FADE", "ZOOM2", "ZOOM", "HOT_BLOB", "SPIRALUS2", "SPIRALUS", "YVES", "SCALEDEMO1", "LAVA1", "CALEIDO3", "CALEIDO2", "CALEIDO1", "DISTANCE_EXPERIMENT", "CENTER_FIELD", "WAVES", "CHASING_SPIRALS", "ROTATING_BLOB", "RINGS", "COMPLEX_KALEIDO", "COMPLEX_KALEIDO_2", "COMPLEX_KALEIDO_3", "COMPLEX_KALEIDO_4", "COMPLEX_KALEIDO_5", "COMPLEX_KALEIDO_6", "WATER", "PARAMETRIC_WATER", "MODULE_EXPERIMENT1", "MODULE_EXPERIMENT2", "MODULE_EXPERIMENT3", "MODULE_EXPERIMENT4", "MODULE_EXPERIMENT5", "MODULE_EXPERIMENT6", "MODULE_EXPERIMENT7", "MODULE_EXPERIMENT8", "MODULE_EXPERIMENT9", "MODULE_EXPERIMENT10", "MODULE_EXPERIMENT_SM1", "MODULE_EXPERIMENT_SM2", "MODULE_EXPERIMENT_SM3", "MODULE_EXPERIMENT_SM4", "MODULE_EXPERIMENT_SM5", "MODULE_EXPERIMENT_SM6", "MODULE_EXPERIMENT_SM8", "MODULE_EXPERIMENT_SM9", "MODULE_EXPERIMENT_SM10", "FLUFFY_BLOBS" })
fl::UISlider timeSpeed("Time Speed", 1, -10, 10,.1)
fl::UISlider autoBrightnessLowThreshold("Auto Brightness Low Threshold", 8, 0, 100, 1)
fl::UICheckbox autoBrightness("Auto Brightness", true)
fl::UISlider autoBrightnessHighThreshold("Auto Brightness High Threshold", 22, 0, 100, 1)
fl::UISlider autoBrightnessMax("Auto Brightness Max", 84, 0, 255, 1)
FASTLED_TITLE("AnimartrixRing")
fl::UIDescription description("Samples a circular ring out of a 2D Animartrix grid. @author of fx is " "StefanPetrick")
FL_DISABLE_WARNING_PUSH FL_DISABLE_WARNING_GLOBAL_CONSTRUCTORS CFastLED FastLED
Global LED strip management instance.
@ BILINEAR
Bilinear interpolation (smooth)
Manages and renders multiple visual effects (Fx) for LED strips.
@ TypicalLEDStrip
Typical values for SMD5050 LEDs.
shared_ptr< T > make_shared(Args &&... args) FL_NO_EXCEPT
Aggregator header for the fl/ui/ family of per-element UI types.