lightrix/lightrix/strip.py

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)