示例#1
0
def Spiral():
    length = len(SPIRAL)
    for number, val in enumerate(SPIRAL): # up from bottom
      print("S",number,number/length,val)
      tree[val].color = Color.from_hsv(0.8,number/length,1).rgb
    for number, val in reversed(list(enumerate(SPIRAL))): # down from top
      print("S",number,number/length,val)
      tree[val].color = Color.from_hsv(0.8,number/length,1).rgb
示例#2
0
def red_to_blue(duration):
    hue = 1.0
    t = 0
    tree.color = Color.from_hsv(hue, 1.0, 0.5)
    while t < duration * 20:
        relt = t % 100
        if relt > 50:
            hue = 1.0 - ((100 - relt) / 50.0 * 0.4)
        else:
            hue = 1.0 - (relt / 50.0 * 0.4)
        tree.color = Color.from_hsv(hue, 1.0, 0.5)
        t = t + 1
        sleep(0.05)
示例#3
0
def random_color():
    h = random()
    s = 1
    v = 1
    hsv = Color.from_hsv(h,s,v)
    rgb = hsv.rgb
    #
    return (rgb)
示例#4
0
def random_color():
    # You can either use the hsv model (preferred)..
    h = random()
    s = 1
    v = 1
    hsv = Color.from_hsv(h, s, v)
    rgb = hsv.rgb
    #
    # ..or use the rgb model
    #r = random()
    #g = random()
    #b = random()
    #rgb = Color.from_rgb(r,g,b).rgb
    #
    return (rgb)
示例#5
0
def lighthouse(duration):
    t = 0
    groups = [[0, 1, 2], [16, 17, 18], [13, 14, 15], [4, 5, 6], [10, 11, 12],
              [22, 23, 24], [19, 20, 21], [7, 8, 9]]
    colors = [(1, 1, 0) for x in range(25)]
    hue = 0
    while t < duration * 20:
        gh = hue
        for g in groups:
            for i in g:
                colors[i] = Color.from_hsv(1.0, 0.0, gh)
            gh = gh + 0.125
            if gh > 1:
                gh = gh - 1
        hue = hue + 1.0 / 45.0
        if hue > 1:
            hue = hue - 1

        tree.value = colors
        t = t + 1
        sleep(0.05)
示例#6
0
def test_color_from_hsv():
    verify_color(Color.from_hsv(0, 0, 0), (0.0, 0.0, 0.0))
    verify_color(Color.from_hsv(0, 0, 1), (1.0, 1.0, 1.0))
    verify_color(Color.from_hsv(0, 0, 2), (1.0, 1.0, 1.0))
    verify_color(Color.from_hsv(0, 1, 1), (1.0, 0.0, 0.0))
示例#7
0
    "https://thepihut.com/products/3d-rgb-xmas-tree-for-raspberry-pi"
    " https://github.com/gilesknap/raspitree")
parser.add_argument("--brightness",
                    help="brightness for all LEDs",
                    type=float,
                    default=0.1)
parser.add_argument("--degrees",
                    help="hue separation between each row",
                    type=int,
                    default=80)
parser.add_argument("--pause",
                    help="pause after update in secs",
                    type=float,
                    default=0)
args = parser.parse_args()

tree.brightness = args.brightness
tree.on()

hue = 0

while True:
    for row in order:
        hue += args.degrees / 360
        hue %= 1.0
        for pixel_number in row:
            c = Color.from_hsv(hue, 1.0, 1.0)
            tree[pixel_number].color = c
    tree.update()
    sleep(args.pause)