menu
This commit is contained in:
parent
10c680f77a
commit
13023e1cd4
3 changed files with 111 additions and 55 deletions
|
|
@ -4,15 +4,16 @@ 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):
|
def gira_fino_a_quando(gradi: int):
|
||||||
posizione_iniziale = db.angle()
|
posizione_iniziale = db.angle()
|
||||||
gradi_mancanti = gradi - posizione_iniziale
|
gradi_mancanti = gradi - posizione_iniziale
|
||||||
db.turn(gradi_mancanti)
|
db.turn(gradi_mancanti)
|
||||||
|
|
@ -20,25 +21,30 @@ def gira_fino_a_quando(gradi: int):
|
||||||
# if angolo < gradi:
|
# if angolo < gradi:
|
||||||
# db.turn(gradi - angolo)
|
# 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.use_gyro(True) # abilitiamo il giroscopio
|
db.straight(100)
|
||||||
# (mm/s, mm/s², deg/s, deg/s²)
|
gira_fino_a_quando(90)
|
||||||
db.settings(100, 100, 90, 50)
|
print(db.angle())
|
||||||
wait(300)
|
db.straight(100)
|
||||||
db.reset(angle=0)
|
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())
|
||||||
|
|
||||||
db.straight(100)
|
print(f"drived {db.distance()}")
|
||||||
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()}")
|
if __name__ == "__main__":
|
||||||
|
import batteria
|
||||||
|
from robots import cbrobot as robot
|
||||||
|
|
||||||
|
main(robot)
|
||||||
|
|
|
||||||
|
|
@ -4,15 +4,15 @@ 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):
|
||||||
|
hub = robot.hub
|
||||||
|
db = robot.db
|
||||||
|
|
||||||
|
def gira_fino_a_quando(gradi: int):
|
||||||
posizione_iniziale = db.angle()
|
posizione_iniziale = db.angle()
|
||||||
gradi_mancanti = gradi - posizione_iniziale
|
gradi_mancanti = gradi - posizione_iniziale
|
||||||
db.turn(gradi_mancanti)
|
db.turn(gradi_mancanti)
|
||||||
|
|
@ -21,16 +21,21 @@ def gira_fino_a_quando(gradi: int):
|
||||||
# if angolo < gradi:
|
# if angolo < gradi:
|
||||||
# db.turn(gradi - angolo)
|
# 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.use_gyro(True) # abilitiamo il giroscopio
|
db.straight(40)
|
||||||
# (mm/s, mm/s², deg/s, deg/s²)
|
db.straight(-10)
|
||||||
db.settings(100, 100, 100, 50)
|
|
||||||
# max mm/s = 864
|
|
||||||
# mm/s quadrato = accelerazione
|
|
||||||
#
|
|
||||||
wait(300)
|
|
||||||
db.reset(angle=0)
|
|
||||||
|
|
||||||
|
|
||||||
db.straight(400)
|
if __name__ == "__main__":
|
||||||
db.straight(-100)
|
import batteria
|
||||||
|
from robots import cbrobot as robot
|
||||||
|
|
||||||
|
main(robot)
|
||||||
|
|
|
||||||
45
menu.py
Normal file
45
menu.py
Normal 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)
|
||||||
Loading…
Add table
Reference in a new issue