from neopixel import Neopixel
from time import sleep
## Setup
# 18 first ring, 36 second ring in whole, 54 third ring, 72 fourth,
# anything less goes too
NUM_LEDS = 72
LED_PIN = 6
pixels = Neopixel(NUM_LEDS, 0, LED_PIN, "GRB")
## Constants
red = pixels.colorHSV(0, 255, 255)
green = pixels.colorHSV(21845, 255, 255)
blue = pixels.colorHSV(43691, 255, 255)
# Set all pixels to given rgb values
# Function accepts (r, g, b) / (r, g, b, w)
#def fill(self, rgb_w, how_bright = None):
# for i in range(self.num_leds):
# self.set_pixel(i, rgb_w, how_bright)
# time.sleep(self.delay)
## Loop
while True:
for led in range(0,NUM_LEDS):
#črna
color0 = (0,0,0)
#črna
color1 = (70,70,70)
#rdeča
color_r = (255,0,0)
#zelena
color_g = (0,255,0)
#modra
color_b = (0,0,255)
if led < (NUM_LEDS-2):
led2 = led + 2
pixels.set_pixel(led2,color1)
pixels.show()
if led < (NUM_LEDS-1):
led2 = led + 1
pixels.set_pixel(led2,color0)
pixels.show()
pixels.set_pixel(led,color_r)
pixels.show()
print('led',led,'color',color_r)
sleep(0.15)
sleep(0.5)
for led in range(NUM_LEDS-1,-1,-1):
color0 = (0,0,0)
color_r = (255,0,0)
color_g = (0,255,0)
color_b = (0,0,255)
pixels.set_pixel(led,color_g)
pixels.show()
print('led',led,'color',color_g)
sleep(0.15)
for led in range(0,NUM_LEDS):
color0 = (0,0,0)
color_r = (255,0,0)
color_g = (0,255,0)
color_b = (0,0,255)
pixels.set_pixel(led,color_b)
pixels.show()
print('led',led,'color',color_b)
sleep(0.08)
sleep(0.5)
for led in range(NUM_LEDS-1,-1,-1):
color0 = (0,0,0)
color_r = (255,0,0)
color_g = (0,255,0)
color_b = (0,0,255)
#modra polovička
color_b2 = (70,70,127)
pixels.set_pixel(led,color_b2)
pixels.show()
print('led',led,'color',color_b2)
sleep(0.08)
sleep(1)
for hue in range(0, 65535, 1000):
#color = (r,g,b) r=g=b=0-255
#HSV hue = 0-65535,saturation 0-255, value=0-255 --> vrne (r,g,b)
color = pixels.colorHSV(hue, 255, 255)
color2 = pixels.colorHSV((int(hue + 65535 / 3) & 65535), 255, 255)
color3 = pixels.colorHSV((int(hue + 65535 / 3 * 2) & 65535), 255, 255)
color4 = pixels.colorHSV((int(hue + 65535 / 6 * 1) & 65535), 255, 255)
color5 = pixels.colorHSV((int(hue + 65535 / 6 * 3) & 65535), 255, 255)
color6 = pixels.colorHSV((int(hue + 65535 / 6 * 5) & 65535), 255, 255)
# (int(hue + 65535 / 3) & 65535) 1/3 je naslednja barva(rgb)v hsv prostoru
# če je številka večja od 16bit, vzemi samo 16 bit za rezultat(0-65535,
# potem se vrti okoli kot kolo
print('c1',color,'c2',color2,'c3',color3,'c4',color4,'c5',color5,'c6',color6)
for i in range(0,int(NUM_LEDS/2)):
#ring1
#pixels.set_pixel(1, (266,128,64)) --> led, color
pixels.set_pixel(i, color)
#ring2
pixels.set_pixel(i+int(NUM_LEDS/2), color2)
#ring1 led0 color2
pixels.set_pixel(0, color3)
#ring2 led1 color
pixels.set_pixel(int(NUM_LEDS/2), color3)
if i % 3 == 0:
#i % 3 == 0 ali je število deljivo s tri brez ostanka
pixels.set_pixel(i,color4)
pixels.set_pixel(i+int(NUM_LEDS/2), color5)
if i % 4 == 0:
pixels.set_pixel(i,color6)
pixels.set_pixel(i+int(NUM_LEDS/2), color6)
sleep(0)
#pixels.fill(color)
pixels.show()
sleep(0.03)