Датчик кольору#
Вступ#
Клас colorsensor використовується для доступу до даних з датчика кольору. Він використовує відбите світло для виявлення об’єктів, ідентифікації кольорів та вимірювання яскравості й відтінку.
Конструктор класів#
colorsensor Color1 = colorsensor(index);
Деструктор класів#
Знищує об’єкт colorsensor та звільняє пов’язані з ним ресурси.
virtual ~colorsensor();
Параметри#
Параметр |
Тип |
Опис |
|---|---|---|
|
|
Розумний порт, до якого підключено датчик кольору, записується як |
Приклади#
// Create an colorsensor instance in Port 1
colorsensor Color1 = colorsensor(PORT1);
Функції-члени#
Клас colorsensor містить такі функції-члени:
setLight– Вмикає, вимикає або встановлює яскравість світлодіода датчика кольору на встановлений рівень.isNearObject– Повертає, чи знаходиться об’єкт близько до датчика кольору.detects– Повертає значення, чи виявляється заданий колір датчиком кольору.colorname– Повертає назву кольору, виявленого датчиком кольору.brightness– Повертає виявлену яскравість об’єкта.hue– Повертає виявлене значення відтінку.
Перед викликом будь-яких функцій-членів colorsensor необхідно створити екземпляр colorsensor , як показано нижче:
/* 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#
Встановлює потужність світла світлодіода датчика кольору. Світло може допомогти датчику кольору чіткіше розпізнавати об’єкти та кольори.
Якщо світло датчика кольору вимкнене, встановлення потужності світла вище 0% увімкне його.
Якщо світло датчика кольору увімкнене, встановлення потужності світла на 0% вимкне його.
Вищий відсоток робить світло яскравішим. Нижчий відсоток робить світло тьмянішим.
Available Functions1 — Вмикає або вимикає світлодіод за допомогою
ledState.void setLight( ledState state );
Parameters2 — Вмикає світлодіод на певну інтенсивність.
void setLight( int32_t intensity, percentUnits units = percent );
Параметр |
Тип |
Опис |
|---|---|---|
|
|
Вмикає або вимикає світлодіод. |
|
|
Рівень потужності для встановлення світла від 0 до 100. |
|
|
Одиниця вимірювання інтенсивності світла: |
Ця функція не повертає значення.
Examples// Set the light power to 50 percent.
Color1.setLight(50, percent);
isNearObject#
Повертає значення, якщо датчик кольору виявляє об’єкт поблизу.
Available Functionsbool isNearObject();
Ця функція не приймає жодних параметрів.
Return ValuesЦя функція повертає логічне значення, яке вказує, чи виявлено об’єкт поблизу:
true– Датчик кольору виявляє об’єкт.false– Датчик кольору не виявляє об’єкт.
// If an object is detected by the Color Sensor, print
// "near object".
if (Color1.isNearObject()){
Brain.Screen.print("near object");
}
detects#
Повертає значення, якщо датчик кольору виявляє заданий колір.
Available Functions1 — Detects a
colorType.bool detects( colorType color );
Parameters2 — Detects a
vex::color.bool detects( vex::color color );
Параметри |
Тип |
Опис |
|---|---|---|
|
|
Дійсний колір:
|
|
|
Дійсний користувацький колір або один із попередньо визначених кольорів, перелічених вище. |
true– Датчик кольору виявляє колір.false– Датчик кольору не виявляє колір.
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#
Повертає найближчий виявлений колір.
Available FunctionscolorType colorname();
Ця функція не приймає жодних параметрів.
Return ValuesПри безпосередньому друку відображається числове значення, пов’язане з цим кольором:
Колір |
Числове значення |
|---|---|
|
0 |
|
1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
7 |
|
8 |
|
9 |
|
10 |
|
11 |
|
12 |
|
13 |
|
14 |
|
15 |
|
16 |
|
17 років |
Функція
convertColorToStringавтоматично створюється VEXcode, коли датчик кольору налаштовано у вікні «Пристрої». Вона доступна лише всередині проектів VEXcode IQ і не працюватиме в інших середовищах.Під час використання
colornameпоза VEXcode, порівняння слід проводити безпосередньо зі значеннямcolorType— будь-яким кольором, який починається зcolorType::(наприклад,colorType::greenабоcolorType::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#
Повертає кількість світла, відбитого від об’єкта.
Вищий відсоток означає, що більше світла відбивається назад до датчика кольору. Нижчий відсоток означає, що менше світла відбивається назад.
Available Functionsdouble brightness(bool bRaw = false);
Параметр |
Тип |
Опис |
|---|---|---|
|
|
Логічне значення для зчитування необроблених даних яскравості замість відсотків. Значення за замовчуванням — |
Число double, що представляє яскравість, виявлену датчиком кольору в діапазоні 0 - 100%, або число double, що представляє необроблені дані, виявлені датчиком.
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#
Повертає відтінок, виявлений датчиком кольору.
Відтінок – це спосіб опису кольору за допомогою чисел на колірному колі.

double hue();
Ця функція не приймає жодних параметрів.
Return ValuesПодвійне число, що представляє значення відтінку, виявленого датчиком кольору, в діапазоні від 0 до 359,00.
Examples// Set a variable, hue, to the value of the hue detected
// by the Color Sensor.
double hue = Color1.hue();