-
Notifications
You must be signed in to change notification settings - Fork 7
/
Copy pathrgb.py
48 lines (38 loc) · 1.31 KB
/
rgb.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#!/usr/bin/python3
class RGB(object):
def __init__(self,config,r=None,g=None,b=None):
self.config=config
self._white_balance = self.config.get("white_balance",[1,1,1])
self._intensity = self.config.get("intensity",1)
self.led_pins = self.config.get("led_pins",{"r":22,"g":27,"b":17})
self._color = [0,0,0]
def set(self):
r=self.color[0] * self.white_balance[0] * self.intensity
g=self.color[1] * self.white_balance[1] * self.intensity
b=self.color[2] * self.white_balance[2] * self.intensity
pwm = open('/dev/pi-blaster', 'w')
pwm.write(str(self.led_pins["r"])+"="+str(r)+" ")
pwm.write(str(self.led_pins["g"])+"="+str(g)+" ")
pwm.write(str(self.led_pins["b"])+"="+str(b)+"\n")
pwm.close()
@property
def color(self):
return self._color
@color.setter
def color(self, value):
self._color = value
self.set()
@property
def intensity(self):
return self._intensity
@intensity.setter
def intensity(self, value):
self._intensity = value
self.set()
@property
def white_balance(self):
return self._white_balance
@white_balance.setter
def white_balance(self, value):
self._white_balance = value
self.set()