curva precisa
This commit is contained in:
parent
7469dd2479
commit
f7b1d57010
2 changed files with 115 additions and 0 deletions
84
giro_leo_prova.py
Normal file
84
giro_leo_prova.py
Normal file
|
|
@ -0,0 +1,84 @@
|
||||||
|
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)
|
||||||
31
guidaavantieindietro_giohub.py
Normal file
31
guidaavantieindietro_giohub.py
Normal file
|
|
@ -0,0 +1,31 @@
|
||||||
|
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
|
||||||
|
from robots import giorobot as robot
|
||||||
|
|
||||||
|
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(400)
|
||||||
|
db.straight(-100)
|
||||||
Loading…
Add table
Reference in a new issue