lol roflcopter
parent
244cdfdd7a
commit
460b50a3b1
|
|
@ -56,12 +56,16 @@ async def move_on_color():
|
|||
speed = 100
|
||||
saw_green_left = False
|
||||
saw_green_right = False
|
||||
last_seen_black = ""
|
||||
|
||||
while not won:
|
||||
|
||||
|
||||
# Farbcodes lesen
|
||||
left_color = cs.color(port.B)
|
||||
right_color = cs.color(port.F)
|
||||
front_sens = cs.reflection(port.C)
|
||||
|
||||
|
||||
gradient = ms.tilt_angles()[2]
|
||||
# Farbcodes
|
||||
|
|
@ -76,7 +80,7 @@ async def move_on_color():
|
|||
ds_front = ds.distance(port.D)
|
||||
|
||||
if gradient < -120:
|
||||
speed = -80
|
||||
speed = -120
|
||||
elif gradient > 50:
|
||||
speed = -50
|
||||
else:
|
||||
|
|
@ -86,7 +90,7 @@ async def move_on_color():
|
|||
# Finish line logik
|
||||
if left_color == RED or right_color == RED:
|
||||
won = True
|
||||
break
|
||||
|
||||
|
||||
elif ds_front < 75 and ds_front > -1:
|
||||
#await avoid_obstacle()
|
||||
|
|
@ -111,7 +115,7 @@ async def move_on_color():
|
|||
mp.move_tank(mp.PAIR_1, speed, speed)
|
||||
time.sleep_ms(1200)
|
||||
mp.move_tank(mp.PAIR_1, speed, -speed)
|
||||
time.sleep_ms(1050)
|
||||
time.sleep_ms(1000)
|
||||
mp.move_tank(mp.PAIR_1, speed, speed)
|
||||
time.sleep_ms(300)
|
||||
|
||||
|
|
@ -121,27 +125,35 @@ async def move_on_color():
|
|||
mp.move_tank(mp.PAIR_1, speed, speed)
|
||||
time.sleep_ms(1200)
|
||||
mp.move_tank(mp.PAIR_1, -speed, speed)
|
||||
time.sleep_ms(1050)
|
||||
time.sleep_ms(1000)
|
||||
mp.move_tank(mp.PAIR_1, speed, speed)
|
||||
time.sleep_ms(300)
|
||||
|
||||
elif front_sens > 25 and last_seen_black == "left":
|
||||
while cs.reflection(port.C) > 25:
|
||||
mp.move_tank(mp.PAIR_1, -100, 50)
|
||||
|
||||
elif front_sens > 25 and last_seen_black == "right":
|
||||
while cs.reflection(port.C) > 25:
|
||||
mp.move_tank(mp.PAIR_1, 50, -100)
|
||||
|
||||
elif right_color == BLACK or left_color == BLACK:
|
||||
if right_color == BLACK and left_color == BLACK:
|
||||
mp.move_tank(mp.PAIR_1, speed, speed)
|
||||
time.sleep_ms(20)
|
||||
|
||||
|
||||
# Linker Sensor ist Schwarz, rechter Weiß → sanft nach links
|
||||
|
||||
# Linker Sensor ist Schwarz, rechter Weiß → sanft nach links
|
||||
elif left_color == BLACK and right_color == WHITE:
|
||||
mp.move_tank(mp.PAIR_1, speed, -(int (speed / 4)))
|
||||
last_seen_black = "left"
|
||||
|
||||
|
||||
|
||||
# Rechter Schwarz, linker Weiß → sanft nach rechts
|
||||
# Rechter Schwarz, linker Weiß → sanft nach rechts
|
||||
elif right_color == BLACK and left_color == WHITE:
|
||||
mp.move_tank(mp.PAIR_1, -(int (speed / 4)), speed)
|
||||
last_seen_black = "right"
|
||||
|
||||
# Beide Weiß → geradeaus (vermutlich neben der Linie)
|
||||
elif left_color == WHITE and right_color == WHITE:
|
||||
elif left_color == WHITE and right_color == WHITE and front_sens < 25:
|
||||
straight = True
|
||||
mp.move_tank(mp.PAIR_1, speed, speed)
|
||||
runloop.sleep_ms(50)
|
||||
|
|
@ -164,6 +176,7 @@ async def move_on_color():
|
|||
async def main():
|
||||
mp.pair(mp.PAIR_1, port.A, port.E)
|
||||
await move_on_color()
|
||||
|
||||
sys.exit()
|
||||
|
||||
runloop.run(main())
|
||||
Loading…
Reference in New Issue