Optikai érzékelő#

Bevezetés#

A optical osztály az EXP 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álykonstruktorok#

optical(
    int32_t 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 instance
optical Optical1 = optical(
    PORT1);   // Smart Port 1

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 : A LED 100%-os fényerő fokozaton bekapcsol. 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ő LED-jének 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.

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.

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

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#

Akkor adja vissza, ha az optikai érzékelő egy közeli tárgyat észlel.

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 – Az optikai érzékelő objektumot érzékel.

  • false – Az optikai érzékelő nem érzékel tárgyat.

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.

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:

  • black

  • white

  • red - Színárnyalat 340° és 20° között

  • green – 80° és 140° közötti színárnyalatérték

  • blue - 200° és 240° közötti színárnyalatérték

  • yellow - 40° és 60° közötti színárnyalatérték

  • orange - Színárnyalat 20° és 40° között

  • purple - Színárnyalat 240° és 280° között

  • cyan - Színárnyalat 140° és 200° 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 az objektumról visszaverődő fény mennyiségét.

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 érték, amely az optikai érzékelő által érzékelt fényerőt 0 és 100% közötti dupla értékként jelöli, vagy egy dupla érték, 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#

Visszaadja az érzékelt szín árnyalatértékét.

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 0 és 359,99 között.

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