2025-10-21 23:57:13 +00:00
|
|
|
from pybricks.hubs import PrimeHub
|
|
|
|
|
from pybricks.pupdevices import Motor, ColorSensor, UltrasonicSensor, ForceSensor
|
|
|
|
|
from pybricks.parameters import Button, Color, Direction, Port, Side, Stop
|
|
|
|
|
from pybricks.robotics import DriveBase
|
|
|
|
|
from pybricks.tools import wait, StopWatch
|
|
|
|
|
from pybricks.tools import run_task, multitask
|
|
|
|
|
|
|
|
|
|
hub = PrimeHub()
|
|
|
|
|
|
|
|
|
|
left_motor = Motor(Port.A, Direction.COUNTERCLOCKWISE)
|
|
|
|
|
right_motor = Motor(Port.B)
|
|
|
|
|
|
|
|
|
|
left_arm = Motor(Port.C, Direction.COUNTERCLOCKWISE)
|
|
|
|
|
right_arm = Motor(Port.D)
|
|
|
|
|
lazer_ranger = UltrasonicSensor(Port.E)
|
|
|
|
|
|
|
|
|
|
drive_base = DriveBase(left_motor, right_motor, wheel_diameter=68.8, axle_track=180)
|
|
|
|
|
|
|
|
|
|
drive_base.settings(600,500,300,200)
|
|
|
|
|
drive_base.use_gyro(True)
|
|
|
|
|
|
|
|
|
|
async def main():
|
2025-10-22 00:04:16 +00:00
|
|
|
#Get to mission
|
2025-10-21 23:57:13 +00:00
|
|
|
await drive_base.straight(920)
|
|
|
|
|
await drive_base.turn(-90,Stop.HOLD)
|
|
|
|
|
await drive_base.straight(65)
|
2025-10-22 00:04:16 +00:00
|
|
|
#Solve mission
|
2025-10-21 23:57:13 +00:00
|
|
|
drive_base.turn(-10)
|
|
|
|
|
await left_arm.run_angle(10000,-4000)
|
2025-10-22 00:04:16 +00:00
|
|
|
#Get to Red Start
|
2025-10-21 23:57:13 +00:00
|
|
|
await drive_base.straight(-110)
|
|
|
|
|
await drive_base.turn(90)
|
|
|
|
|
await drive_base.straight(500)
|
|
|
|
|
while True:
|
|
|
|
|
distance_mm = await lazer_ranger.distance()
|
|
|
|
|
print('distancing...',distance_mm)
|
|
|
|
|
|
|
|
|
|
if distance_mm < 300:
|
|
|
|
|
drive_base.stop
|
|
|
|
|
break
|
|
|
|
|
else:
|
|
|
|
|
drive_base.straight(300)
|
|
|
|
|
print('running...')
|
|
|
|
|
await wait(10)
|
|
|
|
|
|
|
|
|
|
run_task(main())
|