Skip to content

0.1.0 #7

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 38 commits into from
Feb 2, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
38 commits
Select commit Hold shift + click to select a range
0e2c774
feat: alvik.begin method starts main thread and resets STM32
eigen-value Jan 22, 2024
f6b3046
mod: begin checks if alvik is on
eigen-value Jan 22, 2024
e29e429
mod: upd_thread methods naming
eigen-value Jan 22, 2024
de14198
feat: alvik wheels as children. mechanical constants in robot_definit…
eigen-value Jan 22, 2024
117206f
feat: rgb leds as ArduinoAlvik children
eigen-value Jan 23, 2024
636687f
mod: ArduinoAlvikWheel and ArduinoAlvikRgbLed as private classes
eigen-value Jan 23, 2024
baedaa0
feat: .drive method
eigen-value Jan 23, 2024
bb43223
documentation
eigen-value Jan 23, 2024
bfbbffd
mod: rem set_right_led and set_left_led color
eigen-value Jan 24, 2024
aa24aca
Merge pull request #1 from arduino/api_update
eigen-value Jan 24, 2024
b364630
fix: thread must be singleton
eigen-value Jan 24, 2024
6d72cfa
fix: _stop_update_thread as staticmethod
eigen-value Jan 24, 2024
16b8629
fix: some examples not calling alvik.stop() before sys.exit
eigen-value Jan 24, 2024
2314969
feat: ArduinoAlvik as singleton class
eigen-value Jan 26, 2024
15580df
feat: reset/update/get wheels position
eigen-value Jan 26, 2024
9240585
message_reader.py
eigen-value Jan 26, 2024
b94c5f7
mod: begin turn on illuminator
eigen-value Jan 26, 2024
a2544df
Merge pull request #2 from arduino/thread_fix
gbr1 Jan 26, 2024
e1508be
Merge pull request #3 from arduino/api_update
gbr1 Jan 26, 2024
a849833
fix: install scripts missing cp robot_definitions.py
eigen-value Jan 30, 2024
db5e9f2
feat: get_drive_speed
eigen-value Jan 30, 2024
90b66d0
Merge pull request #4 from arduino/fix_scripts
eigen-value Jan 30, 2024
a1a27df
Merge remote-tracking branch 'origin/dev' into api_update
eigen-value Jan 30, 2024
f0e1126
feat: move and rotate
eigen-value Jan 30, 2024
48e92ce
Merge pull request #5 from arduino/api_update
gbr1 Jan 31, 2024
fde782d
mod: remove alvik.set_pid delegate function to wheel objects - closes…
eigen-value Jan 31, 2024
db5cec2
mod: renames alvik.get_color to get_color_raw - closes ALVIKDEV-39
eigen-value Jan 31, 2024
5a35ada
feat: IMUs readouts - closes ALVIKDEV-22
eigen-value Jan 31, 2024
be3fcad
fix: previous typo
eigen-value Jan 31, 2024
48bd295
feat: set_pose
eigen-value Jan 31, 2024
72cd9c0
feat: reset_pose amends previous
eigen-value Jan 31, 2024
9a1cf19
feat: get_pose
eigen-value Jan 31, 2024
7126cf0
example: pose_example.py
eigen-value Jan 31, 2024
bd1ec4d
feat: delays on rotate move and reset_pose
eigen-value Feb 2, 2024
ccb3dd4
fix: begin clears uart and waits for robot comm
eigen-value Feb 2, 2024
1d04c99
ver: 0.1.0
eigen-value Feb 2, 2024
6f49117
examples revamp
eigen-value Feb 2, 2024
a271be5
Merge pull request #6 from arduino/api_update
gbr1 Feb 2, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
475 changes: 417 additions & 58 deletions arduino_alvik.py

Large diffs are not rendered by default.

26 changes: 12 additions & 14 deletions examples/led_setting.py → examples/leds_setting.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,17 +3,10 @@
import sys

alvik = ArduinoAlvik()

alvik.run()
sleep_ms(100)
alvik.reset_hw()
alvik.begin()

