✨
This commit is contained in:
@ -1,4 +1,3 @@
|
|||||||
import time
|
|
||||||
from time import sleep
|
from time import sleep
|
||||||
|
|
||||||
import robot
|
import robot
|
||||||
|
25
robot.py
25
robot.py
@ -16,7 +16,7 @@ class Robot(object):
|
|||||||
In case you experience trouble - consider using only commands that do not
|
In case you experience trouble - consider using only commands that do not
|
||||||
use the wheel encoders.
|
use the wheel encoders.
|
||||||
"""
|
"""
|
||||||
def __init__(self, port = '/dev/ttyACM0'):
|
def __init__(self, port: str = '/dev/ttyACM0'):
|
||||||
"""
|
"""
|
||||||
The constructor port parameter can be changed from default value if you
|
The constructor port parameter can be changed from default value if you
|
||||||
want to control the robot directly from your labtop (instead of from
|
want to control the robot directly from your labtop (instead of from
|
||||||
@ -51,7 +51,7 @@ class Robot(object):
|
|||||||
print((self.send_command(cmd)))
|
print((self.send_command(cmd)))
|
||||||
self.serial_read.close()
|
self.serial_read.close()
|
||||||
|
|
||||||
def send_command(self, cmd, sleep_ms=0.0):
|
def send_command(self, cmd : str, sleep_ms: float=0.0):
|
||||||
"""Sends a command to the Arduino robot controller"""
|
"""Sends a command to the Arduino robot controller"""
|
||||||
self.serial_read.write(cmd.encode('ascii'))
|
self.serial_read.write(cmd.encode('ascii'))
|
||||||
sleep(sleep_ms)
|
sleep(sleep_ms)
|
||||||
@ -59,14 +59,15 @@ class Robot(object):
|
|||||||
return str_val
|
return str_val
|
||||||
|
|
||||||
|
|
||||||
def _power_checker(self, power):
|
def _power_checker(self, power: int):
|
||||||
"""
|
"""
|
||||||
Checks if a power value is in the set {0, [40;127]}.
|
Checks if a power value is in the set {0, [40;127]}.
|
||||||
This is an internal utility function.
|
This is an internal utility function.
|
||||||
"""
|
"""
|
||||||
return (power == 0) or (power >=40 and power <=127)
|
return (power == 0) or (power >=40 and power <=127)
|
||||||
|
|
||||||
def go_diff(self, power_left, power_right, dir_left, dir_right):
|
def go_diff(self, power_left : int, power_right : int, dir_left : int,
|
||||||
|
dir_right : int):
|
||||||
"""
|
"""
|
||||||
Start left motor with motor power powerLeft (in {0, [40;127]} and the
|
Start left motor with motor power powerLeft (in {0, [40;127]} and the
|
||||||
numbers must be integer) and direction dirLeft (0=reverse, 1=forward)
|
numbers must be integer) and direction dirLeft (0=reverse, 1=forward)
|
||||||
@ -85,13 +86,13 @@ class Robot(object):
|
|||||||
):
|
):
|
||||||
print("WARNING: Read the docstring of Robot.go_diff()!")
|
print("WARNING: Read the docstring of Robot.go_diff()!")
|
||||||
return ""
|
return ""
|
||||||
else:
|
|
||||||
pl_int = int(power_left)
|
pl_int = int(power_left)
|
||||||
pr_int = int(power_right)
|
pr_int = int(power_right)
|
||||||
dl_int = int(dir_left)
|
dl_int = int(dir_left)
|
||||||
dr_int = int(dir_right)
|
dr_int = int(dir_right)
|
||||||
cmd = f"d{pl_int},{pr_int},{dl_int},{dr_int}\n"
|
cmd = f"d{pl_int},{pr_int},{dl_int},{dr_int}\n"
|
||||||
return self.send_command(cmd)
|
return self.send_command(cmd)
|
||||||
|
|
||||||
|
|
||||||
def stop(self):
|
def stop(self):
|
||||||
@ -106,7 +107,7 @@ class Robot(object):
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
def read_sensor(self, sensorid):
|
def read_sensor(self, sensorid : int):
|
||||||
"""
|
"""
|
||||||
Send a read sensor command with sensorid and return sensor value.
|
Send a read sensor command with sensorid and return sensor value.
|
||||||
|
|
||||||
|
@ -1,4 +1,3 @@
|
|||||||
import time
|
|
||||||
from time import sleep
|
from time import sleep
|
||||||
|
|
||||||
import robot
|
import robot
|
||||||
|
Reference in New Issue
Block a user