/
vll-ev3led.py
110 lines (94 loc) · 1.94 KB
/
vll-ev3led.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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
#!/usr/bin/env python3
import ev3dev.ev3 as ev3
from time import sleep
def chksum(n):
return 7-((n+(n>>2)+(n>>4))&7)
MS_FWD = 0
MS_REV = 1
MS_STOP = 2
CP_C = 99
CP_CSHARP = 100
CP_D = 101
CP_DSHARP = 102
CP_E = 103
CP_F = 104
CP_FSHARP = 105
CP_G = 106
CP_GSHARP = 107
CP_A = 108
CP_ASHARP = 109
CP_B = 110
CP_C_HI = 111
PAUSE = 0.15
def vll1():
ev3.Leds.set_color(ev3.Leds.LEFT, ev3.Leds.RED)
sleep(0.02)
ev3.Leds.set_color(ev3.Leds.LEFT, ev3.Leds.BLACK)
sleep(0.04)
def vll0():
ev3.Leds.set_color(ev3.Leds.LEFT, ev3.Leds.RED)
sleep(0.04)
ev3.Leds.set_color(ev3.Leds.LEFT, ev3.Leds.BLACK)
sleep(0.02)
def vllinit():
ev3.Leds.set_color(ev3.Leds.LEFT, ev3.Leds.RED)
sleep(0.4)
def vllstart():
ev3.Leds.set_color(ev3.Leds.LEFT, ev3.Leds.BLACK)
sleep(0.02)
def vllstop():
ev3.Leds.set_color(ev3.Leds.LEFT, ev3.Leds.RED)
sleep(0.02)
ev3.Leds.set_color(ev3.Leds.LEFT, ev3.Leds.BLACK)
sleep(0.06)
ev3.Leds.set_color(ev3.Leds.LEFT, ev3.Leds.RED)
sleep(0.12)
def send(command):
vllstart()
v = (chksum(command) << 7 ) + command
i = 0x200
while i>0 :
if v & i:
vll1()
else:
vll0()
i = i >> 1
vllstop()
def cp_pause():
ev3.Leds.set_color(ev3.Leds.LEFT, ev3.Leds.RED)
sleep(PAUSE)
def play_tones():
# only for CodePilot
send(CP_C)
cp_pause()
send(CP_CSHARP)
cp_pause()
send(CP_D)
cp_pause()
send(CP_DSHARP)
cp_pause()
send(CP_E)
cp_pause()
send(CP_F)
cp_pause()
send(CP_FSHARP)
cp_pause()
send(CP_G)
cp_pause()
send(CP_GSHARP)
cp_pause()
send(CP_A)
cp_pause()
send(CP_ASHARP)
cp_pause()
send(CP_B)
cp_pause()
send(CP_C_HI)
cp_pause()
ev3.Leds.set_color(ev3.Leds.LEFT, ev3.Leds.BLACK)
vllinit()
sleep(2)
while True:
send(MS_FWD)
send(MS_REV)
#play_tones()