Optický senzor#

Zavedení#

Optická třída optical se používá pro přístup k datům z optického senzoru EXP. Využívá odražené světlo k detekci objektů, identifikaci barev a měření jasu a odstínu.

Konstruktory tříd#

optical(
    int32_t index );

Destruktor tříd#

Zničí optický objekt optical a uvolní související zdroje.

virtual ~optical();

Parametry#

Parametr

Typ

Popis

index

int32_t

Inteligentní port, ke kterému je připojen optický senzor, zapsaný jako PORTx, kde x je číslo portu (například PORT1).

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 — Vrátí, 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 instance
optical Optical1 = optical(
    PORT1);   // Smart Port 1

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 Functions
void  setLight(ledState state);

Parameters

Parametr

Typ

Popis

state

ledState

Zapne nebo vypne LED. ledState::on zapne LED na 100 % jas. ledState::off ji vypne.

Return Values

Tato funkce nevrací hodnotu.

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

setLightPower#

Nastavuje jas LED diody optického senzoru. Světlo může pomoci optickému senzoru jasněji detekovat objekty a barvy.

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.

Vyšší procento světlo zesílí. Nižší procento světlo ztlumí.

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

Parameters

Parametr

Typ

Popis

intensity

int32_t

Úroveň výkonu pro nastavení světla od 0 do 100.

units

percentUnits

Jednotka, která vyjadřuje intenzitu světla: percent / pct — procenta

Return Values

Tato funkce nevrací hodnotu.

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

isNearObject#

Vrátí hodnotu, pokud optický senzor detekuje blízký objekt.

Available Functions
bool  isNearObject();

Parameters

Tato funkce nepřijímá žádné parametry.

Return Values

Tato funkce vrací booleovskou hodnotu, která indikuje, zda byl detekován blízký objekt:

  • true – Optický senzor detekuje objekt.

  • false – Optický senzor nedetekuje objekt.

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

Available Functions
vex::color  color();

Parameters

Tato funkce nepřijímá žádné parametry.

Return Values

Barva detekovaná optickým senzorem jako instance třídy color class.

Možné barvy jsou:

  • black

  • white

  • red - Hodnota odstínu mezi 340° a 20°

  • green - Hodnota odstínu mezi 80° a 140°

  • blue - Hodnota odstínu mezi 200° a 240°

  • yellow - Hodnota odstínu mezi 40° a 60°

  • orange - Hodnota odstínu mezi 20° a 40°

  • purple - Hodnota odstínu mezi 240° a 280°

  • cyan - Hodnota odstínu mezi 140° a 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#

Vrátí množství světla odraženého od objektu.

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 Functions
double  brightness(bool bRaw = false);

Parameters

Parametr

Typ

Popis

bRaw

bool

Logická hodnota pro čtení nezpracovaných dat jasu namísto procent. Výchozí hodnota je false.

Return Values

Dvojitá hodnota představující jas detekovaný optickým senzorem jako dvojnásobek v rozsahu 0–100 % nebo dvojnásobek 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í hodnotu odstínu detekované barvy.

Odstín je způsob, jak popsat barvu pomocí čísel v barevném kruhu.

Barevný kruh VEX zobrazující stupně barev kolem kruhu, s červenou na 0 stupních a přechodem do duhy s rostoucí hodnotou.

Available Functions
double hue();

Parameters

Tato funkce nepřijímá žádné parametry.

Return Values

Dvojitá hodnota představující hodnotu odstínu detekovanou optickým senzorem v rozsahu 0 — 359,99.

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 Functions
void objectDetected(void (* callback)(void));

Parameters

Parametr

Typ

Popis

callback

void (*)(void)

Dříve definovaná funkce, která se provede, když optický senzor detekuje nový objekt.

Return Values

Tato funkce nevrací hodnotu.

Examples

Definujte 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 Functions
void objectLost(void (* callback)(void));

Parameters

Parametr

Typ

Popis

callback

void (*)(void)

Dříve definovaná funkce, která se provede, když optický senzor ztratí detekovaný objekt.

Return Values

Tato funkce nevrací hodnotu.

Examples

Definujte 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);
}