Optischer Sensor#
Einführung#
Die optische Klasse optical dient dem Zugriff auf Daten des EXP-Optiksensors. Sie nutzt reflektiertes Licht, um Objekte zu erkennen, Farben zu identifizieren und Helligkeit und Farbton zu messen.
Klassenkonstruktoren#
optical(
int32_t index );
Klassendestruktor#
Zerstört das optische Objekt optical.
virtual ~optical();
Parameter#
Parameter |
Typ |
Beschreibung |
|---|---|---|
|
|
Der Smart Port, an den der optische Sensor angeschlossen ist, wird als |
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:
/* 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 instance
optical Optical1 = optical(
PORT1); // Smart Port 1
setLight#
Schaltet die LED des optischen Sensors ein oder aus. Das Licht kann dem optischen Sensor helfen, Objekte und Farben deutlicher zu erkennen.
Available Functionsvoid setLight(ledState state);
Parameter |
Typ |
Beschreibung |
|---|---|---|
|
|
Sets the LED on or off. |
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 Functionsvoid setLightPower(
int32_t intensity,
percentUnits units = percent );
Parameter |
Typ |
Beschreibung |
|---|---|---|
|
|
Die Leistungsstufe zum Einstellen der Lampe von 0 – 100. |
|
|
The unit that represents the light intensity: |
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 Functionsbool isNearObject();
Diese Funktion akzeptiert keine Parameter.
Return ValuesDiese 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.
// 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 Functionsvex::color color();
Diese Funktion akzeptiert keine Parameter.
Return ValuesDie vom optischen Sensor als Instanz der Farbklasse erkannte Farbe.
Mögliche Farben sind:
blackwhitered- 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°
// 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 Functionsdouble brightness(bool bRaw = false);
Parameter |
Typ |
Beschreibung |
|---|---|---|
|
|
Ein boolescher Wert, um Rohhelligkeitsdaten anstelle von Prozentwerten auszulesen. Der Standardwert ist |
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.

double hue();
Diese Funktion akzeptiert keine Parameter.
Return ValuesEin 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 Functionsvoid objectDetected(void (* callback)(void));
Parameter |
Typ |
Beschreibung |
|---|---|---|
|
|
Eine zuvor definierte Funktion, die ausgeführt wird, wenn der optische Sensor ein neues Objekt erkennt. |
Diese Funktion gibt keinen Wert zurück.
ExamplesDefiniere 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 Functionsvoid objectLost(void (* callback)(void));
Parameter |
Typ |
Beschreibung |
|---|---|---|
|
|
Eine zuvor definierte Funktion, die ausgeführt wird, wenn der optische Sensor ein erkanntes Objekt verliert. |
Diese Funktion gibt keinen Wert zurück.
ExamplesDefiniere 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); }