Robo

Create Robo Instance

BLE_Name = “Robo1” – example BLE name
my_robo = Robo(BLE_Name)

change_ble_name(self, name)

name must be 16 characters or less e.g name = “Robo1”
Robo will reboot once the command is received and the name is changed
You can use an instance of BLED112 to scan() and see all discoverable devices or simply check on your phone that the new ble name has been taken
my_robo.change_ble_name("Robo2")

check_drive_action(self)

returns the status of the drive action 1 = done, None = in progress, 0 = failed

check_turn_action(self)

returns the status of the turn action 1 = done, None = in progress, 0 = failed

delay(self, delay_time)

delay_time is the time in seconds to wait until function returns
my_robo.delay(1)

display_text(self, text, matrices)

Cascaded diplay of text on one or more LED Matices

text is a string to be displayed on the matrices
matrices is a list of Matrix objects that should participate in the text display
my_robo.display_text("Welcome to Robo Wundrkind", [my_robo.Matrix1, my_robo.Matrix2, my_robo.Matrix3])

drive(self, vel, distance, direction, wait=1, motors=(1, 2), wd=89)

drive is Robo’s simplified command to have Robo drive a certain distance assuming a 2 motor configuration

vel is the desired velocity from 0-100%
distance is how far in centimeters Robo should drive
direction will detirmine forward or backward
wait is a flag that indicates if we wait in the function until the action is complete. set wait = 0 if we want to exit the function while driving
motors is a tuple of the two motors used to drive Robo
wd is the diameter of the wheels used, default is 89mm or 0x59mm in hex.
If you choose to change the wheels be sure to pass in the new wheel diameter
my_robo.drive(80, 30, 1)

get_build(self)

returns a list of Robo Wunderkind moduels that are currently attached
The is updated automatically upon initialization of Robo object as well as when there has been a change in the build
The latest build is stored in self.build -> my_robo.build
build = my_robo.get_build()

get_characteristics(self)

characteristics = my_robo.get_characteristics()
returns a list of GATT characteristics
characteristics = my_robo.get_characteristics()

get_rssi(self)

rssi = my_robo.get_rssi()
returns the BLE signal strength rssi value
signal_strength = my_robo.get_rssi()

set_drive(self, motor_cmds, vel, distance, action_id, wd=0x59)

set_drive is Robo’s generic command to set the velocity and distance commands to multiple motors at once
motor_cmds is a list of motor objects folloed by the direction that motor should spin: [[1,0],[2,1],[3,0],[4,1]] motors from 1-6 are valid if connected
vel is the desired velocity from 0-100%
distance is the desired distance to travel in centimeters
action_id is a unique identifier that is sent back once Robo has completed the action. Use the self.drive_id by default, use check_drive_action() to know when it is done
wd is the diameter of the wheels used, default is 89mm or 0x59mm in hex. If you choose to change the wheels be sure to pass in the new wheel diameter
my_robo.set_drive([[1,0],[2,1],[3,0],[4,1]], 50, 100, my_robo.drive_id)

stop(self)

stops all motors from moving
my_robo.stop()

stop_all(self)

stops all outputs
my_robo.stop_all()

turn(self, vel, angle, direction, wait=1, motors=(1, 2), wd=89, turning_radius=91)

turn is Robo’s simplified command to have Robo turn a number of degrees assuming a 2 motor configuration
vel is the desired velocity from 0-100%
angle is the amount to have Robo turn in degrees
direction will detirmine clockwise or counter clockwise rotation
wait is a flag that indicates if we wait in the function until the turn is complete. set wait = 0 if we want to exit the function while turning
motors is a tuple of the two motors used to turn Robo
wd is the diameter of the wheels used, default is 89mm or 0x59mm in hex. If you choose to change the wheels be sure to pass in the new wheel diameter
turning_radius is the distance from the wheel to the centre of Robo’s turning axle in millimeters
my_robo.turn(40, 90, 1)