Neue Stop Optionen in der Geradefahrfunktion: Farbintensität und Abstand.

This commit is contained in:
Lars Haferkamp 2024-01-10 20:55:51 +01:00
parent 714d50e996
commit 7abd2bbd3f
2 changed files with 31 additions and 14 deletions

View file

@ -102,7 +102,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
@ -126,8 +126,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
@ -138,7 +138,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?

23
main.py
View file

@ -1,4 +1,4 @@
# LEGO type:standard slot:5 autostart
# LEGO type:standard slot:5
import os, sys
@ -104,9 +104,10 @@ def hologram():
iqRobot.fahre_gerade_aus(-15,30)
def augmented_reality():
iqRobot.drehe(-135)
iqRobot.fahre_gerade_aus(40,30)
iqRobot.drehe(90)
iqRobot.drehe(45)
# cm should be greater than real distance as we stop at color intensity
iqRobot.fahre_gerade_aus(cm=-50,speed=30, abstand_stop=89)
iqRobot.drehe(-90)
iqRobot.fahre_gerade_aus(12,30)
iqRobot.schaufel(-2200)
iqRobot.fahre_gerade_aus(-4,30)
@ -127,9 +128,10 @@ def backHome():
#iqRobot.schaufel(1600, speed=100 )
#iqRobot.schaufel(-1600, speed=100 )
# druckmaschine()
# hologram()
# augmented_reality()
iqRobot.schaufel(3000)
druckmaschine()
hologram()
augmented_reality()
#backHome()
#huenchenaufgabe()
@ -137,9 +139,10 @@ def backHome():
#wait_for_seconds(2)
while 0 == 0:
#while 0 == 0:
#print(iqRobot.abstandsSensor.get_distance_cm())
#print(iqRobot.farbSensor.get_reflected_light())
print(str(iqRobot.farbSensor.get_blue())+" "+str(iqRobot.farbSensor.get_green())+" "+str(iqRobot.farbSensor.get_red()))
wait_for_seconds(0.5)
#print(str(iqRobot.farbSensor.get_blue())+" "+str(iqRobot.farbSensor.get_green())+" "+str(iqRobot.farbSensor.get_red()))
#wait_for_seconds(0.5)
#print(str(iqRobot.abstandsSensor.get_distance_cm()))