while True:
try:
#alvik._set_leds(0xff)
#sleep_ms(1000)
#alvik._set_leds(0x00)
#sleep_ms(1000)
alvik.set_builtin_led(1)
sleep_ms(1000)
alvik.set_illuminator(1)
Expand All @@ -22,18 +15,23 @@
sleep_ms(1000)
alvik.set_illuminator(0)
sleep_ms(1000)
alvik.set_left_led_color(0,0,1)
alvik.left_led.set_color(0, 0, 1)
sleep_ms(1000)
alvik.left_led.set_color(0, 1, 0)
sleep_ms(1000)
alvik.left_led.set_color(1, 0, 0)
sleep_ms(1000)
alvik.set_right_led_color(0,0,1)
alvik.left_led.set_color(1, 1, 1)
sleep_ms(1000)
alvik.set_left_led_color(0,1,0)
alvik.right_led.set_color(0, 0, 1)
sleep_ms(1000)
alvik.set_right_led_color(0,1,0)
alvik.right_led.set_color(0, 1, 0)
sleep_ms(1000)
alvik.set_left_led_color(1,0,0)
alvik.right_led.set_color(1, 0, 0)
sleep_ms(1000)
alvik.set_right_led_color(1,0,0)
alvik.right_led.set_color(1, 1, 1)
sleep_ms(1000)
except KeyboardInterrupt as e:
print('over')
alvik.stop()
sys.exit()
19 changes: 10 additions & 9 deletions examples/message_reader.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,26 +3,27 @@
import sys

alvik = ArduinoAlvik()
if alvik.begin() < 0:
sys.exit()

alvik.run()
sleep_ms(100)
alvik.reset_hw()
speed = 0

while True:
try:
print(f'VER: {alvik.version}')
print(f'LSP: {alvik.l_speed}')
print(f'RSP: {alvik.r_speed}')
print(f'LSP: {alvik.left_wheel.get_speed()}')
print(f'RSP: {alvik.right_wheel.get_speed()}')
print(f'LPOS: {alvik.left_wheel.get_position()}')
print(f'RPOS: {alvik.right_wheel.get_position()}')
print(f'TOUCH: {alvik.touch_bits}')
print(f'RGB: {alvik.red} {alvik.green} {alvik.blue}')
print(f'LINE: {alvik.left_line} {alvik.center_line} {alvik.right_line}')

alvik.set_speeds(speed, speed)
alvik.set_wheels_speed(speed, speed)
speed = (speed + 1) % 60
sleep_ms(1000)
except KeyboardInterrupt as e:
print('over')
alvik.set_speeds(0, 0)
break
sys.exit()
alvik.stop()
sys.exit()

36 changes: 36 additions & 0 deletions examples/move_wheels.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
from arduino_alvik import ArduinoAlvik
from time import sleep_ms
import sys

alvik = ArduinoAlvik()
alvik.begin()

while True:
try:
alvik.left_wheel.set_speed(10)
sleep_ms(1000)
print(f'LSP: {alvik.left_wheel.get_speed()}')
print(f'RSP: {alvik.right_wheel.get_speed()}')

alvik.right_wheel.set_speed(10)
sleep_ms(1000)

print(f'LSP: {alvik.left_wheel.get_speed()}')
print(f'RSP: {alvik.right_wheel.get_speed()}')

alvik.left_wheel.set_speed(20)
sleep_ms(1000)

print(f'LSP: {alvik.left_wheel.get_speed()}')
print(f'RSP: {alvik.right_wheel.get_speed()}')

alvik.right_wheel.set_speed(20)
sleep_ms(1000)

print(f'LSP: {alvik.left_wheel.get_speed()}')
print(f'RSP: {alvik.right_wheel.get_speed()}')

except KeyboardInterrupt as e:
print('over')
alvik.stop()
sys.exit()
69 changes: 69 additions & 0 deletions examples/pose_example.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
from arduino_alvik import ArduinoAlvik
from time import sleep_ms
import sys

