Exemple #1
0
    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)
Exemple #2
0
    async def chaos_fill_down(self, start: int, end: int, speed: int,
                              display: int, pause: int, flush: int):
        Helper.set_in_range(self.strip, start, end, Color(0, 0, 0))

        # Fill down with random colors
        for i in range(start, end):
            r = random.randint(0, 255)
            g = random.randint(0, 255)
            b = random.randint(0, 255)
            for j in range(start, end - i):
                self.strip.setPixelColor(j, Color(r, g, b))

                if j > 0:
                    self.strip.setPixelColor(j - 1, Color(0, 0, 0))
                await asyncio.sleep(speed / 1000)

            self.strip.show()
            await asyncio.sleep(display / 1000)

        await asyncio.sleep(pause / 1000)

        # "Flush" results
        for i in range(end - 1, -1, -1):
            for j in range(end - 1, 0, -1):
                old_color = self.strip.getPixelColor(j - 1)
                self.strip.setPixelColor(j, old_color)

            self.strip.setPixelColor(i - end + 1, Color(0, 0, 0))
            self.strip.show()
            await asyncio.sleep(flush / 1000)
        await asyncio.sleep(pause / 1000)
Exemple #3
0
 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)
Exemple #4
0
    async def snow_sparkle(
        self, start: int, end: int, red: int, green: int, blue: int, sparkle_delay: float, delay: float
    ):
        Helper.set_in_range(self.strip, start, end, Color(red, green, blue))
        pixel = random.randrange(start, end)
        self.strip.setPixelColor(pixel, Color(255, 255, 255))
        self.strip.show()

        # await asyncio.sleep(sparkle_delay)

        self.strip.setPixelColor(pixel, Color(red, green, blue))
        self.strip.show()
Exemple #5
0
    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)
Exemple #6
0
    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)
Exemple #7
0
    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()
Exemple #8
0
    async def meteor_rain(self, start: int, end: int, red: int, green: int,
                          blue: int, size: int, trail_decay: int,
                          random_decay: bool, wait_ms: int):
        Helper.set_in_range(self.strip, start, end, Color(0, 0, 0))
        for i in range(start, end):
            # Fade brightness all LEDs one step
            for j in range(start, end):
                if (not random_decay) or (random.randint(0, 10) > 5):
                    Helper.fade_to_black(self.strip, j, trail_decay)

            # Draw meteor
            for j in range(start, start + size):
                if ((i - j + start) < end) and ((i - j) >= 0):
                    self.strip.setPixelColor(i - j + start,
                                             Color(red, green, blue))

            self.strip.show()
            await asyncio.sleep(wait_ms / 1000)
Exemple #9
0
    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()
Exemple #10
0
 async def paint_range_in_one_color(self, start: int, end: int, red: int = 255, green: int = 255, blue: int = 255):
     Helper.set_in_range(self.strip, start, end, Color(red, green, blue))