Add flicker

This commit is contained in:
jimmy 2025-07-12 10:14:46 +12:00
parent 4178746858
commit 9fa954d8cf
1 changed files with 17 additions and 2 deletions

View File

@ -25,6 +25,7 @@ class Patterns:
"random_theater_chase": self.random_theater_chase_step,
"random_blink": self.random_blink_step,
"color_transition": self.color_transition_step,
"flicker": self.flicker_step, # Added the new flicker pattern
"external": None
}
self.selected = selected
@ -150,8 +151,9 @@ class Patterns:
return True
return False
def apply_brightness(self, color):
return tuple(int(c * self.brightness / 255) for c in color)
def apply_brightness(self, color, brightness_override=None):
effective_brightness = brightness_override if brightness_override is not None else self.brightness
return tuple(int(c * effective_brightness / 255) for c in color)
def select(self, pattern):
if pattern in self.patterns:
@ -364,3 +366,16 @@ class Patterns:
self.hold_start_time = current_time
self.last_update = current_time
def flicker_step(self):
current_time = utime.ticks_ms()
if utime.ticks_diff(current_time, self.last_update) >= self.delay/5:
base_color = self.colors[0]
# Increase the range for flicker_brightness_offset
# Changed from self.brightness // 4 to self.brightness // 2 (or even self.brightness for max intensity)
flicker_brightness_offset = random.randint(-int(self.brightness // 1.5), int(self.brightness // 1.5))
flicker_brightness = max(0, min(255, self.brightness + flicker_brightness_offset))
flicker_color = self.apply_brightness(base_color, brightness_override=flicker_brightness)
self.fill(flicker_color)
self.last_update = current_time