alvik = ArduinoAlvik()
alvik.begin()

while True:
try:

alvik.move(100.0)
print("on target after move")

alvik.move(50.0)
print("on target after move")

alvik.rotate(90.0)
print("on target after rotation")

alvik.rotate(-45.00)
print("on target after rotation")

x, y, theta = alvik.get_pose()
print(f'Current pose is x={x}, y={y} ,theta={theta}')

alvik.reset_pose(0, 0, 0)

x, y, theta = alvik.get_pose()
print(f'Updated pose is x={x}, y={y} ,theta={theta}')
sleep_ms(500)

print("___________NON-BLOCKING__________________")

alvik.move(50.0, blocking=False)
while not alvik.is_target_reached():
print(f"Not yet on target received:{alvik.last_ack}")
print("on target after move")

alvik.rotate(45.0, blocking=False)
while not alvik.is_target_reached():
print(f"Not yet on target received:{alvik.last_ack}")
print("on target after rotation")

alvik.move(100.0, blocking=False)
while not alvik.is_target_reached():
print(f"Not yet on target received:{alvik.last_ack}")
print("on target after move")

alvik.rotate(-90.00, blocking=False)
while not alvik.is_target_reached():
print(f"Not yet on target received:{alvik.last_ack}")
print("on target after rotation")

x, y, theta = alvik.get_pose()
print(f'Current pose is x={x}, y={y} ,theta={theta}')

alvik.reset_pose(0, 0, 0)

x, y, theta = alvik.get_pose()
print(f'Updated pose is x={x}, y={y} ,theta={theta}')
sleep_ms(500)

alvik.stop()
sys.exit()

except KeyboardInterrupt as e:
print('over')
alvik.stop()
sys.exit()
11 changes: 4 additions & 7 deletions examples/read_color_sensor.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,18 +3,15 @@
import sys

alvik = ArduinoAlvik()

alvik.run()
sleep_ms(1000)
alvik.reset_hw()
alvik.begin()
speed = 0

while True:
try:
r, g, b = alvik.get_color()
r, g, b = alvik.get_color_raw()
print(f'RED: {r}, Green: {g}, Blue: {b}')
sleep_ms(100)
except KeyboardInterrupt as e:
print('over')
break
sys.exit()
alvik.stop()
sys.exit()
18 changes: 18 additions & 0 deletions examples/read_imu.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
from arduino_alvik import ArduinoAlvik
from time import sleep_ms
import sys

alvik = ArduinoAlvik()
alvik.begin()
speed = 0

while True:
try:
ax, ay, az = alvik.get_accelerations()
gx, gy, gz = alvik.get_gyros()
print(f'ax: {ax}, ay: {ay}, az: {az}, gx: {gx}, gy: {gy}, gz: {gz}')
sleep_ms(100)
except KeyboardInterrupt as e:
print('over')
alvik.stop()
sys.exit()
9 changes: 3 additions & 6 deletions examples/read_touch.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,7 @@
import sys

alvik = ArduinoAlvik()

alvik.run()
sleep_ms(1000)
alvik.reset_hw()
alvik.begin()
speed = 0

while True:
Expand All @@ -30,5 +27,5 @@
sleep_ms(100)
except KeyboardInterrupt as e:
print('over')
break
sys.exit()
alvik.stop()
sys.exit()
13 changes: 5 additions & 8 deletions examples/set_pid.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,19 +3,16 @@
import sys

alvik = ArduinoAlvik()

alvik.run()
sleep_ms(1000)
alvik.reset_hw()
alvik.begin()
speed = 0

while True:
try:
alvik.set_pid('L', 10.0, 1.3, 4.2)
alvik.left_wheel.set_pid_gains(10.0, 1.3, 4.2)
sleep_ms(100)
alvik.set_pid('R', 4.0, 13, 1.9)
alvik.right_wheel.set_pid_gains(4.0, 13, 1.9)
sleep_ms(100)
except KeyboardInterrupt as e:
print('over')
break
sys.exit()
alvik.stop()
sys.exit()
36 changes: 36 additions & 0 deletions examples/wheels_servo.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
from arduino_alvik import ArduinoAlvik
from time import sleep
import sys

