from pybricks.hubs import PrimeHub from pybricks.parameters import Axis, Direction, Port from pybricks.pupdevices import Motor from pybricks.robotics import DriveBase from pybricks.tools import wait from assi import A from robot_class import LazyRobot, Robot from robots import cbrobot as robot def main(robot: LazyRobot): hub = robot.hub db = robot.db def gira_fino_a_quando(gradi: int): posizione_iniziale = db.angle() gradi_mancanti = gradi - posizione_iniziale db.turn(gradi_mancanti) # dangolo = db.angle() # if angolo < gradi: # db.turn(gradi - angolo) def gira_precisa(gradi: int): aumento_v = 30 posizione_iniziale = db.angle() gradi_attuali = round(db.angle(), 1) while (gradi - gradi_attuali) > 0.2 or (gradi - gradi_attuali) < -0.2: gradi_mancanti = gradi - gradi_attuali velocita = abs(gradi_mancanti) print("Gradi manc: ", gradi_mancanti) if gradi_mancanti > 0: robot.left.run(velocita + aumento_v) robot.right.run(-velocita - aumento_v) hub.display.char(">") elif gradi_mancanti < 0: robot.right.run(velocita + aumento_v) robot.left.run(-velocita - aumento_v) hub.display.char("<") gradi_attuali = round(db.angle(), 1) print("Gradi att: ", gradi_attuali) db.use_gyro(True) # abilitiamo il giroscopio # (mm/s, mm/s², deg/s, deg/s²) db.settings(100, 100, 90, 50) wait(300) db.reset(angle=0) # db.straight(100) # gira_precisa(90) # print(db.angle()) # db.straight(100) # gira_precisa(180) # print(db.angle()) # db.straight(100) # gira_precisa(270) # print(db.angle()) # db.straight(100) # gira_precisa(360) # print(db.angle()) gira_precisa(120) print(db.angle()) gira_precisa(60) print(db.angle()) gira_precisa(-60) print(db.angle()) # gira_fino_a_quando(120) # print(db.angle()) # gira_fino_a_quando(60) # print(db.angle()) # gira_fino_a_quando(-60) # print(db.angle()) print(f"drived {db.distance()}") if __name__ == "__main__": import batteria from robots import leorobot as robot main(robot)