Цветовой датчик#
Введение#
Класс colorsensor используется для доступа к данным от датчика цвета. Он использует отраженный свет для обнаружения объектов, определения цветов, а также измерения яркости и оттенка.
Конструктор класса#
colorsensor Color1 = colorsensor(index);
Деструктор класса#
Уничтожает объект colorsensor 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. |
|
|
The unit that represents the light intensity: |
Эта функция не возвращает значения.
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 |
Функция
convertColorToStringconvertColorToStringавтоматически создается VEXcode при настройке датчика цвета в окне «Устройства». Она доступна только в проектах VEXcode IQ и не будет работать в других средах.При использовании
colornameвне VEXcode сравнение следует проводить непосредственно со значением colorTypecolorTypeначинающимся с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Число типа double, представляющее значение оттенка, обнаруженного датчиком цвета, в диапазоне от 0 до 359,00.
Examples// Set a variable, hue, to the value of the hue detected
// by the Color Sensor.
double hue = Color1.hue();