Inhaltsverzeichnis

Sensoren

Farbsensor

Der Farbsensor registriert optische Grössen wie Helligkeit, Reflexion oder Farbanteile. Das Programm gibt diese Grössen über das Display des EV3-Bricks wieder aus.

Beispiel: Ausgabe aller Messswerte auf dem Display des EV-Bricks

Die Funktion color() gibt – falls möglich - eine Konstante mit dem Farbwert zurück. Die möglichen Werte lauten

Falls keine Farbe erkannt wird, lautet der Wert None.

Farbe abfragen

Sie können mit einen normalen IF nach einer Farbe fragen, z.B.:

if color_sensor.Color() == Color.BLUE:

Die Hintergrundbeleuchtung der EV3-Buttons kann übrigens mit der Funktion light() in den Farben Rot, Grün und Gelb leuchten. Die Funktion rgb() gibt ein 3-Tupel zurück. Das ist vergleichbar mit einer 3-elementigen Liste. Das erste Element entspricht dem Rot-Wert, das zweite dem Grün- und das dritte dem Blau-Wert.

Die Funktionen ambient() und reflection() messen die Helligkeit bzw. die Reflexionseigenschaft und geben diese als Zahl zwischen 0 und 100 zurück.

Beispielprogramm

#!/usr/bin/env pybricks-micropython
from pybricks.hubs import EV3Brick
from pybricks.ev3devices import (Motor, TouchSensor, ColorSensor, InfraredSensor, UltrasonicSensor, GyroSensor)
from pybricks.parameters import Port, Stop, Direction, Button, Color
from pybricks.tools import wait, StopWatch, DataLog
from pybricks.robotics import DriveBase
from pybricks.media.ev3dev import SoundFile, ImageFile
from pybricks.media.ev3dev import Font
 
ev3 = EV3Brick()
color_sensor = ColorSensor(Port.S1)
 
font = Font(size=15)
ev3.screen.set_font(font)
 
while True:
    farbe = color_sensor.color()           # Farbe einlesen
    farbanteile = color_sensor.rgb()       # Farbanteile einlesen (3-Tupel)
    helligkeit = color_sensor.ambient()    # Helligkeit einlesen (0-100)
    reflexion = color_sensor.reflection()  # Reflexion einlesen (0-100)
 
    ev3.light.on(farbe)                    # EV3-Button leuchten lassen
    ev3.screen.clear()
    ev3.screen.print("Farbe:", farbe)      # diverse Angaben anzeigen
    ev3.screen.print("Rot: " + str(farbanteile[0]))
    ev3.screen.print("Gruen: " + str(farbanteile[1]))
    ev3.screen.print("Blau: " + str(farbanteile[2]))
    ev3.screen.print("Helligkeit: " + str(helligkeit))
    ev3.screen.print("Reflexion: " + str(reflexion))
 
    wait(500)                              # 1/2 Sekunde warten

Weitere Informationen zum Farbsensor findest du unter Docs>Color Sensor.

Versuchsaufbau

Display-Anzeige

Ein Braunton einer Tischblatte im O-119 erscheint auf dem Display beispielsweise so: