Színérzékelő#

Bevezetés#

A colorsensor osztály a Color Sensor 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#

colorsensor Color1 = colorsensor(index);

Osztálydestruktor#

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

virtual ~colorsensor();

Paraméterek#

Paraméter

Típus

Leírás

index

int32_t

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

Példák#

// Create an colorsensor instance in Port 1
colorsensor Color1 = colorsensor(PORT1);

Tagfüggvények#

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

  • setLight – Be- és kikapcsolja a színérzékelő LED-jét, vagy egy beállított fényerőszintre állítja.

  • isNearObject – Visszaadja, hogy egy objektum közel van-e a színérzékelőhöz.

  • detects – Visszaadja, hogy a színérzékelő érzékelte-e a megadott színt vagy sem.

  • colorname – Visszaadja a színérzékelő által érzékelt szín nevét.

  • brightness – Visszaadja egy objektum érzékelt fényerejét.

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

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

/* This constructor is required when using VS Code.
Color Sensor configuration is generated automatically
in VEXcode using the Device Menu. Replace the values
as needed. */

// Create an colorsensor instance in Port 1
colorsensor Color1 = colorsensor(PORT1);

setLight#

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

Ha a színérzékelő lámpája nem világít, a fényerő 0% fölé állítása bekapcsolja a lámpát.

Ha a színérzékelő jelzőfénye 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

1 — A LED be- és kikapcsolása ledState paraméter használatával.

void setLight( 
  ledState  state );

2 — Bekapcsolja a LED-et egy adott intenzitásra.

void setLight( 
  int32_t      intensity, 
  percentUnits units = percent );

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.

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.
Color1.setLight(50, percent);

isNearObject#

Akkor adja vissza, ha a színé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 – A színérzékelő objektumot érzékel.

  • false – A színérzékelő nem érzékel tárgyat.

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

detects#

Akkor adja vissza, ha a színérzékelő egy megadott színt érzékel.

Available Functions

1 — Detects a colorType.

bool detects( 
  colorType  color );

2 — Detects a vex::color.

bool detects( 
  vex::color  color );

Parameters

Paraméterek

Típus

Leírás

color

colorType

Érvényes szín:

  • blue – Színárnyalat 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 84° és 139° között
  • orange – Színárnyalat 21° és 30° között
  • purple
  • red – Színárnyalat 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 240° és 280° között
  • white
  • yellow – Színárnyalat 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

color

vex::color

Egy érvényes egyéni szín, vagy a fent felsorolt ​​előre definiált színek egyike.

Return Values
  • true – A színérzékelő érzékeli a színt.

  • false – A színérzékelő nem érzékeli a színt.

Examples
int main() {
  // Initializing Robot Configuration. DO NOT REMOVE!
  vexcodeInit();

  // Drive until a red object is seen
  Drivetrain.drive(forward);
  while (true) {
    if (Color1.detects(red)) {
      Drivetrain.stop();
      break;
    }
    wait(0.5, seconds);
  }
}

colorname#

A legközelebbi egyező észlelt színt adja vissza.

Available Functions
colorType colorname();

Parameters

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

Return Values

Közvetlenül kinyomtatva az adott színhez tartozó numerikus értéket mutatja:

Szín

Numerikus érték

none

0

red

1

green

2

blue

3

white

4

yellow

5

orange

6

purple

7

cyan

8

red_violet

9

violet

10

blue_violet

11

blue_green

12

yellow_green

13

yellow_orange

14

red_orange

15

black

16

transparent

17

Notes
  • A convertColorToString függvényt a VEXcode automatikusan létrehozza, amikor egy színérzékelőt konfigurálnak az Eszközök ablakban. Ez a függvény csak a VEXcode IQ projekteken belül érhető el, más környezetekben nem fog működni.

  • Ha a VEXcode-on kívül colorname értéket használunk, az összehasonlításokat közvetlenül egy colorType értékkel kell elvégezni — bármilyen színnel, amely colorType:: tel kezdődik (például colorType::green vagy colorType::red).

Examples
int main() {
  // Initializing Robot Configuration. DO NOT REMOVE!
  vexcodeInit();

  // Continuously check the detected color
  while (true) {

    // Compare the color name with "red"
    if (convertColorToString(Color1.colorname()) == "red") {
      Brain.Screen.print("Red object!");
    } else {
      Brain.Screen.print("Not red");
    }

    wait(0.5, seconds);
    Brain.Screen.clearScreen();
    Brain.Screen.setCursor(1, 1);
  }
}

int main() {
  // Initializing Robot Configuration. DO NOT REMOVE!
  vexcodeInit();

  // Continuously check the detected color
  while (true) {

    // Compare the color name with the colorType
    if (Color1.colorname() == colorType::red) {
      Brain.Screen.print("Red object!");
    } else {
      Brain.Screen.print("Not red");
    }

    wait(0.5, seconds);
    Brain.Screen.clearScreen();
    Brain.Screen.setCursor(1, 1);
  }
}

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 a színé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 a színé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 Color Sensor
double brightness = Color1.brightness();

// Print the brightness detected by the Color Sensor to the
// Brain's screen
Brain.Screen.print(brightness);

hue#

Visszaadja a színérzékelő által érzékelt színárnyalatot.

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 a színé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 Color Sensor.
double hue = Color1.hue();