Exemplo n.º 1
0
def animation_rainbow_flow(led: LEDObject, speed: int, circle_width=60):
    if speed == None:
        speed = 1
    """Draw rainbow that uniformly distributes itself across all pixels."""
    # set rainbow
    for i in range(0, led.num_pixels, circle_width):
        for j in range(0, circle_width):
            if i + j >= led.num_pixels:
                break

            h = 1 / circle_width * j
            r, g, b = colorsys.hsv_to_rgb(h, 1.0, 1.0)
            hex_rgb = [
                hex(int(r * 255)).split('0x')[-1],
                hex(int(g * 255)).split('0x')[-1],
                hex(int(b * 255)).split('0x')[-1]
            ]
            hexcolor = ''
            for color in hex_rgb:
                if len(color) == 1:
                    color = '0' + color
                hexcolor += color

            led.color(hexcolor, i + j)
    while True:
        led.show()
        led.pixel_shift(pixel_num=speed)
Exemplo n.º 2
0
def default(led: LEDObject):
    painter_color = [
        'ff0505', '#ff9400', 'ffe800', '0505ff', '#00d6ff', '0505ff', 'd800ff'
    ]
    for hexcolor, char in zip(painter_color, 'Painter'):
        string(led, hexcolor, char)
    led.show()
Exemplo n.º 3
0
def rainbow_long(led: LEDObject, iterations=10, speed=1):
    """Draw rainbow that uniformly distributes itself across all pixels."""
    for j in range(256 * iterations):
        for i in range(led.num_pixels):
            led.strip.setPixelColor(
                i, wheel((int(i * 256 / led.num_pixels) + j) & 255))
        led.show()
        time.sleep(0.0001 / speed**2)
Exemplo n.º 4
0
def animation_flow(led: LEDObject, speed: int, hexcolor: str, block=2):
    if speed == None:
        speed = 1
    if hexcolor == None:
        hexcolor = 'ffffff'

    sleepsec = 0.1
    while True:
        for i in range(0, led.num_pixels, block):
            led.color('000000')  # clear
            for j in range(block):
                led.color(hexcolor, position=i + j)
            led.show()
            time.sleep(sleepsec / speed)
Exemplo n.º 5
0
def pain(led: LEDObject, hexcolor: str):
    if hexcolor == None:
        hexcolor = 'ff0000'

    if hexcolor == 'rainbow':
        animation_rainbow(led)
        for char in 'ter':
            string(led, '000000', char)
        led.show()

    else:
        for char in 'Pain':
            string(led, hexcolor, char)
        for char in 'ter':
            string(led, '000000', char)
        led.show()
Exemplo n.º 6
0
def animation_round(led: LEDObject, char: str, speed: int, hexcolor: str):
    if len(char) != 1:
        raise ValueError

    # Init
    led.off()
    if speed == None:
        speed = 1
    if hexcolor == None:
        hexcolor = 'ffffff'

    for count, line in enumerate(led.round_painter[char]):
        for pixel in line:
            led.color(hexcolor, pixel)
        if count % speed == 0:
            led.show()
            time.sleep(0.001 / speed)
    led.show()
Exemplo n.º 7
0
def animation_rainbow(led: LEDObject, circle_width=60):
    # set rainbow
    for i in range(0, led.num_pixels, circle_width):
        for j in range(0, circle_width):
            if i + j >= led.num_pixels:
                break

            h = 1 / circle_width * j
            r, g, b = colorsys.hsv_to_rgb(h, 1.0, 1.0)
            hex_rgb = [
                hex(int(r * 255)).split('0x')[-1],
                hex(int(g * 255)).split('0x')[-1],
                hex(int(b * 255)).split('0x')[-1]
            ]
            hexcolor = ''
            for color in hex_rgb:
                if len(color) == 1:
                    color = '0' + color
                hexcolor += color

            led.color(hexcolor, i + j)
    led.show()
Exemplo n.º 8
0
def animation_alternating_flashing(led: LEDObject,
                                   speed: int,
                                   hexcolor: str,
                                   dist=6):
    if speed == None:
        speed = 1
    if hexcolor == None:
        hexcolor = 'ffffff'

    sleepsec = 0.2
    while True:
        led.color('000000')
        for i in range(0, led.num_pixels, dist * 2):

            for j in range(0, dist):
                if i + j >= led.num_pixels:
                    break
                led.color(hexcolor, position=i + j)
            for j in range(dist, dist * 2):
                if i + j >= led.num_pixels:
                    break
                led.color('000000', position=i + j)
        led.show()
        time.sleep(sleepsec / speed)

        led.color('000000')
        for i in range(0, led.num_pixels, dist * 2):
            for j in range(0, dist):
                if i + j >= led.num_pixels:
                    break
                led.color('000000', position=i + j)
            for j in range(dist, dist * 2):
                if i + j >= led.num_pixels:
                    break
                led.color(hexcolor, position=i + j)
        led.show()
        time.sleep(sleepsec / speed)
Exemplo n.º 9
0
def static(led: LEDObject, hexcolor):
    led.color(hexcolor)
    led.show()
Exemplo n.º 10
0
    if pattern == 'Rainbow Animation':
        animation_rainbow_flow(led, speed=option1)

    if pattern == 'Rainbow Long':
        rainbow_long(led, speed=option1)

    if pattern == 'Advance':
        animation_flow(led, speed=option1, hexcolor=option2)

    if pattern == 'Pain':
        pain(led, hexcolor=option2)

    if pattern == 'P':
        led.off()
        string(led, hexcolor=option2, char='P')
        led.show()

    if pattern == 'a':
        led.off()
        string(led, hexcolor=option2, char='a')
        led.show()

    if pattern == 'i':
        led.off()
        string(led, hexcolor=option2, char='i')
        led.show()

    if pattern == 'n':
        led.off()
        string(led, hexcolor=option2, char='n')
        led.show()