-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathLeds.py
64 lines (55 loc) · 1.98 KB
/
Leds.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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
from naoqi import ALProxy
class Leds:
DEFAULT_INTENSITY = 0.5
DEFAULT_COLOR = {
"R": 200,
"G": 200,
"B": 200
}
def __init__(self, pepper):
self.leds = ALProxy("ALLeds", pepper._ip, pepper._port)
self.reset()
def fade_ears(self, intensity=0.5, fade_duration=1):
self.leds.fade("EarLeds", intensity, fade_duration)
def fade_face(self, red=0, green=0, blue=0, fade_duration=1):
self.leds.fadeRGB("FaceLeds", red, green, blue, fade_duration)
def fade_chest(self, red=0, green=0, blue=0, fade_duration=1):
self.leds.fadeRGB("ChestLeds", red, green, blue, fade_duration)
def reset(self):
self.fade_ears(self.DEFAULT_INTENSITY)
self.fade_face(self.DEFAULT_COLOR["R"], self.DEFAULT_COLOR["G"], self.DEFAULT_COLOR["B"])
self.fade_chest(self.DEFAULT_COLOR["R"], self.DEFAULT_COLOR["G"], self.DEFAULT_COLOR["B"])
def off(self):
self.fade_ears(0, 0)
self.fade_face(0, 0, 0, 0)
self.fade_chest(0, 0, 0, 0)
def chroma_mode(self):
self.fade_ears(0, 0)
i = 0
while i < 36000:
r, g, b = self.hsl2rgb(i % 360, 1, 1)
self.fade_chest(r, g, b, 0.3)
self.fade_face(r, g, b, 0.3)
i += 60
def hsl2rgb(self, hue, saturation, value):
if saturation == 0:
return value, value, value
else:
hue = hue / 60
i = int(hue)
f = hue - i
p = value * (1 - saturation)
q = value * (1 - saturation * f)
t = value * (1 - saturation * (1 - f))
if i == 0:
return value, t, p
elif i == 1:
return q, value, p
elif i == 2:
return p, value, t
elif i == 3:
return p, q, value
elif i == 4:
return t, p, value
elif i == 5:
return value, p, q