From 460b50a3b19e9c69c4860cb91eb31aa1b8d61e92 Mon Sep 17 00:00:00 2001 From: Ruben Seitz <2211567@stud.hs-mannheim.de> Date: Thu, 18 Dec 2025 13:22:58 +0100 Subject: [PATCH] lol roflcopter --- src/main.llsp3 | 35 ++++++++++++++++++++++++----------- 1 file changed, 24 insertions(+), 11 deletions(-) diff --git a/src/main.llsp3 b/src/main.llsp3 index 2bc4571..fa3b404 100644 --- a/src/main.llsp3 +++ b/src/main.llsp3 @@ -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()) \ No newline at end of file