Spalvų jutiklis#

Įvadas#

colorsensor klasė naudojama duomenims iš Spalvų jutiklio pasiekti. Ji naudoja atspindėtą šviesą objektams aptikti, spalvoms identifikuoti ir ryškumui bei atspalviui matuoti.

Klasės konstruktorius#

colorsensor Color1 = colorsensor(index);

Klasės destruktorius#

Sunaikina colorsensor objektą ir išlaisvina susijusius išteklius.

virtual ~colorsensor();

Parametrai#

Parametras

Tipas

Aprašymas

index

int32_t

Išmanusis prievadas, prie kurio prijungtas spalvų jutiklis, užrašomas kaip PORTx, kur x yra prievado numeris (pavyzdžiui, PORT1).

Pavyzdžiai#

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

Narių funkcijos#

colorsensor klasė apima šias narines funkcijas:

  • setLight – Įjungia, išjungia spalvų jutiklio šviesos diodą arba nustato nustatytą ryškumo lygį.

  • isNearObject – Grąžina, ar objektas yra arti spalvų jutiklio.

  • detects – Grąžina, ar spalvų jutiklis aptinka nurodytą spalvą.

  • colorname – Grąžina spalvos, kurią aptiko spalvų jutiklis, pavadinimą.

  • brightness – Grąžina aptiktą objekto ryškumą.

  • hue – Grąžina aptiktą atspalvio reikšmę.

Prieš iškviečiant bet kokias colorsensor narių funkcijas, reikia sukurti colorsensor egzempliorių, kaip parodyta žemiau:

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

Nustato spalvų jutiklio LED šviesos stiprumą. Šviesa gali padėti spalvų jutikliui aiškiau aptikti objektus ir spalvas.

Jei spalvų jutiklio lemputė išjungta, nustačius šviesos galią virš 0 %, lemputė įsijungs.

Jei spalvų jutiklio lemputė šviečia, nustačius šviesos galią į 0 %, lemputė išsijungs.

Didesnis procentas šviesą daro ryškesnę, o mažesnis procentas – pritemdytą.

Available Functions

1 — Įjungia arba išjungia šviesos diodą naudodamas ledState.

void setLight( 
  ledState  state );

2 — Įjungia šviesos diodą iki tam tikro intensyvumo.

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

Parameters

Parametras

Tipas

Aprašymas

state

ledState

Įjungia arba išjungia šviesos diodą. ledState::on įjungia šviesos diodą 100 % ryškumu. ledState::off išjungia.

intensity

int32_t

Šviesos galios lygis nustatomas nuo 0 iki 100.

units

percentUnits

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

Return Values

Ši funkcija negrąžina reikšmės.

Examples
// Set the light power to 50 percent.
Color1.setLight(50, percent);

isNearObject#

Grąžina, jei spalvų jutiklis aptinka netoliese esantį objektą.

Available Functions
bool  isNearObject();

Parameters

Ši funkcija nepriima jokių parametrų.

Return Values

Ši funkcija grąžina loginę reikšmę, nurodančią, ar aptiktas netoliese esantis objektas:

  • true – Spalvų jutiklis aptinka objektą.

  • false – Spalvų jutiklis neaptinka objekto.

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

detects#

Grąžina, jei spalvų jutiklis aptinka nurodytą spalvą.

Available Functions

1 — Detects a colorType.

bool detects( 
  colorType  color );

2 — Detects a vex::color.

bool detects( 
  vex::color  color );

Parameters

Parametrai

Tipas

Aprašymas

color

colorType

Galiojanti spalva:

  • blue – atspalvio reikšmė nuo 196° iki 229°
  • blue_green – atspalvio reikšmė nuo 140° iki 195°
  • blue_violet – atspalvio reikšmė nuo 230° iki 239°
  • green – atspalvio reikšmė nuo 84° iki 139°
  • orange – atspalvio reikšmė nuo 21° iki 30°
  • purple
  • red – atspalvio reikšmė nuo 350° iki 14°
  • red_orange – atspalvio reikšmė nuo 15° iki 20°
  • red_violet – atspalvio reikšmė nuo 281° iki 350°
  • violet – Atspalvio reikšmė nuo 240° iki 280°
  • white
  • yellow – Atspalvio reikšmė nuo 54° iki 74°
  • yellow_green – Atspalvio reikšmė nuo 75° iki 83°
  • yellow_orange – Atspalvio reikšmė nuo 31° iki 53°

color

vex::color

Galiojanti pasirinktinė spalva arba viena iš aukščiau išvardytų iš anksto nustatytų spalvų.

Return Values
  • true – Spalvų jutiklis aptinka spalvą.

  • false – Spalvų jutiklis neaptinka spalvos.

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#

Grąžina artimiausią aptiktą atitikmenį.

Available Functions
colorType colorname();

Parameters

Ši funkcija nepriima jokių parametrų.

Return Values

Tiesiogiai atspausdinus, rodoma su ta spalva susijusi skaitinė reikšmė:

Spalva

Skaitinė reikšmė

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
  • Funkcija convertColorToString automatiškai sukuriama VEXcode, kai spalvų jutiklis konfigūruojamas lange „Įrenginiai“. Ji pasiekiama tik VEXcode IQ projektuose ir neveiks kitose aplinkose.

  • Kai už VEX kodo ribų naudojama colorname , palyginimai turėtų būti atliekami tiesiogiai su colorType reikšme – bet kokia spalva, prasidedančia colorType:: (pavyzdžiui, colorType::green arba 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#

Grąžina nuo objekto atspindėtos šviesos kiekį.

Didesnis procentas reiškia, kad daugiau šviesos atsispindi atgal į spalvų jutiklį. Mažesnis procentas reiškia, kad atsispindi mažiau šviesos.

Available Functions
double  brightness(bool bRaw = false);

Parameters

Parametras

Tipas

Aprašymas

bRaw

bool

Loginė reikšmė, skirta nuskaityti neapdorotus ryškumo duomenis, o ne procentinę reikšmę. Numatytoji reikšmė yra false.

Return Values

Dvigubas skaičius, žymintis spalvų jutiklio aptiktą ryškumą 0–100 % diapazone, arba dvigubas skaičius, žymintis jutiklio aptiktus neapdorotus duomenis.

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#

Grąžina spalvų jutiklio aptiktą atspalvį.

Atspalvis yra būdas apibūdinti spalvą skaičiais aplink spalvų ratą.

VEX spalvų ratas rodo spalvų laipsnius aplink apskritimą, kur raudona yra 0 laipsnių ir pereina per vaivorykštę, reikšmei didėjant.

Available Functions
double hue();

Parameters

Ši funkcija nepriima jokių parametrų.

Return Values

Dvigubas skaičius, vaizduojantis spalvų jutiklio aptiktą atspalvio reikšmę diapazone nuo 0 iki 359,00.

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