Compare commits

...

3 commits

Author SHA1 Message Date
(MakerLab) Laptop 2
37c7c0aefd Merge remote-tracking branch 'origin/10012024' into energybrickies 2024-02-28 17:31:43 +01:00
Lars Haferkamp
518f00fa5d Schneller fahren 2024-01-10 20:59:57 +01:00
Lars Haferkamp
7abd2bbd3f Neue Stop Optionen in der Geradefahrfunktion: Farbintensität und Abstand. 2024-01-10 20:55:51 +01:00
2 changed files with 19 additions and 5 deletions

View file

@ -147,7 +147,7 @@ class IQRobot:
self.antrieb.stop() self.antrieb.stop()
print ("Final Ziel: {}, Aktuell: {}".format(ziel, aktuell)) 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 Funktion um den Roboter geradeaus fahren zu lassen
@ -171,8 +171,8 @@ class IQRobot:
self.bewegungsSensor.reset_yaw_angle() self.bewegungsSensor.reset_yaw_angle()
# Mit irgendeiner Geschwindigkeit g>0 starten. Wert ist irrelevant # Mit irgendeiner Geschwindigkeit g>0 starten. Wert ist irrelevant
self.antrieb.start_tank(10, 10) self.antrieb.start_tank(richtung*10, richtung*10)
self.antrieb.set_default_speed(10) self.antrieb.set_default_speed(richtung*10)
linker_speed=speed # Geschwindigkeit linker Motor linker_speed=speed # Geschwindigkeit linker Motor
rechter_speed=speed # Geschwindigkeit rechter Motor rechter_speed=speed # Geschwindigkeit rechter Motor
@ -185,6 +185,20 @@ class IQRobot:
# wiederhole solange die gefahrene Strecke noch nicht erreicht ist # 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 wait_for_seconds(0.05) # Sonst wird das zu oft ausgeführt
sum_cm = self.strecke_gefahren() * richtung # Gefahrene Strecke, ggf. eben negativ machen sum_cm = self.strecke_gefahren() * richtung # Gefahrene Strecke, ggf. eben negativ machen
versatz = self.bewegungsSensor.get_yaw_angle() # Um wie viel sind wir falsch? versatz = self.bewegungsSensor.get_yaw_angle() # Um wie viel sind wir falsch?

View file

@ -1,4 +1,4 @@
# LEGO type:standard slot:5 autostart # LEGO type:standard slot:5
import os, sys import os, sys