Beispiel #1
0
def effect():
    # trigger effect
    for i in range(steps_per * 8):
        for y in range(8):
            for x in range(8):
                r, g, b = background(x, y, i)
                r = int(max(0, min(255, r)))
                g = int(max(0, min(255, g)))
                b = int(max(0, min(255, b)))
                rainbow.set_pixel(x, y, r, g, b)

        rainbow.show()

        time.sleep(0.01)

    for i in range(200):
        v = (math.sin(i / 6.0) + 1.0) / 2.0
        for y in range(8):
            for x in range(8):
                r = 0
                b = 0
                g = 100
                g *= tick_mask[y][x]
                g *= v
                r = int(max(0, min(255, r)))
                g = int(max(0, min(255, g)))
                b = int(max(0, min(255, b)))
                rainbow.set_pixel(x, y, r, g, b)

        rainbow.show()

        time.sleep(0.02)
Beispiel #2
0
def step():
    global i
    i = 0 if i>=100*len(ASCIIPIC) else i+1 # avoid overflow
    for h in range(height):
        for w in range(width):
            hPos = (i+h) % len(ASCIIPIC)
            chr = ASCIIPIC[hPos][w]
            if chr == ' ':
                rainbow.set_pixel(w, h, 0, 0, 0)
            else:
                rainbow.set_pixel(w, h, 255, 0, 0)
    rainbow.show()
Beispiel #3
0
def setup():

    global heights
    heights = []
    for b in range(0, 6):
        heights.append(0)
    uh.off()
    for b in range(0, 8):
        uh.set_pixel(0, b, 255, 255, 255)
    for b in range(0, 8):
        uh.set_pixel(7, b, 255, 255, 255)
    for b in range(1, 7):
        uh.set_pixel(b, 0, 255, 255, 255)
    uh.show()
Beispiel #4
0
def update_display():

    # keep track of the row we are updating
    c = row_pointer
    for h in range(height):
        for w in range(width):
            # val is between 50 and 255
            val = rows[c][w]

            # invert coordinates
            rainbow.set_pixel((width - 1) - w, (height - 1) - h, val, val, val)
        c += 1
        if c > height - 1:
            c = 0
    rainbow.show()
Beispiel #5
0
def drop_ball():

    ball_colour = [randint(100, 255), randint(100, 255), randint(100, 255)]
    ball_column = randint(0, 5)

    while heights[ball_column] == 7:
        ball_column = randint(0, 5)
    height = heights[ball_column]
    ball_y = 7
    uh.set_pixel(ball_column + 1, ball_y, ball_colour[0], ball_colour[1],
                 ball_colour[2])
    uh.show()
    dropcount = 6 - height
    for y in range(0, dropcount):
        uh.set_pixel(ball_column + 1, ball_y, 0, 0, 0)
        ball_y -= 1
        uh.set_pixel(ball_column + 1, ball_y, ball_colour[0], ball_colour[1],
                     ball_colour[2])
        uh.show()
        time.sleep(0.02)
    heights[ball_column] += 1
Beispiel #6
0
def toggle(tog):
    #toggle has been called determine state
    if tog:
        #randomise red, green and blue
        r = randint(30, 255)
        g = randint(30, 255)
        b = randint(30, 255)
        msg = "On!"
    else:
        #clear red, green and blue
        r = 0
        g = 0
        b = 0
        msg = "Off!"
    #print the relevant message
    print(msg, r, g, b)
    #set the LEDs to the relevant lighting (all on/off)
    for y in range(height):
        for x in range(width):
            rainbow.set_pixel(x, y, r, g, b)
            rainbow.show()
    #return the inverse boolean variable that was passed in
    return not tog
Beispiel #7
0
def clear():
    for y in range(8):
        for x in range(8):
            rainbow.set_pixel(x, y, 0, 0, 0)

    rainbow.show()
Beispiel #8
0
import time, colorsys
import numpy as np

rainbow.brightness(0.5)


def make_gaussian(fwhm):
    x = np.arange(0, 8, 1, float)
    y = x[:, np.newaxis]
    x0, y0 = 3.5, 3.5
    fwhm = fwhm
    gauss = np.exp(-4 * np.log(2) * ((x - x0)**2 + (y - y0)**2) / fwhm**2)
    return gauss


while True:
    fwhm = 5
    gauss = make_gaussian(fwhm)
    for y in range(8):
        for x in range(8):
            h = 0.1
            s = 1.0
            v = gauss[x, y]
            rgb = colorsys.hsv_to_rgb(h, s, v)
            r = int(rgb[0] * 255.0)
            g = int(rgb[1] * 255.0)
            b = int(rgb[2] * 255.0)
            rainbow.set_pixel(x, y, r, g, b)
    rainbow.show()
    time.sleep(0.005)
    def show(self):

        rainbow.show()