def stars(q, led_count, layerNum, fps=12, bandwidth=5, runtime=60): layer = { 0: {}, 1: {}, 2: {}, 3: {}, } layer[0]["obj"] = pxb.pixelLayer(q, led_count, layerNum) layer[0]["buffer"] = deque(layer[0]["obj"][::]) layer[0]["speed"] = random.randrange(1,5) layer[0]["direction"] = random.randrange(1,3) layer[1]["obj"] = pxb.pixelLayer(q, led_count, layerNum+1) layer[1]["buffer"] = deque(layer[1]["obj"][::]) layer[1]["speed"] = random.randrange(1,10) layer[1]["direction"] = random.randrange(1,3) layer[2]["obj"] = pxb.pixelLayer(q, led_count, layerNum+2) layer[2]["buffer"] = deque(layer[2]["obj"][::]) layer[2]["speed"] = random.randrange(5,15) layer[2]["direction"] = random.randrange(1,3) layer[3]["obj"] = pxb.pixelLayer(q, led_count, layerNum+3) layer[3]["buffer"] = deque(layer[3]["obj"][::]) layer[3]["speed"] = random.randrange(10,20) layer[3]["direction"] = random.randrange(1,3) endTime=time.time()+runtime #lastTime=time.time() count=0 startTime=time.time() iterTime=startTime targetSleep=1/float(fps) while time.time() < endTime: #count += 1 #if count % 10 == 0: #print "elapsed: %s - %s" % (time.time() - lastTime, count) #lastTime = time.time() iterTime=time.time() calcStars(layer[0]) calcStars(layer[1]) calcStars(layer[2]) calcStars(layer[3]) sleepTime=targetSleep-(time.time()-iterTime) if sleepTime > 0: sleep(sleepTime) #sleep(wait_ms/1000.0) layer[0]["obj"].die() layer[1]["obj"].die() layer[2]["obj"].die() layer[3]["obj"].die()
def redWhiteBlue(q, led_count, layerNum, wait_ms=10, sets=4, runtime=60): layer = pxb.pixelLayer(q, led_count, layerNum) count=0 bandwidth=int(layer.numPixels()/sets/3) for i in range(0, layer.numPixels()): if count < bandwidth: layer.setPixelColorRGB(i, 200,200,200) elif count < bandwidth*2: layer.setPixelColorRGB(i, 0,0,200) elif count < bandwidth*3: layer.setPixelColorRGB(i, 200,0,0) else: count = 0 count += 1 layer.show() # rotate leds=deque(layer[::]) endTime=time.time()+runtime while time.time() < endTime: leds.rotate() layer.leds = list(leds) layer.show() sleep(wait_ms/1000.0) layer.die()
def fireTruck(q, led_count, layerNum, wait_ms=1, color="random", runtime=30): layer = pxb.pixelLayer(q, led_count, layerNum) if color == "random": rnd = True else: rnd = False endTime=time.time()+runtime while time.time() < endTime: layer[0:layer.size+1] = 0; layer[0:layer.size+1] = pxb.Color(200,0,0); layer.show() sleep(500/1000) layer[0:layer.size+1] = 0; sleep(300/1000) layer[0:layer.size+1] = pxb.Color(200,0,0); layer.show() sleep(500/1000) layer[0:layer.size+1] = 0; sleep(300/1000) layer[0:layer.size+1] = pxb.Color(200,0,0); layer.show() sleep(500/1000) layer[0:layer.size+1] = 0; sleep(1000/1000) layer.die()
def blinkColor(q, led_count, layerNum, wait_ms=1, runtime=300): red = pxb.Color(255,100,100) white = pxb.Color(255,255,255) blue = pxb.Color(100,100,255) layer = pxb.pixelLayer(q, led_count, layerNum) endTime=time.time()+runtime #layer[0:layer.size+1] = color count = 0 cycle = 1 color = blue for i in range(layer.numPixels()): if count > 40: count = 0 cycle += 1 if cycle == 2: color = white elif cycle == 3: color = red else: cycle = 1 color = blue if count > 30: layer.setPixelColor(i, color) count += 1 layer.show() sleep(runtime) layer.die()
def twinkleColor(q, led_count, layerNum, wait_ms=1, wheelSpeed=0, twinkleProbability=.01, runtime=60): layer = pxb.pixelLayer(q, led_count, layerNum) #layer[0:layer.numPixels()] = pxb.Color(red, green, blue); colorRound=0 color=0 endTime=time.time()+runtime while time.time() < endTime: if colorRound >= wheelSpeed: colorRound = 0 if color >= 255: color = 0 else: color += 1 else: colorRound += 1 #print color for x in range(layer.numPixels()): #layer.setPixelColor(x, pxb.Color(red, green, blue)) #layer[0:layer.size+1] = pxb.Color(red, green, blue); if random.randrange(0, 1000)/1000.0 <= twinkleProbability: layer.setPixelColor(x, pxb.Color(255,255,255)) else: layer.setPixelColor(x, wheel(color, .3)) layer.show() sleep(wait_ms/1000.0) layer.die()
def clearStrip(q, led_count, layerNum, wait_ms=.1, runtime=3): layer = pxb.pixelLayer(q, led_count, layerNum) count=0 layer[0:layer.size+1] = 0; layer.show() sleep(runtime) layer.die()
def rainbowCycle(q, led_count, layerNum, wait_ms=10, iterations=30): layer = pxb.pixelLayer(q, led_count, layerNum) """Draw rainbow that uniformly distributes itself across all pixels.""" for j in range(256*iterations): for i in range(layer.numPixels()): layer.setPixelColor(i, wheel(((i * 256 / layer.numPixels()) + j) & 255)) layer.show() time.sleep(wait_ms/1000.0) layer.die()
def blinkColor(q, led_count, layerNum, wait_ms=1, color="random", runtime=1): layer = pxb.pixelLayer(q, led_count, layerNum) endTime=time.time()+runtime #layer[0:layer.size+1] = color; count = 0 for i in range(layer.numPixels()): if count > 40: count = 0 if count > 30: layer.setPixelColor(i, color) count += 1 layer.show() sleep(runtime)
def particles(q, led_count, layerNum, wait_ms=.01, bandwidth=5, runtime=60): layer = { 0: {}, 1: {}, 2: {}, 3: {}, } layer[0]["obj"] = pxb.pixelLayer(q, led_count, layerNum) layer[0]["pixStart"] = int(layer[0]["obj"].numPixels()/2) layer[0]["pixEnd"] = int(layer[0]["obj"].numPixels()/2) layer[0]["color"] = pxb.Color(255,0,0) layer[1]["obj"] = pxb.pixelLayer(q, led_count, layerNum+1) layer[1]["pixStart"] = int(layer[1]["obj"].numPixels()/2) layer[1]["pixEnd"] = int(layer[1]["obj"].numPixels()/2) layer[1]["color"] = pxb.Color(0,255,0) layer[2]["obj"] = pxb.pixelLayer(q, led_count, layerNum+2) layer[2]["pixStart"] = int(layer[2]["obj"].numPixels()/2) layer[2]["pixEnd"] = int(layer[2]["obj"].numPixels()/2) layer[2]["color"] = pxb.Color(0,0,255) layer[3]["obj"] = pxb.pixelLayer(q, led_count, layerNum+3) layer[3]["pixStart"] = int(layer[3]["obj"].numPixels()/2) layer[3]["pixEnd"] = int(layer[3]["obj"].numPixels()/2) layer[3]["color"] = pxb.Color(255,255,255) endTime=time.time()+runtime while time.time() < endTime: for a in range(0,3600,8): angle=a/10.0 calcParticle(layer[0], angle) calcParticle(layer[1], angle+90) calcParticle(layer[2], angle+180) calcParticle(layer[3], angle+270) sleep(wait_ms/1000.0) layer[0]["obj"].die() layer[1]["obj"].die() layer[2]["obj"].die() layer[3]["obj"].die()
def theaterChaseRainbow(q, led_count, layerNum, wait_ms=1, pxlSpace=20, runtime=60): layer = pxb.pixelLayer(q, led_count, layerNum) leds=deque(layer[::]) direction=random.randrange(1,3) """Rainbow movie theater light style chaser animation.""" for led in range(1,layer.numPixels()): j=random.randrange(0,256) leds[led] = wheel(j, random.randrange(10,100)/100.0) endTime=time.time()+runtime while time.time() < endTime: j=random.randrange(0,256) leds[0] = wheel(j, random.randrange(10,100)/100.0) layer.leds = list(leds) layer.show() sleep(wait_ms/1000.0) if direction == 1: leds.rotate() else: leds.rotate(-1) layer.die()
def blinkColor(q, led_count, layerNum, wait_ms=1, color="random", runtime=30): layer = pxb.pixelLayer(q, led_count, layerNum) if color == "random": rnd = True else: rnd = False endTime=time.time()+runtime while time.time() < endTime: if rnd: color=pxb.Color(random.randrange(0,256), random.randrange(0,256), random.randrange(0,256)) layer[0:layer.size+1] = color; layer.show() sleep(random.randrange(1,300)/1000.0) #sleep(wait_ms/1000.0) layer[0:layer.size+1] = None; layer.show() sleep(random.randrange(1,1000)/1000.0) #sleep(wait_ms/1000.0) #sleep(wait_ms/1000.0) layer.die()
def theaterChaseRainbow(q, led_count, layerNum, wait_ms=10, pxlSpace=20, runtime=30): layer = pxb.pixelLayer(q, led_count, layerNum) """Rainbow movie theater light style chaser animation.""" endTime=time.time()+runtime while time.time() < endTime: #for j in range(256): for q in range(pxlSpace): j=random.randrange(0,256) for i in range(0, layer.numPixels()-q, pxlSpace): if i+q+1 < layer.numPixels(): layer.setPixelColor(i+q+1, wheel((j) % 255, .5)) if i+q+2 < layer.numPixels(): layer.setPixelColor(i+q+2, wheel((j) % 255, .1)) layer.setPixelColor(i+q, wheel((j) % 255, 1)) if i+q >= 1: layer.setPixelColor(i+q-1, wheel((j) % 255, .5)) if i+q >= 2: layer.setPixelColor(i+q-2, wheel((j) % 255, .1)) layer.show() sleep(wait_ms/1000.0) for i in range(0, layer.numPixels()): layer.setPixelColor(i, None) layer.die()