diff --git a/iqrobot.py b/iqrobot.py index 24c7d85..cdb3e07 100644 --- a/iqrobot.py +++ b/iqrobot.py @@ -147,7 +147,7 @@ class IQRobot: self.antrieb.stop() print ("Final Ziel: {}, Aktuell: {}".format(ziel, aktuell)) - def fahre_gerade_aus(self, cm, speed=20): + def fahre_gerade_aus(self, cm, speed=20, intensity_stop=None, abstand_stop=None, abstand_greater=True): """ Funktion um den Roboter geradeaus fahren zu lassen @@ -171,8 +171,8 @@ class IQRobot: self.bewegungsSensor.reset_yaw_angle() # Mit irgendeiner Geschwindigkeit g>0 starten. Wert ist irrelevant - self.antrieb.start_tank(10, 10) - self.antrieb.set_default_speed(10) + self.antrieb.start_tank(richtung*10, richtung*10) + self.antrieb.set_default_speed(richtung*10) linker_speed=speed # Geschwindigkeit linker Motor rechter_speed=speed # Geschwindigkeit rechter Motor @@ -184,7 +184,21 @@ class IQRobot: sum_versatz = 0 # Summe des Versatzes über Zeit # wiederhole solange die gefahrene Strecke noch nicht erreicht ist - while sum_cm < cm * richtung: + while sum_cm < cm * richtung: + if intensity_stop: + red, green, blue, intensity = self.farbSensor.get_rgb_intensity() + print("Farbintensität: " + str(intensity)) + if intensity == intensity_stop: + break + if abstand_stop: + abstand = self.abstandsSensor.get_distance_cm() + print("Abstand: " + str(abstand)) + if abstand_greater: + if abstand >= abstand_stop: + break + else: + if abstand <= abstand_stop: + break wait_for_seconds(0.05) # Sonst wird das zu oft ausgeführt sum_cm = self.strecke_gefahren() * richtung # Gefahrene Strecke, ggf. eben negativ machen versatz = self.bewegungsSensor.get_yaw_angle() # Um wie viel sind wir falsch? diff --git a/main.py b/main.py index 836ba18..0f0f73d 100644 --- a/main.py +++ b/main.py @@ -1,4 +1,4 @@ -# LEGO type:standard slot:5 autostart +# LEGO type:standard slot:5 import os, sys