From 18dcbeb506766c7f2c4c09611312cba3cb1e77bd Mon Sep 17 00:00:00 2001 From: Ruben Seitz <2211567@stud.hs-mannheim.de> Date: Thu, 15 Jan 2026 13:32:46 +0100 Subject: [PATCH] 1.00 on god frfr --- src/main.llsp3 | 48 +++++++++++++----------------------------------- 1 file changed, 13 insertions(+), 35 deletions(-) diff --git a/src/main.llsp3 b/src/main.llsp3 index 30a9e87..8a0da4c 100644 --- a/src/main.llsp3 +++ b/src/main.llsp3 @@ -6,20 +6,6 @@ import sys import runloop import time -# Implementation of Basic operations and misc. ############################################## - -# await mp.move_for_degrees(mp.PAIR_1, 360, 45, velocity=280) - -# motor.run_for_degrees(portNum, 200, 300) -# await runloop.sleep_ms(2000) - -# mp.move_tank(mp.PAIR_1, 280, -280) -# await runloop.sleep_ms(2000) - -# WANTED_COLOR = color.BLACK - -# Productive Code ########################################################################### - BLACK = 0 GREEN = 6 WHITE = 10 @@ -56,7 +42,7 @@ async def avoid_obstacle(speed=100): mp.move_tank(mp.PAIR_1, -speed, -speed) while cs.color(port.B) != BLACK: mp.move_tank(mp.PAIR_1, 10, -110) - #await turn_right(85) + async def move_on_color(): won = False speed = 100 @@ -65,7 +51,6 @@ async def move_on_color(): last_seen_black = "" old = time.ticks_ms() - # print("initial old: " + str(old)) while not won: @@ -80,7 +65,6 @@ async def move_on_color(): GREEN = 6 WHITE = 10 RED = 9 - straight = False # Distanzsensor ds_front = ds.distance(port.D) @@ -93,7 +77,6 @@ async def move_on_color(): speed = -100 # --- LOGIK NUR MIT FARBEN --- - # Finish line logik if left_color == RED or right_color == RED: won = True @@ -104,9 +87,12 @@ async def move_on_color(): # Linker Sensor sieht Grün → Linksabbiegen elif left_color == GREEN and right_color != GREEN: saw_green_left = True + old = time.ticks_ms() + elif right_color == GREEN and left_color != GREEN: saw_green_right = True + old = time.ticks_ms() # Beide Sensoren sehen Grün (z.B. Kreuzung / Markierung) elif left_color == GREEN and right_color == GREEN: @@ -136,58 +122,50 @@ async def move_on_color(): # Schwarz-Logik elif front_sens > 25 and last_seen_black == "left": - #time.sleep_ms(100) while cs.reflection(port.C) > 25: # front_sensor if cs.color(port.B) == BLACK and cs.color(port.F) == WHITE: # left_color last_seen_black = "left" + if cs.color(port.F) == BLACK and cs.color(port.B) == WHITE: # right_color last_seen_black = "right" - #mp.move_tank(mp.PAIR_1, speed, speed) - #time.sleep_ms(1000) break + old = time.ticks_ms() mp.move_tank(mp.PAIR_1, -125, -20) elif front_sens > 25 and last_seen_black == "right": - #time.sleep_ms(100) while cs.reflection(port.C) > 25: if cs.color(port.F) == BLACK and cs.color(port.B) == WHITE: last_seen_black = "right" + if cs.color(port.B) == BLACK and cs.color(port.F) == WHITE: last_seen_black = "left" - #mp.move_tank(mp.PAIR_1, speed, speed) - #time.sleep_ms(1000) break + old = time.ticks_ms() mp.move_tank(mp.PAIR_1, -20, -125) elif right_color == BLACK or left_color == BLACK: + old = time.ticks_ms() 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 elif left_color == BLACK and right_color == WHITE: last_seen_black = "left" - # Rechter Schwarz, linker Weiß → sanft nach rechts elif right_color == BLACK and left_color == WHITE: last_seen_black = "right" # Beide Weiß, Front Schwarz → geradeaus elif cs.color(port.B) == WHITE and cs.color(port.F) == WHITE and front_sens < 25: - straight = True + if time.ticks_diff(time.ticks_ms(), old) > 1000: + last_seen_black = "" + old = time.ticks_ms() mp.move_tank(mp.PAIR_1, speed, speed) runloop.sleep_ms(50) - - - # if time.ticks_diff(time.ticks_ms(), old) > 5000: - # print(time.ticks_diff(time.ticks_ms(), old)) - # straight = True - - # Alles Weiß - # elif cs.color(port.B) == WHITE and cs.color(port.F) == WHITE and front_sens > 25: async def main(): mp.pair(mp.PAIR_1, port.A, port.E)