This commit is contained in:
senpai 2025-10-19 15:29:14 +02:00
parent 10c680f77a
commit 13023e1cd4
3 changed files with 111 additions and 55 deletions

View file

@ -4,41 +4,47 @@ from pybricks.pupdevices import Motor
from pybricks.robotics import DriveBase from pybricks.robotics import DriveBase
from pybricks.tools import wait from pybricks.tools import wait
import batteria
from assi import A from assi import A
from robot_class import LazyRobot, Robot
from robots import cbrobot as robot from robots import cbrobot as robot
hub = robot.hub
db = robot.db 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)
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()}")
def gira_fino_a_quando(gradi: int): if __name__ == "__main__":
posizione_iniziale = db.angle() import batteria
gradi_mancanti = gradi - posizione_iniziale from robots import cbrobot as robot
db.turn(gradi_mancanti)
# dangolo = db.angle()
# if angolo < gradi:
# db.turn(gradi - angolo)
main(robot)
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()}")

View file

@ -4,33 +4,38 @@ from pybricks.pupdevices import Motor
from pybricks.robotics import DriveBase from pybricks.robotics import DriveBase
from pybricks.tools import wait from pybricks.tools import wait
import batteria
from assi import A from assi import A
from robots import giorobot as robot from robot_class import LazyRobot
hub = robot.hub
db = robot.db
def gira_fino_a_quando(gradi: int): def main(robot: LazyRobot):
posizione_iniziale = db.angle() hub = robot.hub
gradi_mancanti = gradi - posizione_iniziale db = robot.db
db.turn(gradi_mancanti)
# dangolo = db.angle() def gira_fino_a_quando(gradi: int):
# if angolo < gradi: posizione_iniziale = db.angle()
# db.turn(gradi - angolo) gradi_mancanti = gradi - posizione_iniziale
db.turn(gradi_mancanti)
# dangolo = db.angle()
# if angolo < gradi:
# db.turn(gradi - angolo)
db.use_gyro(True) # abilitiamo il giroscopio
# (mm/s, mm/s², deg/s, deg/s²)
db.settings(100, 100, 100, 50)
# max mm/s = 864
# mm/s quadrato = accelerazione
#
wait(300)
db.reset(angle=0)
db.straight(40)
db.straight(-10)
db.use_gyro(True) # abilitiamo il giroscopio if __name__ == "__main__":
# (mm/s, mm/s², deg/s, deg/s²) import batteria
db.settings(100, 100, 100, 50) from robots import cbrobot as robot
# max mm/s = 864
# mm/s quadrato = accelerazione
#
wait(300)
db.reset(angle=0)
main(robot)
db.straight(400)
db.straight(-100)

45
menu.py Normal file
View file

@ -0,0 +1,45 @@
# menu.py
import usys
from pybricks.tools import hub_menu, wait
from guida_funzionante import main as run_G
from guidaavantieindietro import main as run_A
from robots import cbrobot as robot
PROGRAMMI = {
"G": run_G,
"A": run_A,
}
def run_with_play(hub, fn, *args, **kwargs):
try:
hub.display.char(">")
return fn(*args, **kwargs)
finally:
hub.display.text("")
def run_once():
labels = list(PROGRAMMI.keys())
if not labels:
print("Nessun programma.")
wait(1500)
return
# if len(labels) == 1: # no menu se solo 1 programma
# run_with_play(robot.hub, PROGRAMMI[labels[0]], robot)
# return
scelta = hub_menu(*labels)
run_with_play(robot.hub, PROGRAMMI[scelta], robot)
while True:
run_once()
# while True:
# try:
# run_once()
# except Exception as e:
# usys.print_exception(e)
# wait(3000)