Krāsu sensors#

Ievads#

colorsensor klase tiek izmantota, lai piekļūtu datiem no Krāsu sensora. Tā izmanto atstaroto gaismu, lai noteiktu objektus, identificētu krāsas un mērītu spilgtumu un nokrāsu.

Klases konstruktors#

colorsensor Color1 = colorsensor(index);

Klases iznīcinātājs#

Iznīcina colorsensor objektu un atbrīvo saistītos resursus.

virtual ~colorsensor();

Parametri#

Parametrs

Tips

Apraksts

index

int32_t

Viedports, kuram ir pievienots krāsu sensors, kas pierakstīts kā PORTx, kur x ir porta numurs (piemēram, PORT1).

Piemēri#

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

Dalībnieku funkcijas#

colorsensor klasē ietilpst šādas dalībfunkcijas:

  • setLight – Ieslēdz, izslēdz krāsu sensora gaismas diodi vai iestata spilgtuma līmeni.

  • isNearObject – Atgriež, vai objekts atrodas tuvu krāsu sensoram.

  • detects – Atgriež, vai krāsu sensors ir noteicis norādīto krāsu.

  • colorname – Atgriež krāsu sensora noteiktās krāsas nosaukumu.

  • brightness – Atgriež objekta noteikto spilgtumu.

  • hue – Atgriež noteikto nokrāsas vērtību.

Pirms jebkuru colorsensor dalībfunkciju izsaukšanas ir jāizveido colorsensor instance, kā parādīts zemāk:

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

Iestata krāsu sensora LED gaismas jaudu. Gaisma var palīdzēt krāsu sensoram skaidrāk noteikt objektus un krāsas.

Ja krāsu sensora gaisma ir izslēgta, gaismas jaudas iestatīšana virs 0% ieslēgs gaismu.

Ja krāsu sensora gaisma ir ieslēgta, gaismas jaudas iestatīšana uz 0% izslēgs gaismu.

Augstāks procentuālais daudzums padara gaismu spilgtāku. Zemāks procentuālais daudzums padara gaismu blāvāku.

Available Functions

1 — Ieslēdz vai izslēdz gaismas diodi, izmantojot ledState.

void setLight( 
  ledState  state );

2 — Ieslēdz gaismas diodi noteiktā intensitātē.

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

Parameters

Parametrs

Tips

Apraksts

state

ledState

Ieslēdz vai izslēdz LED gaismu. ledState::on ieslēdz LED gaismu ar 100% spilgtumu. ledState::off izslēdz to.

intensity

int32_t

Gaismas jaudas līmenis ir no 0 līdz 100.

units

percentUnits

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

Return Values

Šī funkcija neatgriež vērtību.

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

isNearObject#

Atgriež, ja krāsu sensors nosaka tuvumā esošu objektu.

Available Functions
bool  isNearObject();

Parameters

Šī funkcija nepieņem nekādus parametrus.

Return Values

Šī funkcija atgriež Būla vērtību, kas norāda, vai ir atklāts tuvumā esošs objekts:

  • true — Krāsu sensors nosaka objektu.

  • false – Krāsu sensors neuztver objektu.

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

detects#

Atgriež, ja krāsu sensors nosaka noteiktu krāsu.

Available Functions

1 — Detects a colorType.

bool detects( 
  colorType  color );

2 — Detects a vex::color.

bool detects( 
  vex::color  color );

Parameters

Parametri

Tips

Apraksts

color

colorType

Derīga krāsa:

  • blue – nokrāsas vērtība no 196° līdz 229°
  • blue_green – nokrāsas vērtība no 140° līdz 195°
  • blue_violet – nokrāsas vērtība no 230° līdz 239°
  • green – nokrāsas vērtība no 84° līdz 139°
  • orange – nokrāsas vērtība no 21° līdz 30°
  • purple
  • red – nokrāsas vērtība no 350° līdz 14°
  • red_orange – nokrāsas vērtība no 15° līdz 20°
  • red_violet – nokrāsas vērtība no 281° līdz 350°
  • violet  — nokrāsas vērtība no 240° līdz 280°
  • white
  • yellow  — nokrāsas vērtība no 54° līdz 74°
  • yellow_green  — nokrāsas vērtība no 75° līdz 83°
  • yellow_orange  — nokrāsas vērtība no 31° līdz 53°

color

vex::color

Derīga pielāgota krāsa vai viena no iepriekš definētajām krāsām, kas uzskaitītas iepriekš.

Return Values
  • true — Krāsu sensors nosaka krāsu.

  • false – Krāsu sensors nenosaka krāsu.

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#

Atgriež tuvāko noteikto atbilstošo krāsu.

Available Functions
colorType colorname();

Parameters

Šī funkcija nepieņem nekādus parametrus.

Return Values

Tieši izdrukājot, tiek parādīta ar šo krāsu saistītā skaitliskā vērtība:

Krāsa

Skaitliskā vērtība

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 tiek automātiski izveidota ar VEXcode, kad ierīču logā tiek konfigurēts krāsu sensors. Tā ir pieejama tikai VEXcode IQ projektos un nedarbosies citās vidēs.

  • Ja ārpus VEXkoda tiek izmantota colorname vērtība, salīdzinājumi jāveic tieši ar colorType vērtību — jebkuru krāsu, kas sākas ar colorType:: (piemēram, colorType::green vai 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#

Atgriež no objekta atstarotās gaismas daudzumu.

Augstāks procentuālais daudzums nozīmē, ka uz krāsu sensoru tiek atstarots vairāk gaismas. Zemāks procentuālais daudzums nozīmē, ka atpakaļ tiek atstarots mazāk gaismas.

Available Functions
double  brightness(bool bRaw = false);

Parameters

Parametrs

Tips

Apraksts

bRaw

bool

Būla vērtība neapstrādātu spilgtuma datu, nevis procentuālās vērtības nolasīšanai. Noklusējuma vērtība ir false.

Return Values

Dubultskaitlis, kas apzīmē krāsu sensora noteikto spilgtumu diapazonā no 0 līdz 100 %, vai dubultskaitlis, kas apzīmē sensora noteiktos neapstrādātos datus.

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#

Atgriež krāsu sensora noteikto nokrāsu.

Nokrāsa ir veids, kā aprakstīt krāsu, izmantojot skaitļus ap krāsu apli.

VEX krāsu aplis attēlo krāsu pakāpes aplī, kur sarkanā krāsa ir 0 grādi un pāriet varavīksnes krāsā, vērtībai palielinoties.

Available Functions
double hue();

Parameters

Šī funkcija nepieņem nekādus parametrus.

Return Values

Dubultskaitlis, kas attēlo krāsu sensora noteikto nokrāsas vērtību diapazonā no 0 līdz 359,00.

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