Optischer Sensor#

Einführung#

Die optische Klasse optical dient dem Zugriff auf Daten des optischen Sensors V5. Sie nutzt reflektiertes Licht, um Objekte zu erkennen, Farben zu identifizieren und Helligkeit und Farbton zu messen.

Klassenkonstruktor#

optical Optical = optical(index);

Klassendestruktor#

Zerstört das optische Objekt optical.

virtual ~optical();

Parameter#

Parameter

Typ

Beschreibung

index

int32_t

Der Smart Port, an den der optische Sensor angeschlossen ist, wird als PORTxgeschrieben, wobei x die Portnummer ist (zum Beispiel PORT1).

Beispiele#

// Create an optical instance in Port 1
optical Optical1 = optical(PORT1);

Mitgliedsfunktionen#

Die optische Klasse optical umfasst die folgenden Memberfunktionen:

  • setLight — Schaltet die LED des optischen Sensors ein oder aus.

  • setLightPower — Legt die Lichtleistungsstufe des optischen Sensors fest.

  • isNearObject — 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.

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

  • objectLost — Registriert eine Funktion, die aufgerufen wird, wenn der optische Sensor ein Objekt verliert.

Bevor optical Memberfunktionen aufgerufen werden können, muss eine optical Instanz erstellt werden, wie unten gezeigt:

// Create an optical object in Port 1
optical Optical1 = optical(PORT1);

setLight#

Schaltet die LED des optischen Sensors ein oder aus. Das Licht kann dem optischen Sensor helfen, Objekte und Farben deutlicher zu erkennen.

Available Functions
void  setLight(ledState state);

Parameters

Parameter

Typ

Beschreibung

state

ledState

Sets the LED on or off. ledState::on turns the LED on at 100% brightness. ledState::off turns it off.

Return Values

Diese Funktion gibt keinen Wert zurück.

Examples
// Turn on LED with previous intensity.
Optical.setLight(ledState::on);

setLightPower#

Stellt die Helligkeit der LED des optischen Sensors ein. 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.

Available Functions
void setLightPower( 
      int32_t      intensity, 
      percentUnits units = percent );

Parameters

Parameter

Typ

Beschreibung

intensity

int32_t

Die Leistungsstufe zum Einstellen der Lampe von 0 – 100.

units

percentUnits

The unit that represents the light intensity: percent / pct — percent

Return Values

Diese Funktion gibt keinen Wert zurück.

Examples
// Set the light power to 50 percent.
Optical.setLightPower(50, percent);

isNearObject#

Gibt einen Wert zurück, wenn der optische Sensor ein Objekt in der Nähe erkennt.

Available Functions
bool  isNearObject();

Parameters

Diese Funktion akzeptiert keine Parameter.

Return Values

Diese Funktion gibt einen booleschen Wert zurück, der angibt, ob ein Objekt in der Nähe erkannt wurde:

  • true – Der optische Sensor erkennt ein Objekt.

  • false – Der optische Sensor erkennt kein Objekt.

Examples
// If an object is detected by the Optical Sensor, print
// "near object".
if (Optical.isNearObject()){
  Brain.Screen.print("near object");
}

color#

Gibt die vom optischen Sensor erfasste Farbe zurück.

Available Functions
vex::color  color();

Parameters

Diese Funktion akzeptiert keine Parameter.

Return Values

Die vom optischen Sensor als Instanz der Farbklasse erkannte Farbe.

Mögliche Farben sind:

  • black

  • white

  • red - Ein Farbtonwert zwischen 340° und 20°

  • green – Ein Farbtonwert zwischen 80° und 140°

  • blue - Ein Farbtonwert zwischen 200° und 240°

  • yellow – Ein Farbtonwert zwischen 40° und 60°

  • orange - Ein Farbtonwert zwischen 20° und 40°

  • purple - Ein Farbtonwert zwischen 240° und 280°

  • cyan - Ein Farbtonwert zwischen 140° und 200°

Examples
// Set a variable, detectColor, to the color detected by the
// Optical Sensor
color detectColor = Optical.color();

// Print the color detected by the Optical Sensor
// to the Brain's screen
Brain.Screen.print(detectColor);

brightness#

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

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

Available Functions
double  brightness(bool bRaw = false);

Parameters

Parameter

Typ

Beschreibung

bRaw

bool

Ein boolescher Wert, um Rohhelligkeitsdaten anstelle von Prozentwerten auszulesen. Der Standardwert ist false.

Return Values

Ein Double-Wert, der die vom optischen Sensor erfasste Helligkeit als Double-Wert im Bereich von 0 bis 100 % darstellt, oder ein Double-Wert, der die vom Sensor erfassten Rohdaten darstellt.

Examples
// Set a variable, brightness, to the value of the brightness
// detected by the Optical Sensor
double brightness = Optical.brightness();

// Print the brightness detected by the Optical Sensor to the
// Brain's screen
Brain.Screen.print(brightness);

hue#

Gibt den Farbtonwert der erkannten Farbe 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.

Available Functions
double hue();

Parameters

Diese Funktion akzeptiert keine Parameter.

Return Values

Ein Double-Wert, der den vom optischen Sensor erfassten Farbton im Bereich 0 – 359,99 darstellt.

Examples
// Set a variable, hue, to the value of the hue detected
// by the Optical Sensor.
double hue = Optical.hue();

objectDetected#

Registriert eine Callback-Funktion, die aufgerufen wird, wenn ein Objekt erkannt wird.

Available Functions
void objectDetected(void (* callback)(void));

Parameters

Parameter

Typ

Beschreibung

callback

void (*)(void)

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

Return Values

Diese Funktion gibt keinen Wert zurück.

Examples

Definiere die Callback-Funktion (außerhalb von int main())

// Display a message when the Optical Sensor detects an object.
void detected() {
  Brain.Screen.print("object detected");
}

Registriere den Callback innerhalb von int main()

int main() {
  // Run detected when the Optical Sensor detects an object.
  Optical.objectDetected(detected);
}

objectLost#

Registriert eine Rückruffunktion, die aufgerufen wird, wenn ein Objekt verloren geht.

Available Functions
void objectLost(void (* callback)(void));

Parameters

Parameter

Typ

Beschreibung

callback

void (*)(void)

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

Return Values

Diese Funktion gibt keinen Wert zurück.

Examples

Definiere die Callback-Funktion (außerhalb von int main())

// Display a message when the Optical Sensor loses an object.
void lost() {
  Brain.Screen.print("object lost");
}

Registriere den Callback innerhalb von int main()

int main() {
  // Run lost when the Optical Sensor loses an object.
  Optical.objectLost(lost);
}