Optischer Sensor#

Einführung#

Die optische Klasse optical dient dem Zugriff auf Daten des optischen Sensors. 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 oder nicht.

  • colorname — Returns the color detected by the Optical Sensor.

  • 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:

/* This constructor is required when using VS Code.
Optical Sensor configuration is generated automatically
in VEXcode using the Device Menu. Replace the values
as needed. */

// 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

Schaltet die LED ein oder aus. ledState::on schaltet die LED mit 100 % Helligkeit ein. ledState::off schaltet sie aus.

Return Values

Diese Funktion gibt keinen Wert zurück.

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

setLightPower#

Legt die Helligkeit des Lichts des optischen Sensors fest. Das Licht kann dem optischen Sensor helfen, Objekte und Farben deutlicher zu erkennen.

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

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.

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 zurück, ob der optische Sensor ein Objekt innerhalb der Reichweite erkennt oder nicht.

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 — Ein Objekt wurde in der Nähe erkannt.

  • false — Es wurde kein Objekt erkannt.

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

colorname#

Gibt die vom optischen Sensor anhand des ermittelten Farbtons erkannte Farbe zurück.

Available Functions
vex::colorType  colorname();

Parameters

Diese Funktion akzeptiert keine Parameter.

Return Values

Die vom optischen Sensor als Instanz der Farbklasse erkannte Farbe.

Mögliche Farben sind:

  • blue – Farbtonwert zwischen 196° und 229°

  • blue_green – Farbtonwert zwischen 140° und 195°

  • blue_violet – Farbtonwert zwischen 230° und 239°

  • green – Farbtonwert zwischen 84° und 139°

  • orange – Farbtonwert zwischen 21° und 30°

  • red – Farbtonwert zwischen 350° und 14°

  • red_orange – Farbtonwert zwischen 15° und 20°

  • red_violet – Farbtonwert zwischen 281° und 350°

  • violet – Farbtonwert zwischen 240° und 280°

  • yellow – Farbtonwert zwischen 54° und 74°

  • yellow_green – Farbtonwert zwischen 75° und 83°

  • yellow_orange – Farbtonwert zwischen 31° und 53°

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

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

brightness#

Gibt an, wie viel Licht zum optischen Sensor zurückreflektiert wird.

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 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 vom optischen Sensor erfassten Farbton 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 Gleitkommawert, der den vom optischen Sensor erfassten Farbton im Bereich 0 – 359,00 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())

// Called when the Optical Sensor detects an object
void detected() {
  // The Brain will print that the Optical Sensor detected an
  // object to the Brain's screen.
  Brain.Screen.print("object detected");
}

Registriere den Callback innerhalb von int main()

/* vexcodeInit() is only required when using VEXcode.
Remove vexcodeInit() if compiling in VS Code. */
int main() {

  // Run 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())

// Called when the Optical Sensor loses an object
void lost() {
  // The Brain will print that the Optical Sensor lost an
  // object to the Brain's screen.
  Brain.Screen.print("object lost");
}

Registriere den Callback innerhalb von int main()

/* vexcodeInit() is only required when using VEXcode.
Remove vexcodeInit() if compiling in VS Code. */
int main() {

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