Skip to content

Commit 2c3ac21

Browse files
committed
fix: examples demo and touch_move regression
1 parent 8246027 commit 2c3ac21

File tree

2 files changed

+57
-97
lines changed

2 files changed

+57
-97
lines changed

examples/demo/demo.py

Lines changed: 42 additions & 83 deletions
Original file line numberDiff line numberDiff line change
@@ -1,101 +1,60 @@
11
from arduino_alvik import ArduinoAlvik
22
from time import sleep_ms
33

4+
from line_follower import run_line_follower
5+
from touch_move import run_touch_move
6+
from hand_follower import run_hand_follower
47

5-
def blink(alvik):
6-
alvik.left_led.set_color(1, 0, 1)
7-
alvik.right_led.set_color(1, 0, 1)
8-
sleep_ms(200)
9-
alvik.left_led.set_color(1, 0, 0)
10-
alvik.right_led.set_color(1, 0, 0)
118

9+
alvik = ArduinoAlvik()
10+
alvik.begin()
1211

13-
def add_movement(alvik, movements):
14-
if alvik.get_touch_up():
15-
movements.append('forward')
16-
blink(alvik)
17-
while alvik.get_touch_up():
18-
sleep_ms(100)
19-
if alvik.get_touch_down():
20-
movements.append('backward')
21-
blink(alvik)
22-
while alvik.get_touch_down():
23-
sleep_ms(100)
24-
if alvik.get_touch_left():
25-
movements.append('left')
26-
blink(alvik)
27-
while alvik.get_touch_left():
28-
sleep_ms(100)
29-
if alvik.get_touch_right():
30-
movements.append('right')
31-
blink(alvik)
32-
while alvik.get_touch_right():
33-
sleep_ms(100)
34-
if alvik.get_touch_cancel():
35-
movements = []
36-
for i in range(0, 3):
37-
val = i % 2
38-
alvik.left_led.set_color(val, 0, 0)
39-
alvik.right_led.set_color(val, 0, 0)
40-
sleep_ms(200)
41-
while alvik.get_touch_cancel():
42-
sleep_ms(100)
12+
menu_status = 0
4313

4414

45-
def run_movement(alvik, movement):
46-
if movement == 'forward':
47-
alvik.move(10, blocking=False)
48-
if movement == 'backward':
49-
alvik.move(-10, blocking=False)
50-
if movement == 'left':
51-
alvik.rotate(90, blocking=False)
52-
if movement == 'right':
53-
alvik.rotate(-90, blocking=False)
54-
while not alvik.get_touch_cancel() and not alvik.is_target_reached():
15+
def update_led_status(val):
16+
if val == 0:
17+
alvik.left_led.set_color(0, 0, 1)
18+
alvik.right_led.set_color(0, 0, 1)
19+
elif val == 1:
20+
alvik.left_led.set_color(0, 1, 0)
21+
alvik.right_led.set_color(0, 1, 0)
22+
elif val == -1:
5523
alvik.left_led.set_color(1, 0, 0)
5624
alvik.right_led.set_color(1, 0, 0)
57-
sleep_ms(100)
58-
alvik.left_led.set_color(0, 0, 0)
59-
alvik.right_led.set_color(0, 0, 0)
60-
sleep_ms(100)
6125

6226

63-
def run_touch_move(alvik) -> int:
64-
movements = []
65-
while not (alvik.get_touch_ok() and len(movements) != 0):
66-
if alvik.get_touch_cancel():
67-
movements.clear()
68-
blink(alvik)
69-
return -1
70-
alvik.left_led.set_color(1, 0, 0)
71-
alvik.right_led.set_color(1, 0, 0)
72-
alvik.brake()
73-
add_movement(alvik, movements)
74-
sleep_ms(100)
75-
76-
alvik.left_led.set_color(0, 0, 0)
77-
alvik.right_led.set_color(0, 0, 0)
78-
for move in movements:
79-
run_movement(alvik, move)
80-
if alvik.get_touch_cancel():
81-
blink(alvik)
82-
return -1
83-
return 1
27+
while True:
8428

29+
update_led_status(menu_status)
8530

86-
if __name__ == "__main__":
87-
alvik = ArduinoAlvik()
88-
alvik.begin()
31+
try:
8932

