Värianturi#

Johdanto#

colorsensor -luokkaa käytetään Värianturin datan käyttämiseen. Se käyttää heijastunutta valoa esineiden havaitsemiseen, värien tunnistamiseen sekä kirkkauden ja sävyn mittaamiseen.

Luokan rakentaja#

colorsensor Color1 = colorsensor(index);

Luokan tuhoaja#

Tuhoaa colorsensor -objektin ja vapauttaa siihen liittyvät resurssit.

virtual ~colorsensor();

Parametrit#

Parametri

Tyyppi

Kuvaus

index

int32_t

Värianturin kytkennän sisältävä älyportti, joka kirjoitetaan muodossa PORTx, jossa x on portin numero (esimerkiksi PORT1).

Esimerkkejä#

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

Jäsenten toiminnot#

colorsensor -luokka sisältää seuraavat jäsenfunktiot:

  • setLight – Sytyttää, sammuttaa värianturin LED-valon tai asettaa kirkkausasteen.

  • isNearObject – Palauttaa, onko kohde lähellä värianturia.

  • detects – Palauttaa, havaitseeko värianturi määritetyn värin.

  • colorname – Palauttaa värianturin havaitseman värin nimen.

  • brightness – Palauttaa objektin havaitun kirkkauden.

  • hue – Palauttaa havaitun sävyn arvon.

Ennen minkään colorsensor -jäsenfunktion kutsumista on luotava colorsensor -instanssi alla olevan mukaisesti:

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

Asettaa värianturin LED-valon valotehon. Valo voi auttaa värianturia havaitsemaan esineitä ja värejä selkeämmin.

Jos värianturin valo on sammunut, valotehon asettaminen yli 0 %:n arvoon sytyttää valon.

Jos värianturin valo palaa, valotehon asettaminen arvoon 0 % sammuttaa valon.

Suurempi prosenttiosuus tekee valosta kirkkaampaa. Pienempi prosenttiosuus tekee valosta himmeämpää.

Available Functions

1 — Sytyttää tai sammuttaa ledin käyttämällä arvoa ledState.

void setLight( 
  ledState  state );

2 — Sytyttää ledin tietylle kirkkaudelle.

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

Parameters

Parametri

Tyyppi

Kuvaus

state

ledState

Asettaa LEDin päälle tai pois päältä. ledState::on sytyttää LEDin 100 %:n kirkkuudella. ledState::off sammuttaa sen.

intensity

int32_t

Valon tehotaso asetetaan välille 0–100.

units

percentUnits

Valon voimakkuutta kuvaava yksikkö: percent prosenttia pct

Return Values

Tämä funktio ei palauta arvoa.

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

isNearObject#

Palauttaa, jos värianturi havaitsee lähellä olevan kohteen.

Available Functions
bool  isNearObject();

Parameters

Tämä funktio ei hyväksy parametreja.

Return Values

Tämä funktio palauttaa totuusarvon, joka ilmaisee, onko lähellä oleva kohde havaittu:

  • true – Värianturi havaitsee kohteen.

  • false – Värianturi ei havaitse kohdetta.

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

detects#

Palauttaa, jos värianturi havaitsee määritetyn värin.

Available Functions

1 — Detects a colorType.

bool detects( 
  colorType  color );

2 — Detects a vex::color.

bool detects( 
  vex::color  color );

Parameters

Parametrit

Tyyppi

Kuvaus

color

colorType

Kelvollinen väri:

  • blue – Sävyarvo välillä 196° ja 229°
  • blue_green – Sävyarvo välillä 140° ja 195°
  • blue_violet – Sävyarvo välillä 230° ja 239°
  • green – Sävyarvo välillä 84° ja 139°
  • orange – Sävyarvo välillä 21° ja 30°
  • purple
  • red – Sävyarvo välillä 350° ja 14°
  • red_orange – Sävyarvo välillä 15° ja 20°
  • red_violet – Sävyarvo välillä 281° ja 350°
  • violet – Sävyarvo välillä 240° ja 280°
  • white
  • yellow – Sävyarvo välillä 54° ja 74°
  • yellow_green – Sävyarvo välillä 75° ja 83°
  • yellow_orange – Sävyarvo välillä 31° ja 53°

color

vex::color

Kelvollinen mukautettu väri tai jokin yllä luetelluista valmiiksi määritetyistä väreistä.

Return Values
  • true – Värianturi tunnistaa värin.

  • false – Värianturi ei tunnista väriä.

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#

Palauttaa lähimpänä havaitun vastaavan värin.

Available Functions
colorType colorname();

Parameters

Tämä funktio ei hyväksy parametreja.

Return Values

Suoraan tulostettuna se näyttää kyseiseen väriin liittyvän numeerisen arvon:

Väri

Numeerinen arvo

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
  • VEXcode luo automaattisesti funktion convertColorToString , kun värianturi konfiguroidaan Laitteet-ikkunassa. Se on käytettävissä vain VEXcode IQ -projektien sisällä eikä toimi muissa ympäristöissä.

  • Kun VEX-koodin ulkopuolella käytetään arvoa colorname , vertailut tulisi tehdä suoraan käyttämällä arvoa colorType — mikä tahansa väri, joka alkaa arvolla colorType:: (esimerkiksi colorType::green tai 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#

Palauttaa objektista heijastuneen valon määrän.

Korkeampi prosenttiosuus tarkoittaa, että enemmän valoa heijastuu takaisin värisensoriin. Matalampi prosenttiosuus tarkoittaa, että vähemmän valoa heijastuu takaisin.

Available Functions
double  brightness(bool bRaw = false);

Parameters

Parametri

Tyyppi

Kuvaus

bRaw

bool

Totuusarvo, jolla luetaan raaka kirkkausdata prosenttiarvon sijaan. Oletusarvo on false.

Return Values

Kaksinkertainen arvo, joka edustaa värianturin havaitsemaa kirkkautta välillä 0–100 %, tai kaksoisarvo, joka edustaa anturin havaitsemaa raakadataa.

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#

Palauttaa värisensorin havaitseman sävyn.

Sävy on tapa kuvata väriä käyttämällä numeroita väriympyrän ympärillä.

VEX-väriympyrä, joka näyttää värien asteet ympyrän ympärillä, punaisen ollessa 0 asteessa ja siirtyen sateenkaaren läpi arvon kasvaessa.

Available Functions
double hue();

Parameters

Tämä funktio ei hyväksy parametreja.

Return Values

Kaksinkertainen arvo, joka edustaa värianturin havaitsemaa sävyn arvoa välillä 0–359,00.

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