def run(self, start: int, end: int, red: int, green: int, blue: int, eye_size: int, delay: int, return_delay: int): led_max = int(math.floor((end - eye_size) / 2)) for i in range(start, led_max): Helper.set_all(self.strip, Color(0, 0, 0)) self.strip.setPixelColor( i, Color(int(math.floor(red / 10)), int(math.floor(green / 10)), int(math.floor(blue / 10))) ) for j in range(1, eye_size + 1): self.strip.setPixelColor(i + j, Color(red, green, blue)) self.strip.setPixelColor( i + eye_size + 1, Color(int(math.floor(red / 10)), int(math.floor(green / 10)), int(math.floor(blue / 10))) ) self.strip.setPixelColor( end - i, Color(int(math.floor(red / 10)), int(math.floor(green / 10)), int(math.floor(blue / 10))) ) for j in range(1, eye_size + 1): self.strip.setPixelColor(end - i - j, Color(red, green, blue)) self.strip.setPixelColor( end - i - eye_size - 1, Color(int(math.floor(red / 10)), int(math.floor(green / 10)), int(math.floor(blue / 10))) ) self.strip.show() await asyncio.sleep(delay) await asyncio.sleep(return_delay)
def twinkle(self, red: int, green: int, blue: int, iterations: int, delay: float, only_one: bool): Helper.set_all(self.strip, Color(0, 0, 0)) for i in range(0, iterations): self.strip.setPixelColor( random.randrange(0, self.strip.numPixels()), Color(red, green, blue)) self.strip.show() time.sleep(delay) if only_one: Helper.set_all(strip, Color(0, 0, 0)) time.sleep(delay)
async def strobe(self, red: int, green: int, blue: int, iterations: int, flashes_delay: float, end_pause: int): for i in range(0, iterations): Helper.set_all(self.strip, Color(red, green, blue)) self.strip.show() await asyncio.sleep(flashes_delay) Helper.set_all(self.strip, Color(0, 0, 0)) self.strip.show() await asyncio.sleep(flashes_delay) await asyncio.sleep(end_pause)
def twinkle_random(self, iterations: int, delay: float, only_one: bool): Helper.set_all(self.strip, Color(0, 0, 0)) for i in range(0, iterations): self.strip.setPixelColor( random.randrange(0, self.strip.numPixels()), Color(random.randrange(0, 256), random.randrange(0, 256), random.randrange(0, 256))) self.strip.show() time.sleep(delay) if only_one: Helper.set_all(self.strip, Color(0, 0, 0)) time.sleep(delay)
def fade_in_out(self, red: int, green: int, blue: int): # Fade In for i in range(0, 256): r = int(math.floor((i / 256.0) * red)) g = int(math.floor((i / 256.0) * green)) b = int(math.floor((i / 256.0) * blue)) Helper.set_all(self.strip, Color(r, g, b)) self.strip.show() # Fade Out. for i in range(256, 0, -1): r = int(math.floor((i / 256.0) * red)) g = int(math.floor((i / 256.0) * green)) b = int(math.floor((i / 256.0) * blue)) Helper.set_all(self.strip, Color(r, g, b)) self.strip.show()
def fade_rgb(self, iterations: int = 3): for i in range(0, iterations): # Fade In for j in range(0, 256): if i == 0: Helper.set_all(self.strip, Color(j, 0, 0)) elif i == 1: Helper.set_all(self.strip, Color(0, j, 0)) elif i == 2: Helper.set_all(self.strip, Color(0, 0, j)) self.strip.show() # Fade Out for j in range(256, 0, -1): if i == 0: Helper.set_all(self.strip, Color(j, 0, 0)) elif i == 1: Helper.set_all(self.strip, Color(0, j, 0)) elif i == 2: Helper.set_all(self.strip, Color(0, 0, j)) self.strip.show()