42 lines
1.3 KiB
Python
42 lines
1.3 KiB
Python
# lightrix ws281x interface
|
|
import colorsys
|
|
import neopixel as np
|
|
|
|
class Strip(object):
|
|
|
|
def __init__(self, count=48, pin=18, freq_hz=800000,
|
|
dma=10, brightness=255, invert=False):
|
|
self.led_count = count
|
|
self.led_pin = pin
|
|
self.led_freq_hz = freq_hz
|
|
self.led_dma = dma
|
|
self.led_brightness = brightness
|
|
self.led_invert = invert
|
|
self.strip = np.Adafruit_NeoPixel(self.led_count, self.led_pin, self.led_freq_hz,
|
|
self.led_dma, self.led_invert, self.led_brightness)
|
|
|
|
def setPixelHsl(self, ix, hue, saturation, lightness):
|
|
rgb = colorsys.hls_to_rgb(hue, lightness, saturation)
|
|
self.setPixelRgb(ix, rgb[0], rgb[1], rgb[2])
|
|
|
|
def setPixelRgb(self, ix, r,g,b):
|
|
self.strip.setPixelColor(ix, np.Color(r,g,b))
|
|
|
|
def getPixel(self, ix):
|
|
return self.getPixelColor(ix)
|
|
|
|
def begin(self):
|
|
self.strip.begin()
|
|
|
|
def count(self):
|
|
return self.led_count
|
|
|
|
def show(self):
|
|
self.strip.show()
|
|
return [ self.strip.getPixelColor(ix)
|
|
for ix in range(self.led_count) ]
|
|
|
|
def setBrightness(self, brightness):
|
|
self.led_brightness = brightness
|
|
self.strip.setBrightness(brightness)
|