Skip to content

Commit ec88c74

Browse files
authored
Merge pull request #37 from arduino/examples_cleanup
Examples cleanup
2 parents 6586fc7 + af372f1 commit ec88c74

28 files changed

+479
-360
lines changed

examples/actuators/leds_setting.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
from arduino_alvik import ArduinoAlvik
22
from time import sleep_ms
3-
import sys
3+
44

55
alvik = ArduinoAlvik()
66
alvik.begin()
@@ -34,4 +34,4 @@
3434
except KeyboardInterrupt as e:
3535
print('over')
3636
alvik.stop()
37-
sys.exit()
37+
break

examples/actuators/move_wheels.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
from arduino_alvik import ArduinoAlvik
22
from time import sleep_ms
3-
import sys
3+
44

55
alvik = ArduinoAlvik()
66
alvik.begin()
@@ -33,4 +33,4 @@
3333
except KeyboardInterrupt as e:
3434
print('over')
3535
alvik.stop()
36-
sys.exit()
36+
break

examples/actuators/pose_example.py

+62-64
Original file line numberDiff line numberDiff line change
@@ -1,82 +1,80 @@
11
from arduino_alvik import ArduinoAlvik
22
from time import sleep_ms
3-
import sys
3+
44

55
alvik = ArduinoAlvik()
66
alvik.begin()
77

8-
while True:
9-
try:
8+
try:
9+
10+
alvik.move(100.0, 'mm')
11+
print("on target after move")
12+
13+
alvik.move(50.0, 'mm')
14+
print("on target after move")
15+
16+
alvik.rotate(90.0, 'deg')
17+
print("on target after rotation")
1018

11-
alvik.move(100.0, 'mm')
12-
print("on target after move")
19+
alvik.rotate(-45.00, 'deg')
20+
print("on target after rotation")
1321

14-
alvik.move(50.0, 'mm')
15-
print("on target after move")
22+
x, y, theta = alvik.get_pose()
23+
print(f'Current pose is x(cm)={x}, y(cm)={y}, theta(deg)={theta}')
1624

17-
alvik.rotate(90.0, 'deg')
18-
print("on target after rotation")
25+
alvik.reset_pose(0, 0, 0)
1926

20-
alvik.rotate(-45.00, 'deg')
21-
print("on target after rotation")
27+
x, y, theta = alvik.get_pose()
28+
print(f'Updated pose is x(cm)={x}, y(cm)={y}, theta(deg)={theta}')
29+
sleep_ms(500)
2230

23-
x, y, theta = alvik.get_pose()
24-
print(f'Current pose is x(cm)={x}, y(cm)={y}, theta(deg)={theta}')
31+
print("___________NON-BLOCKING__________________")
2532

26-
alvik.reset_pose(0, 0, 0)
33+
alvik.move(50.0, 'mm', blocking=False)
2734

28-
x, y, theta = alvik.get_pose()
29-
print(f'Updated pose is x(cm)={x}, y(cm)={y}, theta(deg)={theta}')
35+
while not alvik.is_target_reached():
36+
alvik.left_led.set_color(1, 0, 0)
37+
sleep_ms(500)
38+
alvik.left_led.set_color(0, 0, 0)
39+
sleep_ms(500)
40+
print("on target after move")
41+
42+
alvik.rotate(45.0, 'deg', blocking=False)
43+
while not alvik.is_target_reached():
44+
alvik.left_led.set_color(1, 0, 0)
45+
sleep_ms(500)
46+
alvik.left_led.set_color(0, 0, 0)
3047
sleep_ms(500)
48+
print("on target after rotation")
3149

