Python Online | Home   . |
DU LERNST HIER... |
der Roboter mit seinem Colorsensor die Farben der Unterlage erkennen kann |
WIE FUNKTIONIERT EIN COLORSENSOR |
|
Die RGB-Werte, die der Sensor misst, sind abhängig von der Umgebungsbeleuchtung und von der Entfernung zum Objekt. Die besten Ergebnisse erreicht man in einer Entfernung von 2-5 Millimeter. |
MUSTERBEISPIELE |
Programm: from grobot import * setSpeed(20) forward() while not button_escape.was_pressed(): c = cs3.getColor() drawString(c, 1, 1) delay(100) exit()
Beispiel 2: Farben und Sound
In deinem Beispiel bewegt sich der Roboter hin und her auf einem Farbstreifen und spielt für jede Farbe einen anderen Ton ab. Da der Sensor alle 100 ms eine Messung vornimmt, muss du in deinem Programm dafür sorgen, dass der Ton nur dann abgespielt wird, wenn er eine neue Farbe sieht. Dazu verwendest du die Variable oldColor, in der du jeweils den aktuellen Farbwert speicherst. Ein Ton wird nur dann abgespielt, wenn eine neue Farbe erkannt wird (color != oldColor). Im realen Modus musst du die Geschwindigkeit reduzieren. Programm: from grobot import * #setSpeed(5) oldColor = "UNDEFINED" while not button_escape.was_pressed(): color = cs3.getColor() if (color != oldColor): oldColor = color if color == "BLACK": playTone(264, 500) forward() elif color == "BLUE": playTone(297, 500) elif color == "GREEN": playTone(330, 500) elif color == "YELLOW": playTone(352, 500) elif color == "RED": playTone(396, 500) backward() drawString(color, 1, 1) delay(100) exit()
Programm: from grobot import * setSpeed(20) forward() while not button_escape.was_pressed(): c = cs3.getColorRGB() drawString(c, 1, 1) delay(300) exit() Bei einer ähnlichen Vorlage wie auf dem oberen Bild, erhältst du etwa folgende Werte:
Programm: from grobot import * setSpeed(10) while not button_escape.was_pressed(): c = cs3.getColorRGB() if c[0] < 10 and c[1] < 10 and c[2] < 10: forward() if c[0] < 10 and c[1] > 15: leftArc(0.06) if c[0] > 50 and c[1] > 35: rightArc(0.06) delay(10) exit()
|
MERKE DIR... |
Mit cs3.getColor() erkennt der am Port 3 angeschlossene Colorsensor die Grundfarben RED, BLUE, YELLOW, GREEN, BLACK und WHITE. Mit cs3.getColorRBG() gibt der Colorsensor die drei Farbkomponenten als Liste zurück. Der Colorsensor muss sich im Abstand 2 - 5 mm von der Farbfläche befinden. |
ZUM SELBST LÖSEN |
|
![]() |
![]() |
![]() |