Optikai érzékelő#

Bevezetés#

A optical osztály az Optikai érzékelő adatainak elérésére szolgál. A visszavert fényt használja objektumok érzékelésére, színek azonosítására, valamint a fényerő és színárnyalat mérésére.

Osztálykonstruktor#

optical Optical = optical(index);

Osztálydestruktor#

Megsemmisíti a optical objektumot és felszabadítja a hozzá tartozó erőforrásokat.

virtual ~optical();

Paraméterek#

Paraméter

Típus

Leírás

index

int32_t

Az az intelligens port, amelyhez az optikai érzékelő csatlakozik, PORTxformában írva, ahol x a port száma (például PORT1).

Példák#

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

Tagfüggvények#

A optical osztály a következő tagfüggvényeket tartalmazza:

  • setLight — Be- vagy kikapcsolja az optikai érzékelő LED-jét.

  • setLightPower — Beállítja az optikai érzékelő fényerősségi szintjét.

  • isNearObject — Visszaadja, hogy az optikai érzékelő érzékel-e objektumot a hatótávolságon belül.

  • color — Visszaadja az optikai érzékelő által érzékelt színt.

  • brightness — Visszaadja az objektumról visszaverődő fény mennyiségét.

  • hue — Visszaadja az optikai érzékelő által érzékelt színárnyalatot.

  • objectDetected — Regisztrál egy függvényt, amely akkor hívódik meg, amikor az optikai érzékelő objektumot érzékel.

  • objectLost — Regisztrál egy függvényt, amely akkor hívódik meg, amikor az optikai érzékelő elveszít egy objektumot.

Bármely optical tagfüggvény meghívása előtt létre kell hozni egy optical példányt, az alábbiak szerint:

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

Be- vagy kikapcsolja az optikai érzékelő LED-jét. A fény segíthet az optikai érzékelőnek a tárgyak és a színek tisztább érzékelésében.

Available Functions
void  setLight(ledState state);

Parameters

Paraméter

Típus

Leírás

state

ledState

Be- vagy kikapcsolja a LED-et. ledState::on : 100%-os fényerővel bekapcsolja a LED-et. ledState::off kikapcsolja.

Return Values

Ez a függvény nem ad vissza értéket.

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

setLightPower#

Beállítja az optikai érzékelő fényerejét. A fény segíthet az optikai érzékelőnek a tárgyak és a színek tisztább érzékelésében.

A magasabb százalékos érték fényesebbé, az alacsonyabb százalékos érték pedig halványabbá teszi a fényt.

Ha az optikai érzékelő lámpája ki van kapcsolva, a fényerő 0% fölé állítása bekapcsolja a lámpát.

Ha az optikai érzékelő lámpája világít, a fényerő 0%-ra állítása kikapcsolja a lámpát.

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

Parameters

Paraméter

Típus

Leírás

intensity

int32_t

A lámpa teljesítményszintje 0 és 100 között állítható.

units

percentUnits

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

Return Values

Ez a függvény nem ad vissza értéket.

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

isNearObject#

Visszaadja, hogy az optikai érzékelő érzékel-e objektumot a hatótávolságon belül.

Available Functions
bool  isNearObject();

Parameters

Ez a függvény nem fogad el paramétereket.

Return Values

Ez a függvény egy logikai értéket ad vissza, amely jelzi, hogy észlelhető-e közeli objektum:

  • true — Egy tárgyat észlelt a közelben.

  • false — Nem észlelhető objektum.

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

color#

Az optikai érzékelő által érzékelt színt adja vissza a detektált színárnyalat alapján.

Available Functions
vex::color  color();

Parameters

Ez a függvény nem fogad el paramétereket.

Return Values

Az optikai érzékelő által a color class osztály egy példányaként érzékelt szín.

Lehetséges színek a következők:

  • blue – Színárnyalatérték 196° és 229° között

  • blue_green – Színárnyalat 140° és 195° között

  • blue_violet – Színárnyalat 230° és 239° között

  • green – Színárnyalatérték 84° és 139° között

  • orange – Színárnyalat 21° és 30° között

  • red – Színárnyalatérték 350° és 14° között

  • red_orange – Színárnyalat 15° és 20° között

  • red_violet – Színárnyalat 281° és 350° között

  • violet – Színárnyalatérték 240° és 280° között

  • yellow – Színárnyalatérték 54° és 74° között

  • yellow_green – Színárnyalat 75° és 83° között

  • yellow_orange – Színárnyalat 31° és 53° között

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#

Visszaadja, hogy mennyi fény verődik vissza az optikai érzékelőre.

A magasabb százalékos érték azt jelenti, hogy több fény verődik vissza az optikai érzékelőre. Az alacsonyabb százalékos érték azt jelenti, hogy kevesebb fény verődik vissza.

Available Functions
double  brightness(bool bRaw = false);

Parameters

Paraméter

Típus

Leírás

bRaw

bool

Logikai érték a nyers fényerőadatok beolvasásához százalékos érték helyett. Az alapértelmezett érték false.

Return Values

Egy dupla szám, amely az optikai érzékelő által 0 és 100% közötti tartományban érzékelt fényerőt jelöli, vagy egy dupla szám, amely az érzékelő által érzékelt nyers adatokat jelöli.

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#

Az optikai érzékelő által érzékelt színárnyalatot adja vissza.

A színárnyalat a színek leírásának egy módja, számok segítségével, egy színkör körül.

A VEX színkör egy körben mutatja a színek fokozatait, ahol a piros 0 fokon áll, és a növekvő értékkel áthalad a szivárványon.

Available Functions
double hue();

Parameters

Ez a függvény nem fogad el paramétereket.

Return Values

Egy dupla szám, amely az optikai érzékelő által érzékelt színárnyalat értékét jelöli a 0 és 359,00 közötti tartományban.

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

objectDetected#

Visszahívó függvényt regisztrál, amikor egy objektumot észlel.

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

Parameters

Paraméter

Típus

Leírás

callback

void (*)(void)

Egy korábban definiált függvény, amely akkor hajtódik végre, amikor az optikai érzékelő új objektumot észlel.

Return Values

Ez a függvény nem ad vissza értéket.

Examples

Definiáljuk a visszahívó függvényt ( 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");
}

Regisztrálja a visszahívást a int main() függvényen belül.

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

Visszahívó függvényt regisztrál, amikor egy objektum elveszik.

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

Parameters

Paraméter

Típus

Leírás

callback

void (*)(void)

Egy korábban definiált függvény, amely akkor hajtódik végre, amikor az optikai érzékelő elveszít egy érzékelt objektumot.

Return Values

Ez a függvény nem ad vissza értéket.

Examples

Definiáljuk a visszahívó függvényt ( 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");
}

Regisztrálja a visszahívást a int main() függvényen belül.

/* 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);
}