alvik = ArduinoAlvik()
alvik.begin()

alvik.left_wheel.reset()
alvik.right_wheel.reset()

while True:
try:
alvik.left_wheel.set_position(30)
sleep(2)
print(f'Left wheel degs: {alvik.left_wheel.get_position()}')
print(f'Right wheel degs: {alvik.right_wheel.get_position()}')

alvik.right_wheel.set_position(10)
sleep(2)
print(f'Left wheel degs: {alvik.left_wheel.get_position()}')
print(f'Right wheel degs: {alvik.right_wheel.get_position()}')

alvik.left_wheel.set_position(180)
sleep(2)
print(f'Left wheel degs: {alvik.left_wheel.get_position()}')
print(f'Right wheel degs: {alvik.right_wheel.get_position()}')

alvik.right_wheel.set_position(270)
sleep(2)
print(f'Left wheel degs: {alvik.left_wheel.get_position()}')
print(f'Right wheel degs: {alvik.right_wheel.get_position()}')

except KeyboardInterrupt as e:
print('over')
alvik.stop()
sys.exit()
14 changes: 5 additions & 9 deletions examples/move_example.py → examples/wheels_speed.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,23 +3,19 @@
import sys

alvik = ArduinoAlvik()

alvik.run()
sleep_ms(100)
alvik.reset_hw()

alvik.begin()

while True:
try:
alvik.set_speeds(10, 10)
alvik.set_wheels_speed(10, 10)
sleep_ms(1000)

alvik.set_speeds(30, 60)
alvik.set_wheels_speed(30, 60)
sleep_ms(1000)

alvik.set_speeds(60, 30)
alvik.set_wheels_speed(60, 30)
sleep_ms(1000)
except KeyboardInterrupt as e:
print('over')
alvik.set_speeds(0, 0)
alvik.stop()
sys.exit()
2 changes: 2 additions & 0 deletions install.bat
Original file line number Diff line number Diff line change
Expand Up @@ -19,11 +19,13 @@ if /i "%1"=="-h" (
python -m mpremote %port_string% fs rm :arduino_alvik.py
python -m mpremote %port_string% fs rm :constants.py
python -m mpremote %port_string% fs rm :pinout_definitions.py
python -m mpremote %port_string% fs rm :robot_definitions.py
python -m mpremote %port_string% fs rm :uart.py

python -m mpremote %port_string% fs cp arduino_alvik.py :arduino_alvik.py
python -m mpremote %port_string% fs cp constants.py :constants.py
python -m mpremote %port_string% fs cp pinout_definitions.py :pinout_definitions.py
python -m mpremote %port_string% fs cp robot_definitions.py :robot_definitions.py
python -m mpremote %port_string% fs cp uart.py :uart.py

echo Installing dependencies
Expand Down
2 changes: 2 additions & 0 deletions install.sh
Original file line number Diff line number Diff line change
Expand Up @@ -45,11 +45,13 @@ fi
$python_command -m mpremote $connect_string fs rm :arduino_alvik.py
$python_command -m mpremote $connect_string fs rm :constants.py
$python_command -m mpremote $connect_string fs rm :pinout_definitions.py
$python_command -m mpremote $connect_string fs rm :robot_definitions.py
$python_command -m mpremote $connect_string fs rm :uart.py

$python_command -m mpremote $connect_string fs cp arduino_alvik.py :arduino_alvik.py
$python_command -m mpremote $connect_string fs cp constants.py :constants.py
$python_command -m mpremote $connect_string fs cp pinout_definitions.py :pinout_definitions.py
$python_command -m mpremote $connect_string fs cp robot_definitions.py :robot_definitions.py
$python_command -m mpremote $connect_string fs cp uart.py :uart.py

echo "Installing dependencies"
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,5 +3,5 @@
],
"deps": [
],
"version": "0.0.7"
"version": "0.1.0"
}
Loading