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 |
|---|---|---|
|
|
Inteligentny port, do którego podłączony jest czujnik koloru, zapisany jako |
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 Functions1 — Włącza lub wyłącza diodę LED za pomocą
ledState.void setLight( ledState state );
Parameters2 — Włącza diodę LED o określonej intensywności.
void setLight( int32_t intensity, percentUnits units = percent );
Parametr |
Typ |
Opis |
|---|---|---|
|
|
Włącza lub wyłącza diodę LED. |
|
|
Poziom mocy umożliwiający ustawienie światła od 0 do 100. |
|
|
Jednostka oznaczająca natężenie światła: |
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 Functionsbool isNearObject();
Ta funkcja nie przyjmuje żadnych parametrów.
Return ValuesFunkcja ta zwraca wartość logiczną wskazującą, czy w pobliżu wykryto obiekt:
true– Czujnik koloru wykrywa obiekt.false– Czujnik koloru nie wykrył obiektu.
// 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 Functions1 — Detects a
colorType.bool detects( colorType color );
Parameters2 — Detects a
vex::color.bool detects( vex::color color );
Parametry |
Typ |
Opis |
|---|---|---|
|
|
A valid color:
|
|
|
Prawidłowy kolor niestandardowy lub jeden z predefiniowanych kolorów wymienionych powyżej. |
true– Czujnik koloru wykrywa kolor.false– Czujnik koloru nie wykrywa koloru.
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 FunctionscolorType colorname();
Ta funkcja nie przyjmuje żadnych parametrów.
Return ValuesPo wydrukowaniu bezpośrednio wyświetla wartość liczbową przypisaną danemu kolorowi:
Kolor |
Wartość liczbowa |
|---|---|
|
0 |
|
1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
7 |
|
8 |
|
9 |
|
10 |
|
11 |
|
12 |
|
13 |
|
14 |
|
15 |
|
16 |
|
17 |
Funkcja
convertColorToStringjest 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
colornamepoza kodem VEXcode, porównania należy wykonywać bezpośrednio z wartościącolorType— dowolnym kolorem zaczynającym się odcolorType::(na przykładcolorType::greenlubcolorType::red).
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 Functionsdouble brightness(bool bRaw = false);
Parametr |
Typ |
Opis |
|---|---|---|
|
|
Wartość logiczna do odczytu surowych danych o jasności zamiast wartości procentowej. Wartość domyślna to |
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.

double hue();
Ta funkcja nie przyjmuje żadnych parametrów.
Return ValuesWartość 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();