Optischer Sensor#

Einführung#

Der optische Sensor V5 erkennt Farbe, Helligkeit und Anwesenheit von Objekten in der Nähe mithilfe einer Kombination aus RGB-Farbsensor und Näherungssensor. Zur präziseren Erkennung kann er Objekte auch mit seiner integrierten LED beleuchten.

Der optische Sensor VEX V5.

Diese Seite verwendet optical_sensor als Beispielnamen für den optischen Sensor. Ersetzen Sie diesen bei Bedarf durch Ihren eigenen, konfigurierten Namen.

Nachfolgend finden Sie eine Liste der verfügbaren Methoden:

  • set_light – Schaltet die LED des optischen Sensors ein oder aus.

  • set_light_power – Legt die Lichtleistungsstufe des optischen Sensors fest.

  • is_near_object – Gibt zurück, ob der optische Sensor ein Objekt in Reichweite erkennt.

  • color – Gibt die vom optischen Sensor erkannte Farbe zurück.

  • brightness – Gibt die Menge des vom Objekt reflektierten Lichts zurück.

  • hue – Gibt den vom optischen Sensor erfassten Farbton zurück.

  • object_detected – Registriert eine Funktion, die aufgerufen werden soll, wenn der optische Sensor ein Objekt erkennt.

  • object_lost – Registriert eine Funktion, die aufgerufen werden soll, wenn der optische Sensor ein Objekt verliert.

Konstruktor – Optischen Sensor manuell initialisieren.

  • Optical – Erzeugt einen optischen Sensor.

set_light#

Mit dem Befehl set_light wird die LED des optischen Sensors ein- oder ausgeschaltet. Dies kann die Genauigkeit des Sensors bei der Farberkennung verbessern.

Usage:
optical_sensor.set_light(state)

Parameter

Beschreibung

Zustand

Sets the LED on or off. LEDStateType.ON turns the light on at 100% brightness. LEDStateType.OFF turns it off.

# Turn on the sensor's LED
optical_sensor.set_light(LEDStateType.ON)

set_light_power#

set_light_power wird die Helligkeit der LED des optischen Sensors eingestellt. Das Licht kann dem optischen Sensor helfen, Objekte und Farben deutlicher zu erkennen.

Wenn die Kontrollleuchte des optischen Sensors ausgeschaltet ist, schaltet sich die Kontrollleuchte ein, wenn die Lichtleistung über 0 % eingestellt wird.

Wenn die Kontrollleuchte des optischen Sensors eingeschaltet ist, schaltet das Einstellen der Lichtleistung auf 0 % die Kontrollleuchte aus.

Ein höherer Prozentsatz macht das Licht heller. Ein niedrigerer Prozentsatz macht das Licht dunkler.

Usage:
optical_sensor.set_light_power(percent, units)

Parameter

Beschreibung

Prozent

Die Helligkeit, auf die die LED eingestellt werden soll, als ganze Zahl.

Einheiten

Optional. Die Einheit zur Darstellung der Helligkeit: PERCENT

# Turn on the sensor's light at half brightness
optical_sensor.set_light_power(50, PERCENT)

is_near_object#

is_near_object gibt einen booleschen Wert zurück, der angibt, ob der optische Sensor ein Objekt in Reichweite erkennt oder nicht.

  • True – Der optische Sensor erkennt ein Objekt.

  • False – Der optische Sensor erkennt kein Objekt.

Usage:
optical_sensor.is_near_object()

Parameter

Beschreibung

Diese Methode hat keine Parameter.

# Drive forward until an object is found
drivetrain.drive(FORWARD)
while not optical_sensor.is_near_object():
  pass
drivetrain.stop()

Farbe#

color returns an instance of a Color class, based on the detected hue value. These can be compared to predefined Color objects to create conditional statements.

