From 88e8019bd56e5b054f85eb6d7e5d8e21caa4d553 Mon Sep 17 00:00:00 2001 From: Ruben Seitz <2211567@stud.hs-mannheim.de> Date: Tue, 18 Nov 2025 12:34:49 +0100 Subject: [PATCH] main.llsp3 aktualisiert --- main.llsp3 | 49 ++++++++++++++++++++++++++++++++----------------- 1 file changed, 32 insertions(+), 17 deletions(-) diff --git a/main.llsp3 b/main.llsp3 index 47d704a..d46ffdc 100644 --- a/main.llsp3 +++ b/main.llsp3 @@ -7,6 +7,35 @@ import sys import runloop import time +# Notes ############################################################################### + +# Wippe Notizen +def flipflop(state, r, s): + """ + Logik implementiert in Rampen Logik. Bleibe stehen, wenn der Rollwinkel sich um mehr als 10 (?) ändert. + RS-Flipflop-Logik: + Set (= tue nichts), wenn der Winkel sich ändert; + Reset (= bleibe stehen), solange sich der Rollwinkel ändert, danach fahre normal weiter + """ + return False if r else (True if s else state) + +# Obstacle Notizen +""" +- Sensor ~12cm über dem Boden einbauen; insg. 3 Abstandssensoren benötigt (oder 2 mit aufwändigerer Logik und drehendem Sensor) + 1. Wenn vorderer Sensor bestimmten Abstand feststellt, stoppen, zurückfahren bis ein Abstand d feststeht + 2. Drehen, bis ein Seitensensor Abstand d oder kleiner feststellt. Kleinsten Abstand bestimmen: + 2.1 Bei Drehung niedrigsten Wert des Sensors merken + 2.2 Wenn Abstand größer wird, zurückdrehen, bis kleinster Wert wieder erreicht ist +3. Losfahren und in entsprechende Richtung drehen, wenn Abstand kleiner/größer wird +4. Abbrechen, wenn Farbsensoren Schwarz erkennen +""" + +# Ziellinie Notizen +# Wenn beide Sensoren Farbe rot feststellen, stoppe die Motoren, beende das Programm + + +# 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) @@ -17,11 +46,14 @@ import time # WANTED_COLOR = color.BLACK +# Productive Code ################################################################# + async def move_on_color(): start_time = time.time() print(ms.tilt_angles()) while True: roll_value = ms.tilt_angles()[2] + # Change to switch case if cs.reflection(port.C) < 60: mp.move_tank(mp.PAIR_1, -100, 100) elif cs.reflection(port.E) < 60: @@ -39,7 +71,6 @@ async def move_on_color(): # Kreuzung (grüner Punkt) # wenn grün, dann biege um 90 Grad in die richtung ab (wenn vor schwarzer linie) - # Sackgasse (= zwei grüne Punkte) # -> Drehung 180 Grad @@ -48,22 +79,6 @@ async def move_on_color(): # Speedbumper (Schräge Bumper) - -# Wippe Notizen -def flipflop(state, r, s): - """ - Logik implementiert in Rampen Logik. Bleibe stehen, wenn der Rollwinkel sich um mehr als 10 ändert. - RS-Flipflop-Logik: - Set (= tue nichts), wenn der Winkel sich ändert; - Reset (= bleibe stehen), solange sich der Rollwinkel ändert, danach fahre normal weiter - """ - return False if r else (True if s else state) - -# Obstacle Notizen - -# Ziellinie Notizen -# Wenn beide Sensoren rot, stoppe die Motoren - async def main(): mp.pair(mp.PAIR_1, port.A, port.D) await move_on_color()