Optický senzor#
Zavedení#
Optická třída optical se používá pro přístup k datům z optického senzoru. Využívá odražené světlo k detekci objektů, identifikaci barev a měření jasu a odstínu.
Konstruktor třídy#
optical Optical = optical(index);
Destruktor tříd#
Zničí optický objekt optical a uvolní související zdroje.
virtual ~optical();
Parametry#
Parametr |
Typ |
Popis |
|---|---|---|
|
|
Inteligentní port, ke kterému je připojen optický senzor, zapsaný jako |
Příklady#
// Create an optical instance in Port 1
optical Optical1 = optical(PORT1);
Členské funkce#
Třída optical obsahuje následující členské funkce:
setLight— Zapíná nebo vypíná LED diodu optického senzoru.setLightPower— Nastaví úroveň světelného výkonu optického senzoru.isNearObject— Vrací, zda optický senzor detekuje objekt v dosahu.color— Vrátí barvu detekovanou optickým senzorem.brightness— Vrátí množství světla odraženého od objektu.hue— Vrátí odstín detekovaný optickým senzorem.objectDetected— Registruje funkci, která má být volána, když optický senzor detekuje objekt.objectLost— Registruje funkci, která se má volat, když optický senzor ztratí objekt.
Před voláním jakékoli členské funkce optical musí být vytvořena instance optical , jak je znázorněno níže:
/* 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#
Zapíná nebo vypíná LED diodu optického senzoru. Světlo může pomoci optickému senzoru jasněji detekovat objekty a barvy.
Available Functionsvoid setLight(ledState state);
Parametr |
Typ |
Popis |
|---|---|---|
|
|
Zapne nebo vypne LED. |
Tato funkce nevrací hodnotu.
Examples// Turn on LED with previous intensity.
Optical.setLight(ledState::on);
setLightPower#
Nastavuje jas světla optického senzoru. Světlo může pomoci optickému senzoru jasněji detekovat objekty a barvy.
Vyšší procento světlo zesílí. Nižší procento světlo ztlumí.
Pokud je světlo optického senzoru vypnuté, nastavení výkonu světla nad 0 % světlo zapne.
Pokud svítí světlo optického senzoru, nastavení výkonu světla na 0 % světlo vypne.
Available Functionsvoid setLightPower(
int32_t intensity,
percentUnits units = percent );
Parametr |
Typ |
Popis |
|---|---|---|
|
|
Úroveň výkonu pro nastavení světla od 0 do 100. |
|
|
Jednotka, která vyjadřuje intenzitu světla: |
Tato funkce nevrací hodnotu.
Examples// Set the light power to 50 percent.
Optical.setLightPower(50, percent);
isNearObject#
Vrací, zda optický senzor detekuje objekt v dosahu.
Available Functionsbool isNearObject();
Tato funkce nepřijímá žádné parametry.
Return ValuesTato funkce vrací booleovskou hodnotu, která indikuje, zda byl detekován blízký objekt:
true— V blízkosti je detekován objekt.false— Objekt nebyl detekován.
// If an object is detected by the Optical Sensor, print
// "near object".
if (Optical.isNearObject()){
Brain.Screen.print("near object");
}
color#
Vrátí barvu detekovanou optickým senzorem na základě detekované hodnoty odstínu.
Available Functionsvex::color color();
Tato funkce nepřijímá žádné parametry.
Return ValuesBarva detekovaná optickým senzorem jako instance třídy color class.
Možné barvy jsou:
blue– Hodnota odstínu mezi 196° a 229°blue_green– Hodnota odstínu mezi 140° a 195°blue_violet– Hodnota odstínu mezi 230° a 239°green– Hodnota odstínu mezi 84° a 139°orange– Hodnota odstínu mezi 21° a 30°red– Hodnota odstínu mezi 350° a 14°red_orange– Hodnota odstínu mezi 15° a 20°red_violet– Hodnota odstínu mezi 281° a 350°violet– Hodnota odstínu mezi 240° a 280°yellow– Hodnota odstínu mezi 54° a 74°yellow_green– Hodnota odstínu mezi 75° a 83°yellow_orange– Hodnota odstínu mezi 31° a 53°
// 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#
Vrací množství světla odraženého zpět k optickému senzoru.
Vyšší procento znamená, že se zpět k optickému senzoru odráží více světla. Nižší procento znamená, že se zpět odráží méně světla.
Available Functionsdouble brightness(bool bRaw = false);
Parametr |
Typ |
Popis |
|---|---|---|
|
|
Logická hodnota pro čtení nezpracovaných dat jasu namísto procent. Výchozí hodnota je |
Dvojitá hodnota představující jas detekovaný optickým senzorem v rozsahu 0–100 % nebo dvojitá hodnota představující nezpracovaná data detekovaná senzorem.
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#
Vrátí odstín detekovaný optickým senzorem.
Odstín je způsob, jak popsat barvu pomocí čísel v barevném kruhu.

double hue();
Tato funkce nepřijímá žádné parametry.
Return ValuesDvojitá hodnota představující hodnotu odstínu detekovanou optickým senzorem v rozsahu 0 — 359,00.
Examples// Set a variable, hue, to the value of the hue detected
// by the Optical Sensor.
double hue = Optical.hue();
objectDetected#
Zaregistruje funkci zpětného volání pro případ detekce objektu.
Available Functionsvoid objectDetected(void (* callback)(void));
Parametr |
Typ |
Popis |
|---|---|---|
|
|
Dříve definovaná funkce, která se provede, když optický senzor detekuje nový objekt. |
Tato funkce nevrací hodnotu.
ExamplesDefinujte callback funkci (mimo
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"); }Zaregistrujte zpětné volání uvnitř
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#
Zaregistruje funkci zpětného volání pro případ ztráty objektu.
Available Functionsvoid objectLost(void (* callback)(void));
Parametr |
Typ |
Popis |
|---|---|---|
|
|
Dříve definovaná funkce, která se provede, když optický senzor ztratí detekovaný objekt. |
Tato funkce nevrací hodnotu.
ExamplesDefinujte callback funkci (mimo
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"); }Zaregistrujte zpětné volání uvnitř
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); }