Optische#
Einführung#
Der optische Sensor ist ein lichtbasierter Sensor, der reflektiertes Licht nutzt, um Objekte zu erkennen, Farben zu identifizieren und Helligkeit und Farbton zu messen.
Sie können auch die Helligkeit der internen Sensorbeleuchtung einstellen. Diese Funktionen eignen sich ideal für Programme, die in Echtzeit auf farbige Objekte, Lichtverhältnisse oder Sensordaten reagieren müssen.
Diese Seite verwendet optical_1 als Beispielnamen für den optischen Sensor. Ersetzen Sie diesen bei Bedarf durch Ihren eigenen Namen.
Nachfolgend finden Sie eine Liste aller Methoden:
Aktionen – Schalten Sie die LED des optischen Sensors ein oder aus.
set_light— Legt den Ein- oder Aus-Zustand der LED fest.
Mutatoren – Einstellungen für LED-Helligkeit und Objekterkennung anpassen.
set_light_power— Legt die Helligkeit der LED fest.object_detect_threshold— Legt den Schwellenwert für die Objekterkennung fest.
Getter – Lesen Objektpräsenz, Farbe, Helligkeit, Farbton, RGB-Wert und Sensorstatus.
is_near_object— Gibt zurück, ob sich ein erkanntes Objekt in der Nähe des optischen Sensors befindet.color— Gibt die am besten erkannte Farbübereinstimmung zurück.brightness— Gibt die Helligkeit eines erkannten Objekts zurück.hue— Gibt den Farbton eines erkannten Objekts zurück.rgb— Gibt die vom optischen Sensor erfassten RGB-Werte zurück.installed— Gibt zurück, ob ein optischer Sensor mit dem Gehirn verbunden ist.
Callback – Führt Code aus, wenn ein Objekt erkannt oder verloren geht.
object_detected— Registriert eine Funktion, die aufgerufen werden soll, wenn ein Objekt erkannt wird.object_lost— Registriert eine Funktion, die aufgerufen wird, wenn ein Objekt verloren geht.
Konstruktoren – Manuelle Initialisierung und Konfiguration eines optischen Sensors.
Optical— Erzeugt einen optischen Sensor.
Aktionen#
set_light#
set_light schaltet die LED des optischen Sensors ein, aus oder auf eine festgelegte Helligkeitsstufe.
Usage:
optical_1.set_light(state)
Parameter |
Beschreibung |
|---|---|
|
Der Zustand, in dem das Licht eingestellt werden soll, oder der Prozentsatz der Leistung im Bereich von 0 bis 100 %. Der Zustand kann einer der folgenden sein:
|
# Turn the LED on and off forever
while True:
optical_1.set_light(LedStateType.ON)
wait(0.5, SECONDS)
optical_1.set_light(LedStateType.OFF)
wait(0.5, SECONDS)
# Turn the LED on and off forever
while True:
optical_1.set_light(100)
wait(0.5, SECONDS)
optical_1.set_light(0)
wait(0.5, SECONDS)
Mutatoren#
set_light_power#
Mit dem Befehl set_light_power wird die Helligkeit der LED des optischen Sensors eingestellt. Falls die LED noch nicht leuchtet, wird sie durch diese Methode eingeschaltet.
Usage:
optical_1.set_light_power(value)
Parameter |
Beschreibung |
|---|---|
|
Die Leistungsstufe zum Einstellen der Lampe wird von 0 bis 100 in Prozent angegeben. |
# Turn the LED light on at different
# intensities
optical_1.set_light(LedStateType.ON)
wait(2, SECONDS)
optical_1.set_light_power(10)
wait(2, SECONDS)
optical_1.set_light_power(100)
object_detect_threshold#
Der Wert object_detect_threshold legt die Reichweite fest, in der der Sensor Objekte erkennen kann. Diese Methode gibt außerdem den neu festgelegten Schwellenwert zurück.
Zahlen, die näher an 255 liegen, deuten auf eine kleinere Spannweite hin, während Zahlen, die näher an 0 liegen, auf eine größere Spannweite hinweisen.
Usage:
optical_1.object_detect_threshold(value)
Parameter |
Beschreibung |
|---|---|
|
Eine Zahl im Bereich von 0 bis 255. Der Wert 0 gibt einfach den aktuellen Wert zurück. |
def detected():
# The Brain will print that an object was detected on
# the Brain's screen.
brain.screen.print("object detected")
brain.screen.next_row()
optical_1.object_detect_threshold(254)
optical_1.object_detected(detected_closer)
def detected_closer():
# Detect an object closer to the sensor.
brain.screen.print("Detected closer")
# Run detected when the Optical Sensor detects an object.
optical_1.object_detect_threshold(100)
optical_1.object_detected(detected)
# Detect an object first with the detect threshold at 100,
# then again at 254
stage = 0
def detected():
global stage
if stage == 0:
brain.screen.print("Get closer...")
brain.screen.next_row()
stage = 1
optical_1.object_detect_threshold(254)
optical_1.object_detected(detected_closer)
def detected_closer():
global stage
if stage == 1:
brain.screen.print("Too close!")
brain.screen.next_row()
stage = 2
optical_1.object_detect_threshold(100)
optical_1.object_detected(detected)
wait(15, MSEC)
Getter#
is_near_object#
is_near_object gibt an, ob sich der optische Sensor in der Nähe eines Objekts befindet.
True— Der Sensor befindet sich in der Nähe eines Objekts.False— Der Sensor befindet sich nicht in der Nähe eines Objekts.
Usage:
optical_1.is_near_object()
Parameter |
Beschreibung |
|---|---|
Diese Methode hat keine Parameter. |
# Stop driving when Optical Sensor is
# near an object
while True:
if optical_1.is_near_object():
drivetrain.stop()
else:
drivetrain.drive(FORWARD)
color#
color gibt die vom optischen Sensor aus den folgenden Farben erkannte vordefinierte Farbe zurück:
BLACKBLUECYANGREENORANGEPURPLEREDTRANSPARENTWHITEYELLOW
Usage:
optical_1.color()
Parameter |
Beschreibung |
|---|---|
Diese Methode hat keine Parameter. |
# Stop the robot if the Optical Sensor
# detects red
while True:
if optical_1.color() == Color.RED:
drivetrain.stop()
else:
drivetrain.turn(RIGHT)
brightness#
Helligkeit brightness.
Ein höherer Prozentsatz bedeutet, dass der optische Sensor mehr Licht erfasst. Ein niedrigerer Prozentsatz bedeutet, dass der optische Sensor weniger Licht erfasst.
Usage:
optical_1.brightness(readraw)
Parameter |
Beschreibung |
|---|---|
|
Optional. Ein boolescher Wert, um die Rohhelligkeitsdaten anstelle der Prozentwerte zu lesen:
|
hue#
hue gibt den vom optischen Sensor erfassten Farbton als Gleitkommazahl im Bereich von 0 bis 359,99 Grad zurück.
Der Farbton ist eine Methode, Farben mithilfe von Zahlen auf einem Farbkreis zu beschreiben, wie unten dargestellt.