32-
print("___________NON-BLOCKING__________________")
33-
34-
alvik.move(50.0, 'mm', blocking=False)
35-
36-
while not alvik.is_target_reached():
37-
alvik.left_led.set_color(1, 0, 0)
38-
sleep_ms(500)
39-
alvik.left_led.set_color(0, 0, 0)
40-
sleep_ms(500)
41-
print("on target after move")
42-
43-
alvik.rotate(45.0, 'deg', blocking=False)
44-
while not alvik.is_target_reached():
45-
alvik.left_led.set_color(1, 0, 0)
46-
sleep_ms(500)
47-
alvik.left_led.set_color(0, 0, 0)
48-
sleep_ms(500)
49-
print("on target after rotation")
50-
51-
alvik.move(100.0, 'mm', blocking=False)
52-
while not alvik.is_target_reached():
53-
alvik.left_led.set_color(1, 0, 0)
54-
sleep_ms(500)
55-
alvik.left_led.set_color(0, 0, 0)
56-
sleep_ms(500)
57-
print("on target after move")
58-
59-
alvik.rotate(-90.00, 'deg', blocking=False)
60-
while not alvik.is_target_reached():
61-
alvik.left_led.set_color(1, 0, 0)
62-
sleep_ms(500)
63-
alvik.left_led.set_color(0, 0, 0)
64-
sleep_ms(500)
65-
print("on target after rotation")
66-
67-
x, y, theta = alvik.get_pose()
68-
print(f'Current pose is x(cm)={x}, y(cm)={y}, theta(deg)={theta}')
69-
70-
alvik.reset_pose(0, 0, 0)
71-
72-
x, y, theta = alvik.get_pose()
73-
print(f'Updated pose is x={x}, y={y}, theta(deg)={theta}')
50+
alvik.move(100.0, 'mm', blocking=False)
51+
while not alvik.is_target_reached():
52+
alvik.left_led.set_color(1, 0, 0)
7453
sleep_ms(500)
54+
alvik.left_led.set_color(0, 0, 0)
55+
sleep_ms(500)
56+
print("on target after move")
57+
58+
alvik.rotate(-90.00, 'deg', blocking=False)
59+
while not alvik.is_target_reached():
60+
alvik.left_led.set_color(1, 0, 0)
61+
sleep_ms(500)
62+
alvik.left_led.set_color(0, 0, 0)
63+
sleep_ms(500)
64+
print("on target after rotation")
65+
66+
x, y, theta = alvik.get_pose()
67+
print(f'Current pose is x(cm)={x}, y(cm)={y}, theta(deg)={theta}')
68+
69+
alvik.reset_pose(0, 0, 0)
70+
71+
x, y, theta = alvik.get_pose()
72+
print(f'Updated pose is x={x}, y={y}, theta(deg)={theta}')
73+
sleep_ms(500)
7574

76-
alvik.stop()
77-
sys.exit()
75+
except KeyboardInterrupt as e:
76+
print('Test interrupted')
7877

79-
except KeyboardInterrupt as e:
80-
print('over')
81-
alvik.stop()
82-
sys.exit()
78+
finally:
79+
alvik.stop()
80+
print("END of pose example")

examples/actuators/set_servo.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
from arduino_alvik import ArduinoAlvik
22
from time import sleep_ms
3-
import sys
3+
44

55
alvik = ArduinoAlvik()
66
alvik.begin()
@@ -19,4 +19,4 @@
1919
except KeyboardInterrupt as e:
2020
print('over')
2121
alvik.stop()
22-
sys.exit()
22+
break

examples/actuators/wheels_position.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
from arduino_alvik import ArduinoAlvik
22
from time import sleep, sleep_ms
3-
import sys
3+
44

55
alvik = ArduinoAlvik()
66
alvik.begin()
@@ -62,4 +62,4 @@
6262
except KeyboardInterrupt as e:
6363
print('over')
6464
alvik.stop()
65-
sys.exit()
65+
break

examples/actuators/wheels_speed.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
from arduino_alvik import ArduinoAlvik
22
from time import sleep_ms
3-
import sys
3+
44

55
alvik = ArduinoAlvik()
66
alvik.begin()
@@ -21,4 +21,4 @@
2121
except KeyboardInterrupt as e:
2222
print('over')
2323
alvik.stop()
24-
sys.exit()
24+
break

examples/arduino-runtime/blink.py

