droidDepotPythonControl/droid_commands.py

89 lines
2.0 KiB
Python
Raw Permalink Normal View History

import droid
import asyncio
from time import sleep
from random import randrange
d = ""
lastSound = -1
async def play_sound():
global lastSound
global d
sound = lastSound
while sound == lastSound:
sound = randrange(0,5)
lastSound = sound
while d is None:
sleep(0.1)
await d.play_sound(f"0{sound}","00")
async def play_specific_sound(bank, sound):
global d
await d.play_sound( sound_id = sound, bank_id = bank)
async def move_droid(forward=False, backward=False, left=False, right=False):
l = droid.Directions.FORWARD
r = droid.Directions.FORWARD
global d
if forward:
l = droid.Directions.FORWARD
r = droid.Directions.FORWARD
if backward:
l = droid.Directions.BACKWARD
r = droid.Directions.BACKWARD
if left:
# spin left
l = droid.Directions.BACKWARD
r = droid.Directions.FORWARD
if right:
# spin right
l = droid.Directions.FORWARD
r = droid.Directions.BACKWARD
await d.move_motors(l, droid.Motors.LEFT, "FF")
await d.move_motors(r, droid.Motors.RIGHT,"FF")
async def move_manually(direction, motor, strength):
global d
await d.move_motors(direction, motor, strength)
async def move_stop():
global d
await move_manually(droid.Directions.FORWARD, droid.Motors.LEFT, "00")
await move_manually(droid.Directions.FORWARD, droid.Motors.RIGHT, "00")
async def rotate_head(direction):
global d
await d.move_motors(direction, droid.Motors.HEAD, "FF")
# eventually should we stop this call so we don't waste a bunch of battery?
async def stop_rotate_head():
global d
await d.move_motors(droid.Directions.ROTATE_LEFT, droid.Motors.HEAD, "00")
async def start_droid():
"""
This function should be in a try loop
"""
global d
d = await droid.discoverDroid(retry=True)
await d.connect()
async def stop_droid():
global d
await d.disconnect()