FLL/guida_funzionante.py

46 lines
1 KiB
Python

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
import batteria
from assi import A
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)
left = Motor(Port.B, Direction.COUNTERCLOCKWISE)
right = Motor(Port.A)
hub = PrimeHub(top_side=A.UP, front_side=A.BACKWARD)
db = DriveBase(left, right, wheel_diameter=56, axle_track=105)
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_fino_a_quando(90)
print(db.angle())
db.straight(100)
gira_fino_a_quando(180)
print(db.angle())
db.straight(100)
gira_fino_a_quando(270)
print(db.angle())
db.straight(100)
gira_fino_a_quando(360)
print(db.angle())
print(f"drived {db.distance()}")