Usage:
optical_1.hue()
Parameter |
Beschreibung |
|---|---|
Diese Methode hat keine Parameter. |
# Check the hue of a detected object
# to determine if it is pink
while True:
brain.screen.clear_screen()
brain.screen.set_cursor(1, 1)
if 290 < optical_1.hue() < 350:
brain.screen.print("Pink!")
wait(0.1,SECONDS)
else:
brain.screen.print("Not pink.")
wait(0.1,SECONDS)
rgb#
rgb gibt die vom optischen Sensor erfassten Rot-, Grün-, Blau- und Helligkeitswerte als Tupel zurück.
Usage:
optical_1.rgb(raw)
Parameter |
Beschreibung |
|---|---|
|
Optional. Ein boolescher Wert, der angibt, ob Rohwerte oder verarbeitete Werte zurückgegeben werden:
|
# Display the rgb values and brightness detected
# by the Optical Sensor.
brain.screen.set_font(FontType.MONO12)
while True:
brain.screen.clear_screen()
brain.screen.set_cursor(1, 1)
brain.screen.print(optical_1.rgb())
wait(0.1, SECONDS)
installed#
installed gibt einen booleschen Wert zurück, der angibt, ob der optische Sensor mit dem Gehirn verbunden ist.
True— Der optische Sensor ist mit dem Gehirn verbunden.False— Der optische Sensor ist nicht mit dem Gehirn verbunden.
Usage:
optical_1.installed()
Parameter |
Beschreibung |
|---|---|
Diese Methode hat keine Parameter. |
# Display a message if the Optical Sensor
# is installed.
if optical_1.installed():
brain.screen.print("Installed!")
Rückruf#
object_detected#
object_detected registriert eine Rückruffunktion, die aufgerufen wird, wenn ein Objekt erkannt wird.
Usage:
optical_1.object_detected(callback, arg)
Parameter |
Beschreibung |
|---|---|
|
Eine Funktion, die zuvor definiert wurde und ausgeführt wird, wenn ein Objekt erkannt wird. |
|
Optional. Ein Tupel mit Argumenten, die an die Callback-Funktion übergeben werden sollen. Weitere Informationen finden Sie unter Funktionen mit Parametern. |
def detected():
drivetrain.stop()
brain.screen.set_cursor(1, 1)
brain.screen.print("object detected")
wait(0.5,SECONDS)
brain.screen.clear_screen()
# Display a message when the
# Optical Sensor detects an object
drivetrain.drive(FORWARD)
optical_1.object_detected(detected)
object_lost#
object_lost registriert eine Rückruffunktion, die ausgelöst wird, wenn der optische Sensor ein erkanntes Objekt verliert.
Usage:
optical_1.object_lost(callback, arg)
Parameter |
Beschreibung |
|---|---|
|
Eine Funktion, die zuvor definiert wurde und ausgeführt werden soll, wenn ein Objekt verloren geht. |
|
Optional. Ein Tupel mit Argumenten, die an die Callback-Funktion übergeben werden sollen. Weitere Informationen finden Sie unter Funktionen mit Parametern. |
def lost():
drivetrain.stop()
brain.screen.set_cursor(1, 1)
brain.screen.print("object lost")
wait(0.5,SECONDS)
brain.screen.clear_screen()
# Display a message when the Optical
# Sensor loses sight of on object
drivetrain.drive(REVERSE)
optical_1.object_lost(lost)
Konstruktoren#
Konstruktoren werden verwendet, um manuell Optical Objekte zu erstellen, die für die Konfiguration eines optischen Sensors außerhalb von VEXcode erforderlich sind.
Optical#
Optical erzeugt einen optischen Sensor.
Usage:
Optical(smartport)
Parameter |
Beschreibung |
|---|---|
|
Der Smart Port, an den der optische Sensor angeschlossen ist, wird als PORTx bezeichnet, wobei x die Nummer des Ports ist. |
# Construct an Optical Sensor "optical_1" with the
# Optical class
optical_1 = Optical(Ports.PORT1)
# Display the brightness of a red object detected
# by the Optical Sensor
drivetrain.turn(RIGHT)
while not optical_1.color() == Color.RED:
wait(50, MSEC)
drivetrain.stop()
brain.screen.print(optical_1.brightness())