Hallo!
Ich habe mit python (mblock) einen code für den mbot2 erstellt, wo anhand der rgb Sensoren der mbot2 einer Schwarzen Linie folgen soll und bei rot er kurz stehen bleiben soll. Ich habe dazu den beigelegten Plan verwendet wo in der schwarzen Linie Markierungen von rot, gelb, grün, blau vorhanden sind.
Wenn ich nur das Auslesen der Farben verwende, werden die Farben yellow, green, blue, red recht gut erkannt, aber wenn ich dies im Linienverfolger einbaue, wird rot kaum erkannt, bzw. recht spät oder es passiert oft dass rot auch erkannt wird, wenn er auf der schwarzen Linie fährt.
Hier mein Code für den Linienverfolger
Hier mein Code nur mit rgb der recht gut funktioniert
Vielleicht kann mir jemand weiterhelfen.
Danke
Ich habe mit python (mblock) einen code für den mbot2 erstellt, wo anhand der rgb Sensoren der mbot2 einer Schwarzen Linie folgen soll und bei rot er kurz stehen bleiben soll. Ich habe dazu den beigelegten Plan verwendet wo in der schwarzen Linie Markierungen von rot, gelb, grün, blau vorhanden sind.
Wenn ich nur das Auslesen der Farben verwende, werden die Farben yellow, green, blue, red recht gut erkannt, aber wenn ich dies im Linienverfolger einbaue, wird rot kaum erkannt, bzw. recht spät oder es passiert oft dass rot auch erkannt wird, wenn er auf der schwarzen Linie fährt.
Hier mein Code für den Linienverfolger
Python:
import cyberpi, mbot2, mbuild, time
float_m1_start = 20
float_m2_start = 20
int_sollwert = 50
float_p = 0.5
while True:
str_s1 = mbuild.quad_rgb_sensor.get_color_sta(1)
str_s2 = mbuild.quad_rgb_sensor.get_color_sta(2)
str_s3 = mbuild.quad_rgb_sensor.get_color_sta(3)
str_s4 = mbuild.quad_rgb_sensor.get_color_sta(4)
if str_s1 == "red" or str_s2 == "red" or str_s3 == "red" or str_s4=="red":
mbot2.EM_stop()
time.sleep(2)
mbot2.EM_set_speed(20, 1)
mbot2.EM_set_speed(-20, 2)
time.sleep(0.5)
else:
int_s2 = mbuild.quad_rgb_sensor.get_gray(2)
int_fehler = int_sollwert - int_s2
float_m1 = float_m1_start + int_fehler * float_p
float_m2 = float_m2_start - int_fehler * float_p
mbot2.EM_set_speed(float_m1,1)
mbot2.EM_set_speed(-float_m2,2)
Hier mein Code nur mit rgb der recht gut funktioniert
Python:
import cyberpi, mbuild
while True:
str_s1 = mbuild.quad_rgb_sensor.get_color_sta(1)
str_s2 = mbuild.quad_rgb_sensor.get_color_sta(2)
str_s3 = mbuild.quad_rgb_sensor.get_color_sta(3)
str_s4 = mbuild.quad_rgb_sensor.get_color_sta(4)
str_ausgabe = "Farbwerte\n\n"
str_ausgabe = str_ausgabe + "S1: " + str_s1 + "\n"
str_ausgabe = str_ausgabe + "S2: " + str_s2 + "\n"
str_ausgabe = str_ausgabe + "S3: " + str_s3 + "\n"
str_ausgabe = str_ausgabe + "S4: " + str_s4 + "\n"
cyberpi.display.show_label(str_ausgabe,16,0,0)
Vielleicht kann mir jemand weiterhelfen.
Danke