main.llsp3 aktualisiert
parent
e47ca8359b
commit
88e8019bd5
49
main.llsp3
49
main.llsp3
|
|
@ -7,6 +7,35 @@ import sys
|
||||||
import runloop
|
import runloop
|
||||||
import time
|
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)
|
# await mp.move_for_degrees(mp.PAIR_1, 360, 45, velocity=280)
|
||||||
|
|
||||||
# motor.run_for_degrees(portNum, 200, 300)
|
# motor.run_for_degrees(portNum, 200, 300)
|
||||||
|
|
@ -17,11 +46,14 @@ import time
|
||||||
|
|
||||||
# WANTED_COLOR = color.BLACK
|
# WANTED_COLOR = color.BLACK
|
||||||
|
|
||||||
|
# Productive Code #################################################################
|
||||||
|
|
||||||
async def move_on_color():
|
async def move_on_color():
|
||||||
start_time = time.time()
|
start_time = time.time()
|
||||||
print(ms.tilt_angles())
|
print(ms.tilt_angles())
|
||||||
while True:
|
while True:
|
||||||
roll_value = ms.tilt_angles()[2]
|
roll_value = ms.tilt_angles()[2]
|
||||||
|
# Change to switch case
|
||||||
if cs.reflection(port.C) < 60:
|
if cs.reflection(port.C) < 60:
|
||||||
mp.move_tank(mp.PAIR_1, -100, 100)
|
mp.move_tank(mp.PAIR_1, -100, 100)
|
||||||
elif cs.reflection(port.E) < 60:
|
elif cs.reflection(port.E) < 60:
|
||||||
|
|
@ -39,7 +71,6 @@ async def move_on_color():
|
||||||
# Kreuzung (grüner Punkt)
|
# Kreuzung (grüner Punkt)
|
||||||
# wenn grün, dann biege um 90 Grad in die richtung ab (wenn vor schwarzer linie)
|
# wenn grün, dann biege um 90 Grad in die richtung ab (wenn vor schwarzer linie)
|
||||||
|
|
||||||
|
|
||||||
# Sackgasse (= zwei grüne Punkte)
|
# Sackgasse (= zwei grüne Punkte)
|
||||||
# -> Drehung 180 Grad
|
# -> Drehung 180 Grad
|
||||||
|
|
||||||
|
|
@ -48,22 +79,6 @@ async def move_on_color():
|
||||||
|
|
||||||
# Speedbumper (Schräge Bumper)
|
# 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():
|
async def main():
|
||||||
mp.pair(mp.PAIR_1, port.A, port.D)
|
mp.pair(mp.PAIR_1, port.A, port.D)
|
||||||
await move_on_color()
|
await move_on_color()
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue