This repository was archived by the owner on Jan 18, 2025. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathled.py
More file actions
85 lines (74 loc) · 2.96 KB
/
led.py
File metadata and controls
85 lines (74 loc) · 2.96 KB
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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
# Group: 24
# Names: Divy, Elio, Kelvin, Matthew
from constants import *
class LED:
"""
Controls the RGB leds and the single color leds attached to the robot.
The leds run in different sequences based on the tick count and refresh rate.
"""
def __init__(self, led_arm_right, led_arm_left, led_top_left, led_top_right, led_top_mid):
# RGB leds
self.led_arm_right = led_arm_right
self.led_arm_left = led_arm_left
"""
Single color leds: these are all connected to the same ground
so all of them will be on at the same time with the same brightness.
The brightness is controlled by number of leds that are on.
Brightness range = [0, 3]
"""
self.led_top_left = led_top_left
self.led_top_right = led_top_right
self.led_top_mid = led_top_mid
self.ticks = 0
def refresh(self):
if self.ticks == 1:
# both red
self.led_arm_left[0].value = True
self.led_arm_left[1].value = False
self.led_arm_left[2].value = False
self.led_arm_right[0].value = True
self.led_arm_right[1].value = False
self.led_arm_right[2].value = False
# brightness = 1
self.led_top_left.value = True
self.led_top_right.value = False
self.led_top_mid.value = False
elif self.ticks == REFRESH_RATE:
# both green
self.led_arm_left[0].value = False
self.led_arm_left[1].value = True
self.led_arm_left[2].value = False
self.led_arm_right[0].value = False
self.led_arm_right[1].value = True
self.led_arm_right[2].value = False
# brightness = 2
self.led_top_left.value = True
self.led_top_right.value = True
self.led_top_mid.value = False
elif self.ticks == REFRESH_RATE * 2:
# both blue
self.led_arm_left[0].value = False
self.led_arm_left[1].value = False
self.led_arm_left[2].value = True
self.led_arm_right[0].value = False
self.led_arm_right[1].value = False
self.led_arm_right[2].value = True
# brightness = 3
self.led_top_left.value = True
self.led_top_right.value = True
self.led_top_mid.value = True
elif self.ticks == REFRESH_RATE * 3:
# both white
self.led_arm_left[0].value = True
self.led_arm_left[1].value = True
self.led_arm_left[2].value = True
self.led_arm_right[0].value = True
self.led_arm_right[1].value = True
self.led_arm_right[2].value = True
# brightness = 0
self.led_top_left.value = False
self.led_top_right.value = False
self.led_top_mid.value = False
elif self.ticks == REFRESH_RATE * 4:
self.ticks = 0
self.ticks += 1