90-
alvik.left_led.set_color(1, 0, 0)
91-
alvik.right_led.set_color(1, 0, 0)
33+
if alvik.get_touch_ok():
34+
while not alvik.get_touch_cancel():
35+
if menu_status == 0:
36+
run_line_follower(alvik)
37+
elif menu_status == 1:
38+
run_hand_follower(alvik)
39+
elif menu_status == -1:
40+
if run_touch_move(alvik) < 0:
41+
break
42+
alvik.brake()
9243

93-
while True:
94-
try:
44+
if alvik.get_touch_up() and menu_status < 1:
45+
menu_status += 1
46+
update_led_status(menu_status)
47+
while alvik.get_touch_up():
48+
sleep_ms(100)
49+
if alvik.get_touch_down() and menu_status > -1:
50+
menu_status -= 1
51+
update_led_status(menu_status)
52+
while alvik.get_touch_down():
53+
sleep_ms(100)
9554

96-
run_touch_move(alvik)
55+
sleep_ms(100)
9756

98-
except KeyboardInterrupt as e:
99-
print('over')
100-
alvik.stop()
101-
break
57+
except KeyboardInterrupt as e:
58+
print('over')
59+
alvik.stop()
60+
break

examples/demo/touch_move.py

Lines changed: 15 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -2,33 +2,33 @@
22
from time import sleep_ms
33

44

5-
def blink():
5+
def blink(alvik):
66
alvik.left_led.set_color(1, 0, 1)
77
alvik.right_led.set_color(1, 0, 1)
88
sleep_ms(200)
99
alvik.left_led.set_color(1, 0, 0)
1010
alvik.right_led.set_color(1, 0, 0)
1111

1212

13-
def add_movement(movements):
13+
def add_movement(alvik, movements):
1414
if alvik.get_touch_up():
1515
movements.append('forward')
16-
blink()
16+
blink(alvik)
1717
while alvik.get_touch_up():
1818
sleep_ms(100)
1919
if alvik.get_touch_down():
2020
movements.append('backward')
21-
blink()
21+
blink(alvik)
2222
while alvik.get_touch_down():
2323
sleep_ms(100)
2424
if alvik.get_touch_left():
2525
movements.append('left')
26-
blink()
26+
blink(alvik)
2727
while alvik.get_touch_left():
2828
sleep_ms(100)
2929
if alvik.get_touch_right():
3030
movements.append('right')
31-
blink()
31+
blink(alvik)
3232
while alvik.get_touch_right():
3333
sleep_ms(100)
3434
if alvik.get_touch_cancel():
@@ -42,7 +42,7 @@ def add_movement(movements):
4242
sleep_ms(100)
4343

4444

45-
def run_movement(movement):
45+
def run_movement(alvik, movement):
4646
if movement == 'forward':
4747
alvik.move(10, blocking=False)
4848
if movement == 'backward':
@@ -60,24 +60,27 @@ def run_movement(movement):
6060
sleep_ms(100)
6161

6262

63-
def run_touch_move(alvik):
63+
def run_touch_move(alvik) -> int:
6464
movements = []
6565
while not (alvik.get_touch_ok() and len(movements) != 0):
6666
if alvik.get_touch_cancel():
6767
movements.clear()
68-
return
68+
blink(alvik)
69+
return -1
6970
alvik.left_led.set_color(1, 0, 0)
7071
alvik.right_led.set_color(1, 0, 0)
7172
alvik.brake()
72-
add_movement(movements)
73+
add_movement(alvik, movements)
7374
sleep_ms(100)
7475

7576
alvik.left_led.set_color(0, 0, 0)
7677
alvik.right_led.set_color(0, 0, 0)
7778
for move in movements:
78-
run_movement(move)
79+
run_movement(alvik, move)
7980
if alvik.get_touch_cancel():
80-
break
81+
blink(alvik)
82+
return -1
83+
return 1
8184

8285

8386
if __name__ == "__main__":
@@ -96,5 +99,3 @@ def run_touch_move(alvik):
9699
print('over')
97100
alvik.stop()
98101
break
99-
100-

0 commit comments

Comments
 (0)