Neue Stop Optionen in der Geradefahrfunktion: Farbintensität und Abstand.
This commit is contained in:
parent
714d50e996
commit
7abd2bbd3f
2 changed files with 31 additions and 14 deletions
20
iqrobot.py
20
iqrobot.py
|
@ -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
|
||||
|
@ -139,6 +139,20 @@ class IQRobot:
|
|||
|
||||
# wiederhole solange die gefahrene Strecke noch nicht erreicht ist
|
||||
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
23
main.py
|
@ -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()))
|
||||
|
||||
|
|
Loading…
Reference in a new issue