Skip to content

Instantly share code, notes, and snippets.

@rowena-s
Last active December 19, 2020 02:24
Show Gist options
  • Save rowena-s/738754e33481612d67bf3fe5db5a7193 to your computer and use it in GitHub Desktop.
Save rowena-s/738754e33481612d67bf3fe5db5a7193 to your computer and use it in GitHub Desktop.
Sense Hat Christmas lights
from sense_hat import SenseHat
from time import sleep
sense = SenseHat()
R = (255, 0, 0)
B = (0,0,0)
W = (255,255,255)
cc_1 = [
B, B, R, W, W, R, B, B,
B, R, W, W, R, W, R, B,
B, W, R, B, B, W, W, B,
B, B, B, B, B, W, R, B,
B, B, B, B, B, R, W, B,
B, B, B, B, B, W, W, B,
B, B, B, B, B, W, R, B,
B, B, B, B, B, R, W, B
]
cc_2 = [
B, B, R, W, R, W, B, B,
B, W, W, R, W, W, W, B,
B, R, W, B, B, W, R, B,
B, B, B, B, B, R, W, B,
B, B, B, B, B, W, W, B,
B, B, B, B, B, W, R, B,
B, B, B, B, B, R, W, B,
B, B, B, B, B, W, W, B
]
while True:
sense.set_pixels(cc_1)
sleep(2)
sense.set_pixels(cc_2)
sleep(2)
from sense_hat import SenseHat
from time import sleep
sense = SenseHat()
X = [0,0,0]
G= [0,100,0]
Y = [255,255,0]
BR = [100,50,20]
Red = [150,0,0]
Blue = [0,50,150]
Lime = [134,185,50]
Purple = [102,51,153]
lavender = [120,100,100]
Pink = [150,20,100]
Indigo = [75,70,170]
LightBlue=[0,150,150]
DarkYellow=[160,153,0]
Orange = [200,80,0]
tree = [
X, X, X, X, Y, X, X, X,
X, X, X, X, G, X, X, X,
X, X, X, G, G, G, X, X,
X, X, G, G, G, G, G, X,
X, X, X, G, G, G, X, X,
X, X, G, G, G, G, G, X,
X, G, G, G, G, G, G, G,
X, X, X, X, BR, X, X, X
]
ry = 255
gy = 255
sense.clear()
sense.set_pixels(tree)
while True:
sense.set_pixels(tree)
sense.set_pixel(4,2,Red)
sense.set_pixel(3,4,Blue)
sense.set_pixel(5,4,Orange)
sense.set_pixel(1,6,Purple)
sense.set_pixel(3,6,Lime)
sense.set_pixel(5,6,LightBlue)
sense.set_pixel(7,6,Pink)
sleep(1)
sense.set_pixels(tree)
sense.set_pixel(4,2,LightBlue)
sense.set_pixel(3,3,Orange)
sense.set_pixel(5,3,Lavender)
sense.set_pixel(4,5,DarkYellow)
sense.set_pixel(2,6,Pink)
sense.set_pixel(6,6,Indigo)
sleep(1)
from sense_hat import SenseHat
from time import sleep
import random
sense = SenseHat()
sense.set_rotation(270)
R = (150, 0, 0)
W = (150,150,150)
X = [0,0,0]
G= [0,100,0]
Y = [255,255,0]
BR = [100,50,20]
Red = [150,0,0]
Blue = [0,50,150]
Lime = [134,185,50]
Purple = [102,51,153]
Lavender = [120,100,100]
Pink = [150,20,100]
Indigo = [75,70,170]
LightBlue=[0,150,150]
DarkYellow=[160,153,0]
Orange = [200,80,0]
cc_1 = [
X, X, R, W, W, R, X, X,
X, R, W, W, R, W, R, X,
X, W, R, X, X, W, W, X,
X, X, X, X, X, W, R, X,
X, X, X, X, X, R, W, X,
X, X, X, X, X, W, W, X,
X, X, X, X, X, W, R, X,
X, X, X, X, X, R, W, X
]
cc_2 = [
X, X, R, W, R, W, X, X,
X, W, W, R, W, W, W, X,
X, R, W, X, X, W, R, X,
X, X, X, X, X, R, W, X,
X, X, X, X, X, W, W, X,
X, X, X, X, X, W, R, X,
X, X, X, X, X, R, W, X,
X, X, X, X, X, W, W, X
]
tree = [
X, X, X, X, X, X, X, X,
X, X, X, X, G, X, X, X,
X, X, X, G, G, G, X, X,
X, X, G, G, G, G, G, X,
X, X, X, G, G, G, X, X,
X, X, G, G, G, G, G, X,
X, G, G, G, G, G, G, G,
X, X, X, X, BR, X, X, X
]
def get_colours(phase):
colours1 = [(4,2,Red), (3,4,Blue), (5,4, Orange), (1,6,Purple),(3,6,Lime),(5,6,LightBlue),(7,6,Pink)]
colours2= [(4,2,LightBlue),(3,3,Orange),(5,3,Lavender),(4,5,DarkYellow),(2,6,Pink),(6,6,Indigo)]
if phase ==1:
return colours1
else:
return colours2
def show_tree(colours):
sense.set_pixels(tree)
sense.set_pixel(4,0,Y)
for x,y,colour in colours:
sense.set_pixel(x,y,colour)
ry = 255
gy = 255
while True:
sense.clear()
sleep(1)
for i in range(3):
sense.set_pixels(cc_1)
sleep(1)
sense.set_pixels(cc_2)
sleep(1)
sense.clear()
sleep(0.5)
sense.set_pixels(tree)
sense.set_pixel(4,0,Y)
colours = get_colours(1)
for i in range(12):
sense.set_pixel(4,0,[ry,gy,0])
ry-=20
gy-=20
sleep(0.5)
if colours:
if (i %2 ==0):
if len(colours) !=1:
x,y,colour = colours.pop(random.randrange(len(colours)))
sense.set_pixel(x,y,colour)
x,y,colour = colours.pop(random.randrange(len(colours)))
sense.set_pixel(x,y,colour)
else:
x,y,colour = colours.pop(random.randrange(len(colours)))
sense.set_pixel(x,y,colour)
sleep(1)
sense.set_pixels(tree)
colours = get_colours(2)
for i in range(12):
sense.set_pixel(4,0,[ry,gy,0])
ry+=20
gy+=20
sleep(0.5)
if i%2 ==0:
x,y,colour = colours.pop(random.randrange(len(colours)))
sense.set_pixel(x,y,colour)
sleep(1)
sense.clear()
sleep(1)
sense.set_pixels(tree)
sense.set_pixel(4,0,Y)
sleep(1)
sense.clear()
sleep(0.75)
show_tree(get_colours(1))
sleep(1)
sense.clear()
sleep(0.75)
show_tree(get_colours(2))
sleep(1)
sense.clear()
sleep(0.75)
sense.set_pixels(cc_1)
sleep(1)
sense.clear()
sleep(0.75)
sense.set_pixels(cc_2)
sleep(1)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment