Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- - addressable_lambda:
- name: "Fire"
- update_interval: 30ms
- lambda: |-
- myMatrix.Fire12_tick (&it);
- Color result;
- // Step 4. Convert heat to LED colors
- for( int Pixel = 0; Pixel < it.size(); Pixel++) {
- uint8_t heatramp = heat[Pixel];
- // figure out which third of the spectrum we're in:
- if( heatramp > 136) { // hottest
- result = Color(255, 136, heatramp/4);
- } else if( heatramp > 80 ) { // middle
- result = Color(255, heatramp, 5);
- } else { // coolest
- result = Color(heatramp, 0, 50);
- }
- it[Pixel] = result;
- }
- - addressable_lambda:
- name: "Fire Color 1"
- update_interval: 30ms
- lambda: |-
- myMatrix.Fire12_tick (&it);
- Color result;
- // Step 4. Convert heat to LED colors
- for( int Pixel = 0; Pixel < it.size(); Pixel++) {
- uint8_t heatramp = heat[Pixel];
- // figure out which third of the spectrum we're in:
- if( heatramp > 136) { // hottest
- result = Color(255, 136, heatramp/4);
- } else if( heatramp > 80 ) { // middle
- result = Color(255, heatramp, 5);
- } else { // coolest
- result = Color(heatramp, 0, 50);
- }
- it[Pixel] = myMatrix.TransformHueShift(result);
- }
- - addressable_lambda:
- name: "Fire Color 2"
- update_interval: 30ms
- lambda: |-
- myMatrix.Fire12_tick (&it);
- // Step 4. Convert heat to LED colors
- for( int Pixel = 0; Pixel < it.size(); Pixel++) {
- //it[Pixel] = myMatrix.TransformMultiply(ESPHSVColor(30, heat[Pixel], gamma8[qadd8(heat[Pixel], 140)]).to_rgb(),current_color);
- it[Pixel] = myMatrix.TransformMultiply(ESPHSVColor(myMatrix.cur_hue_int, heat[Pixel], heat[Pixel]<<1).to_rgb(),current_color);
- }
- - addressable_lambda:
- name: "Fire Color 3"
- update_interval: 30ms
- lambda: |-
- myMatrix.Fire12_tick (&it);
- // Step 4. Convert heat to LED colors
- for( int Pixel = 0; Pixel < it.size(); Pixel++) {
- uint8_t heatramp = heat[Pixel];
- Color result;
- // figure out which third of the spectrum we're in:
- if( heatramp > 136) { // hottest
- result = Color(255, 136, heatramp>>2);
- } else if( heatramp > 80 ) { // middle
- result = Color(255, heatramp>>1, 5);
- } else { // coolest
- result = Color(heatramp, 0, 50);
- }
- it[Pixel] = myMatrix.TransformMultiply(result,current_color);
- }
- - addressable_lambda:
- name: Fireplace
- update_interval: 30ms
- lambda: |-
- // TODO: tune
- int _hue = static_cast<int>(myMatrix.cur_hue_int); // id(want_fireplace_hue);
- int _ambient = 1; // id(want_fireplace_ambient);
- int _steps = 10; // id(want_fireplace_steps);
- struct leds_s {
- int16_t current, delta, steps;
- };
- static struct leds_s *leds = (struct leds_s *)calloc(it.size(), sizeof(struct leds_s));
- for (auto i = 0; i < it.size(); ++i) {
- if (!leds[i].steps) {
- int v = random8() - leds[i].current / 100;
- if (v > 0) {
- leds[i].steps = random(60 * _steps / 100, _steps);
- } else {
- leds[i].steps = random(_steps, 140 * _steps / 100);
- }
- leds[i].delta = 100 * v / leds[i].steps;
- } else {
- leds[i].current += leds[i].delta;
- leds[i].steps--;
- }
- int h = leds[i].current / 100;
- it[i] = ESPHSVColor(_hue + scale8_video(h, 8), 255, gamma8[qadd8(h, _ambient)]);
- }
- - addressable_lambda:
- name: "Flames"
- update_interval: 70ms
- lambda: |-
- // Regular (orange) flame:
- const int r = 226, g = 121, b = 35;
- // Purple flame:
- // int r = 158, g = 8, b = 148;
- // Green flame:
- //int r = 74, g = 150, b = 12;
- // Flicker, based on our initial RGB values
- for(int i=0; i< it.size(); i++) {
- int flicker = static_cast<int>(random8(0,55));
- int r1 = r-flicker;
- int g1 = g-flicker;
- int b1 = b-flicker;
- if(g1<0) g1=0;
- if(r1<0) r1=0;
- if(b1<0) b1=0;
- it[i] = myMatrix.TransformMultiply(Color(r1, g1, b1),current_color);
- }
- - addressable_lambda:
- name: "Fire2"
- update_interval: 50ms
- lambda: |-
- for (uint16_t i = 0; i < it.size(); i++) { //uint8_t may be enough, if using < 256, but doesn't matter memorywise
- float brightness = (it.size()/2 - abs(it.size()/2 - i)) / (float)(it.size()/2); //center effect, fade out to the edges
- uint8_t whiteness = random(64 * brightness); //add some white, centered
- uint8_t redness = random(64) + random(127 * brightness); //make red
- uint8_t greeness = random(redness/2); //add some green to give it a yellow tint
- it[i] = ESPColor(whiteness + redness, whiteness + greeness, whiteness);
- }
Advertisement
Add Comment
Please, Sign In to add comment