+28
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
from time import sleep_ms
2+
3+
from arduino import start
4+
from arduino_alvik import ArduinoAlvik
5+
6+
7+
alvik = ArduinoAlvik()
8+
9+
10+
def setup():
11+
alvik.begin()
12+
13+
14+
def loop():
15+
print('blinking LEDs')
16+
alvik.left_led.set_color(0, 0, 1)
17+
alvik.right_led.set_color(0, 0, 1)
18+
sleep_ms(500)
19+
alvik.left_led.set_color(1, 0, 0)
20+
alvik.right_led.set_color(1, 0, 0)
21+
sleep_ms(500)
22+
23+
24+
def cleanup():
25+
alvik.stop()
26+
27+
28+
start(setup=setup, loop=loop, cleanup=cleanup)
+64
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
from time import sleep_ms
2+
3+
from arduino import start
4+
from arduino_alvik import ArduinoAlvik
5+
6+
7+
alvik = ArduinoAlvik()
8+
9+
10+
def calculate_center(left: int, center: int, right: int):
11+
centroid = 0
12+
sum_weight = left + center + right
13+
sum_values = left + 2 * center + 3 * right
14+
if sum_weight != 0:
15+
centroid = sum_values / sum_weight
16+
centroid = 2 - centroid
17+
return centroid
18+
19+
20+
def run_line_follower(alvik):
21+
22+
kp = 50.0
23+
line_sensors = alvik.get_line_sensors()
24+
print(f' {line_sensors}')
25+
26+
error = calculate_center(*line_sensors)
27+
control = error * kp
28+
29+
if control > 0.2:
30+
alvik.left_led.set_color(1, 0, 0)
31+
alvik.right_led.set_color(0, 0, 0)
32+
elif control < -0.2:
33+
alvik.left_led.set_color(1, 0, 0)
34+
alvik.right_led.set_color(0, 0, 0)
35+
else:
36+
alvik.left_led.set_color(0, 1, 0)
37+
alvik.right_led.set_color(0, 1, 0)
38+
39+
alvik.set_wheels_speed(30 - control, 30 + control)
40+
sleep_ms(100)
41+
42+
43+
def setup():
44+
alvik.begin()
45+
alvik.left_led.set_color(0, 0, 1)
46+
alvik.right_led.set_color(0, 0, 1)
47+
48+
49+
def loop():
50+
while not alvik.get_touch_ok():
51+
alvik.left_led.set_color(0, 0, 1)
52+
alvik.right_led.set_color(0, 0, 1)
53+
alvik.brake()
54+
sleep_ms(100)
55+
56+
while not alvik.get_touch_cancel():
57+
run_line_follower(alvik)
58+
59+
60+
def cleanup():
61+
alvik.stop()
62+
63+
64+
start(setup=setup, loop=loop, cleanup=cleanup)

examples/arduino-runtime/read_tof.py

+26
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
from time import sleep_ms
2+
3+
from arduino import start
4+
from arduino_alvik import ArduinoAlvik
5+
6+
7+
alvik = ArduinoAlvik()
8+
9+
10+
def setup():
11+
alvik.begin()
12+
13+
14+
def loop():
15+
L, CL, C, CR, R = alvik.get_distance()
16+
T = alvik.get_distance_top()
17+
B = alvik.get_distance_bottom()
18+
print(f'T: {T} | B: {B} | L: {L} | CL: {CL} | C: {C} | CR: {CR} | R: {R}')
19+
sleep_ms(100)
20+
21+
22+
def cleanup():
23+
alvik.stop()
24+
25+
26+
start(setup=setup, loop=loop, cleanup=cleanup)

examples/communication/i2c_scan.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
from time import sleep_ms
2-
import sys
2+
33

44
from arduino_alvik import ArduinoAlvik
55

@@ -22,4 +22,4 @@
2222
sleep_ms(100)
2323
except KeyboardInterrupt as e:
2424
alvik.stop()
25-
sys.exit()
25+
break

examples/communication/modulino.py

+5-4
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
from arduino_alvik import ArduinoAlvik
22
from time import sleep_ms
3-
import sys
3+
4+
45
try:
56
from modulino import ModulinoPixels
67
except ImportError as e:
7-
print("ImportError: ModulinoPixels not installed")
8-
sys.exit(-1)
8+
print("\nImportError: ModulinoPixels not installed")
9+
raise e
910

1011
alvik = ArduinoAlvik()
1112
alvik.begin()
@@ -32,4 +33,4 @@
3233

3334
except KeyboardInterrupt as e:
3435
alvik.stop()
35-
sys.exit()
36+
break

0 commit comments

Comments
 (0)