from bluedot import BlueDot from time import sleep, time dot = BlueDot(auto_start_server=False) dot.resize(1, 2) dot.allow_pairing() def pressed(pos): print( "Pressed: x={} y={} angle={} distance={} middle={} top={} bottom={} left={} right={} time={}" .format(pos.x, pos.y, pos.angle, pos.distance, pos.middle, pos.top, pos.bottom, pos.left, pos.right, time())) def pressed_two(pos): print("Second dot:" + str(pos)) def released(): print("Released: x={} y={}".format(dot.position.x, dot.position.y)) def moved(pos): print("Moved: x={} y={}".format(pos.x, pos.y)) def swiped(swipe): print("Swiped: up={} down={} left={} right={} speed={}".format( swipe.up, swipe.down, swipe.left, swipe.right, swipe.speed))
class BtCarInterface: def __init__(self, car): self.bluetooth = BlueDot() self.bt_interface_code = 0 self.bt_motor_interface() self.car = car def bt_motor_interface(self): if self.bt_interface_code == 1: self.bt_interface_code = 0 for i in range(self.bluetooth.rows): for j in range(self.bluetooth.cols): self.bluetooth[j, i].square = False self.bluetooth[j, i].visible = False self.bluetooth.resize(1, 1) self.bluetooth[0, 0].square = False self.bluetooth[0, 0].visible = True self.bluetooth.when_released = self.stop self.bluetooth.when_moved = self.slides self.bluetooth.when_double_pressed = self.swap_interface def bt_util_interface(self): self.bluetooth.resize(3, 3) for i in range(self.bluetooth.rows): if i == 0: color = (255, 255, 204) # day mode, with brighter music elif i == 1: color = (255, 0, 0) elif i == 2: color = (204, 204, 205) # night mode, with calm music for j in range(self.bluetooth.cols): self.bluetooth[j, i].square = True if i == 1 else False self.bluetooth[j, i].color = color # reset self.bluetooth.when_released = None self.bluetooth.when_moved = None self.bluetooth.when_double_pressed = None self.bluetooth[0, 1].visible = False self.bluetooth[2, 1].visible = False self.bluetooth[1, 1].color = "red" self.bluetooth[1, 1].when_double_pressed = self.swap_interface self.bt_interface_code = 1 def swap_interface(self): if (self.bt_interface_code == 1): self.bt_motor_interface() else: self.bt_util_interface() def stop(self): print("stop") self.car.stop() def slides(self, pos): # speed duty_cycle = round(pos.distance * 100, 0) # direction tan = pos.y / pos.x if (-1 <= tan and tan <= 1) and (pos.x >= 0): print("clockwise: power {}%".format(duty_cycle)) self.car.clockwise(duty_cycle=duty_cycle) elif (-1 >= tan or tan >= 1) and (pos.y >= 0): print("forward: power {}%".format(duty_cycle)) self.car.forward(duty_cycle=duty_cycle) elif (-1 <= tan and tan <= 1) and (pos.x < 0): print("CounterClockwise: power {}%".format(duty_cycle)) self.car.counterClockwise(duty_cycle=duty_cycle) elif (-1 >= tan or tan >= 1) and (pos.y <= 0): print("backward: power {}%".format(duty_cycle)) self.car.backward(duty_cycle=duty_cycle)
from bluedot import BlueDot, COLORS from signal import pause from random import choice bd = BlueDot() bd.resize(1, 2) def pressed(pos): print("Pressed : {}".format(pos)) def moved(pos): print("Moved : {}".format(pos)) def released(pos): print("Released : {}".format(pos)) def double_press(pos): print("Double press : {}".format(pos)) def swipe(swipe): print("Swipe : {}".format(swipe)) def rotation(rotation): print("Rotation : {}".format(rotation))