Mögliche Farben sind:

  • Color.BLACK

  • Color.WHITE

  • Color.RED - Ein Farbtonwert zwischen 340° und 20°

  • Color.GREEN - Ein Farbtonwert zwischen 80° und 140°

  • Color.BLUE - Ein Farbtonwert zwischen 200° und 240°

  • Color.YELLOW - Ein Farbtonwert zwischen 40° und 60°

  • Color.ORANGE - Ein Farbtonwert zwischen 20° und 40°

  • Color.PURPLE - Ein Farbtonwert zwischen 240° und 280°

  • Color.CYAN - Ein Farbtonwert zwischen 140° und 200°

Hinweis: Der optische Sensor sucht nach Farbtonbereichen, die der angegebenen Farbe entsprechen. Informationen zur Erkennung spezifischer Farbtonbereiche finden Sie unter hue.

Usage:
optical_sensor.color()

Parameter

Beschreibung

Diese Methode hat keine Parameter.

# Drive forward until red is found
drivetrain.drive(FORWARD)
while not optical_sensor.color() == Color.RED:
  pass
drivetrain.stop()

Helligkeit#

brightness gibt die Menge des vom Objekt reflektierten Lichts als Dezimalzahl (float) zurück, die einen Prozentwert darstellt.

Ein höherer Prozentsatz bedeutet, dass mehr Licht zum optischen Sensor zurückreflektiert wird. Ein niedrigerer Prozentsatz bedeutet, dass weniger Licht zurückreflektiert wird.

Usage:
optical_sensor.brightness()

Parameter

Beschreibung

Diese Methode hat keine Parameter.

Farbton#

hue gibt den Farbtonwert der erkannten Farbe als Dezimalzahl (float) von 0 bis 359 zurück.

Der Farbton ist eine Methode, Farben mithilfe von Zahlen auf einem Farbkreis zu beschreiben.

Das VEX-Farbrad zeigt die Farbabstufungen auf einem Kreis, wobei Rot bei 0 Grad liegt und die Farben mit zunehmendem Wert in den Regenbogen übergehen.

Usage: optical_sensor.hue()

Parameter

Beschreibung

Diese Methode hat keine Parameter.

# Look for the color pink using hue
while True:
  brain.screen.clear_screen()
  brain.screen.set_cursor(1, 1)

  if 300 < optical_sensor.hue() < 359:
    brain.screen.print("This is pink!")
  else:
    brain.screen.print("No pink detected!")

Objekt_erkannt#

object_detected registriert eine Funktion, die aufgerufen wird, sobald der optische Sensor ein neues Objekt erkennt.

Usage:
optical_sensor.object_detected(callback, arg)

Parameter

Beschreibung

callback

Eine zuvor definierte Funktion, die ausgeführt wird, wenn der optische Sensor ein neues Objekt erkennt.

arg

Optional. Ein Tupel mit Argumenten, die an die Callback-Funktion übergeben werden sollen. Weitere Informationen finden Sie unter Verwendung von Funktionen mit Parametern.

def my_function():
  brain.screen.print("Optical Sensor detected an object")

# Call my_function whenever optical_sensor detects an object
optical_sensor.object_detected(my_function)

Objekt verloren#

object_lost registriert eine Funktion, die aufgerufen wird, wenn der optische Sensor ein erkanntes Objekt verliert.

Usage:
optical_sensor.object_lost(callback, arg)

Parameter

Beschreibung

callback

Eine zuvor definierte Funktion, die ausgeführt wird, wenn der optische Sensor ein erkanntes Objekt verliert.

arg

Optional. Ein Tupel mit Argumenten, die an die Callback-Funktion übergeben werden sollen. Weitere Informationen finden Sie unter Verwendung von Funktionen mit Parametern.

def my_function():
  brain.screen.print("Optical Sensor lost an object")

# Call my_function whenever optical_sensor loses an object
optical_sensor.object_lost(my_function)

Konstruktor#

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

smartport

Der Smart Port, an den der optische Sensor angeschlossen ist, wird als Ports.PORTx geschrieben, wobei x die Nummer des Ports ist.

# Create an Optical Sensor in Port 10
optical_sensor = Optical(Ports.PORT10)