Czujnik koloru#

Wstęp#

Klasa colorsensor służy do dostępu do danych z Czujnika kolorów. Wykorzystuje ona światło odbite do wykrywania obiektów, identyfikacji kolorów oraz pomiaru jasności i odcienia.

Konstruktor klasy#

colorsensor Color1 = colorsensor(index);

Destruktor klasy#

Niszczy obiekt colorsensor i uwalnia powiązane zasoby.

virtual ~colorsensor();

Parametry#

Parametr

Typ

Opis

index

int32_t

Inteligentny port, do którego podłączony jest czujnik koloru, zapisany jako PORTx, gdzie x to numer portu (na przykład PORT1).

Przykłady#

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

Funkcje członkowskie#

Klasa colorsensor zawiera następujące funkcje członkowskie:

  • setLight – Włącza, wyłącza lub ustawia jasność diody LED czujnika koloru na określony poziom.

  • isNearObject – Zwraca informację, czy obiekt znajduje się blisko czujnika koloru.

  • detects – Zwraca informację, czy określony kolor został wykryty przez czujnik koloru.

  • colorname – Zwraca nazwę koloru wykrytego przez czujnik koloru.

  • brightness – Zwraca wykrytą jasność obiektu.

  • hue – Zwraca wykrytą wartość odcienia.

Przed wywołaniem jakiejkolwiek funkcji członkowskiej colorsensor należy utworzyć instancję colorsensor , jak pokazano poniżej:

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

Ustawia moc światła diody LED czujnika koloru. Światło może pomóc czujnikowi koloru wyraźniej wykrywać obiekty i kolory.

Jeśli światło czujnika koloru jest wyłączone, ustawienie mocy światła powyżej 0% spowoduje włączenie światła.

Jeśli światło czujnika koloru jest włączone, ustawienie mocy światła na 0% spowoduje wyłączenie światła.

Wyższy procent sprawia, że ​​światło jest jaśniejsze. Niższy procent sprawia, że ​​światło jest ciemniejsze.

Available Functions

1 — Włącza lub wyłącza diodę LED za pomocą ledState.

void setLight( 
  ledState  state );

2 — Włącza diodę LED o określonej intensywności.

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

Parameters

Parametr

Typ

Opis

state

ledState

Włącza lub wyłącza diodę LED. ledState::on włącza diodę LED z jasnością 100%. ledState::off wyłącza ją.

intensity

int32_t

Poziom mocy umożliwiający ustawienie światła od 0 do 100.

units

percentUnits

Jednostka oznaczająca natężenie światła: percent / pct — procent

Return Values

Ta funkcja nie zwraca wartości.

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

isNearObject#

Zwraca wartość, jeśli czujnik koloru wykryje pobliski obiekt.

Available Functions
bool  isNearObject();

Parameters

Ta funkcja nie przyjmuje żadnych parametrów.

Return Values

Funkcja ta zwraca wartość logiczną wskazującą, czy w pobliżu wykryto obiekt:

  • true – Czujnik koloru wykrywa obiekt.

  • false – Czujnik koloru nie wykrył obiektu.

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

detects#

Zwraca wartość wskazującą, czy czujnik kolorów wykrywa określony kolor.

Available Functions

1 — Detects a colorType.

bool detects( 
  colorType  color );

2 — Detects a vex::color.

bool detects( 
  vex::color  color );

Parameters

Parametry

Typ

Opis

color

colorType

A valid color:

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

color

vex::color

Prawidłowy kolor niestandardowy lub jeden z predefiniowanych kolorów wymienionych powyżej.

Return Values
  • true – Czujnik koloru wykrywa kolor.

  • false – Czujnik koloru nie wykrywa koloru.

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#

Zwraca najbardziej zbliżony wykryty kolor.

Available Functions
colorType colorname();

Parameters

Ta funkcja nie przyjmuje żadnych parametrów.

Return Values

Po wydrukowaniu bezpośrednio wyświetla wartość liczbową przypisaną danemu kolorowi:

Kolor

Wartość liczbowa

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
  • Funkcja convertColorToString jest automatycznie tworzona przez VEXcode po skonfigurowaniu czujnika koloru w oknie Urządzenia. Jest ona dostępna tylko w projektach VEXcode IQ i nie będzie działać w innych środowiskach.

  • W przypadku używania wartości colorname poza kodem VEXcode, porównania należy wykonywać bezpośrednio z wartością colorType — dowolnym kolorem zaczynającym się od colorType:: (na przykład colorType::green lub 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#

Zwraca ilość światła odbitego od obiektu.

Wyższy procent oznacza, że ​​więcej światła odbija się z powrotem do czujnika koloru. Niższy procent oznacza, że ​​mniej światła odbija się z powrotem.

Available Functions
double  brightness(bool bRaw = false);

Parameters

Parametr

Typ

Opis

bRaw

bool

Wartość logiczna do odczytu surowych danych o jasności zamiast wartości procentowej. Wartość domyślna to false.

Return Values

Wartość podwójna oznacza jasność wykrytą przez czujnik koloru w zakresie 0–100% lub wartość podwójna oznacza surowe dane wykryte przez czujnik.

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#

Zwraca odcień wykryty przez czujnik koloru.

Odcień to sposób opisywania koloru za pomocą liczb znajdujących się na kole barw.

Koło kolorów VEX przedstawiające stopnie kolorów wokół okręgu, przy czym czerwony znajduje się przy 0 stopniach i przechodzi w całą tęczę wraz ze wzrostem wartości.

Available Functions
double hue();

Parameters

Ta funkcja nie przyjmuje żadnych parametrów.

Return Values

Wartość podwójna reprezentująca wartość odcienia wykrytego przez czujnik koloru w zakresie 0–359,00.

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