Оптический датчик#
Введение#
Класс optical используется для доступа к данным от оптического датчика. Он использует отраженный свет для обнаружения объектов, определения цветов, а также измерения яркости и оттенка.
Конструктор класса#
optical Optical = optical(index);
Деструктор класса#
Уничтожает оптический объект optical и освобождает связанные с ним ресурсы.
virtual ~optical();
Параметры#
Параметр |
Тип |
Описание |
|---|---|---|
|
|
Интеллектуальный порт, к которому подключен оптический датчик, обозначается как |
Примеры#
// Create an optical instance in Port 1
optical Optical1 = optical(PORT1);
Функции участников#
В класс оптических устройств optical входят следующие функциональные элементы:
setLight— Включает или выключает светодиод оптического датчика.setLightPower— Устанавливает уровень мощности света оптического датчика.isNearObject— Возвращает значение, указывающее, обнаружил ли оптический датчик объект в пределах досягаемости.colorname— Returns the color detected by the Optical Sensor.brightness— Возвращает количество света, отраженного от объекта.hue— Возвращает оттенок, обнаруженный оптическим датчиком.objectDetected— Регистрирует функцию, которая будет вызвана, когда оптический датчик обнаружит объект.objectLost— Регистрирует функцию, которая будет вызываться, когда оптический датчик потеряет объект.
Перед вызовом любых функций-членов optical необходимо создать экземпляр optical , как показано ниже:
/* This constructor is required when using VS Code.
Optical Sensor configuration is generated automatically
in VEXcode using the Device Menu. Replace the values
as needed. */
// Create an optical object in Port 1
optical Optical1 = optical(PORT1);
setLight#
Включает или выключает светодиод оптического датчика. Подсветка помогает оптическому датчику более четко распознавать объекты и цвета.
Available Functionsvoid setLight(ledState state);
Параметр |
Тип |
Описание |
|---|---|---|
|
|
Включает или выключает светодиод. |
Эта функция не возвращает значения.
Examples// Turn on LED with previous intensity.
Optical.setLight(ledState::on);
setLightPower#
Задает яркость подсветки оптического датчика. Подсветка помогает оптическому датчику более четко распознавать объекты и цвета.
Чем выше процентное значение, тем ярче свет. Чем ниже процентное значение, тем тусклее свет.
Если подсветка оптического датчика выключена, установка мощности подсветки выше 0% включит её.
Если индикатор оптического датчика горит, установка мощности индикатора на 0% выключит его.
Available Functionsvoid setLightPower(
int32_t intensity,
percentUnits units = percent );
Параметр |
Тип |
Описание |
|---|---|---|
|
|
Уровень мощности для регулировки яркости света варьируется от 0 до 100. |
|
|
The unit that represents the light intensity: |
Эта функция не возвращает значения.
Examples// Set the light power to 50 percent.
Optical.setLightPower(50, percent);
isNearObject#
Возвращает значение, указывающее, обнаружил ли оптический датчик объект в пределах досягаемости.
Available Functionsbool isNearObject();
Эта функция не принимает никаких параметров.
Return ValuesЭта функция возвращает логическое значение, указывающее, обнаружен ли находящийся поблизости объект:
true— Поблизости обнаружен объект.false— Объект не обнаружен.
// If an object is detected by the Optical Sensor, print
// "near object".
if (Optical.isNearObject()){
Brain.Screen.print("near object");
}
colorname#
Возвращает цвет, распознанный оптическим датчиком, на основе обнаруженного значения оттенка.
Available Functionsvex::colorType colorname();
Эта функция не принимает никаких параметров.
Return ValuesЦвет, обнаруженный оптическим датчиком как экземпляр класса цвета.
Возможные цвета:
blue– Оттенок от 196° до 229°blue_green– Оттенок от 140° до 195°blue_violet– Оттенок от 230° до 239°green– Оттенок от 84° до 139°orange– Оттенок от 21° до 30°red– Оттенок от 350° до 14°red_orange– Оттенок от 15° до 20°red_violet– Оттенок от 281° до 350°violet– Оттенок от 240° до 280°yellow– Оттенок от 54° до 74°yellow_green– Оттенок от 75° до 83°yellow_orange– Оттенок от 31° до 53°
// Set a variable, detectColor, to the color detected by the
// Optical Sensor
colorType detectColor = Optical.colorname();
// Print the color detected by the Optical Sensor
// to the Brain's screen
Brain.Screen.print(detectColor);
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 Optical Sensor
double brightness = Optical.brightness();
// Print the brightness detected by the Optical 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 Optical Sensor.
double hue = Optical.hue();
objectDetected#
Регистрирует функцию обратного вызова, которая срабатывает при обнаружении объекта.
Available Functionsvoid objectDetected(void (* callback)(void));
Параметр |
Тип |
Описание |
|---|---|---|
|
|
Ранее определенная функция, которая выполняется, когда оптический датчик обнаруживает новый объект. |
Эта функция не возвращает значения.
ExamplesОпределите функцию обратного вызова (вне
int main())// Called when the Optical Sensor detects an object void detected() { // The Brain will print that the Optical Sensor detected an // object to the Brain's screen. Brain.Screen.print("object detected"); }Зарегистрируйте функцию обратного вызова внутри
int main()/* vexcodeInit() is only required when using VEXcode. Remove vexcodeInit() if compiling in VS Code. */ int main() { // Run when the Optical Sensor detects an object. Optical.objectDetected(detected); }
objectLost#
Регистрирует функцию обратного вызова на случай потери объекта.
Available Functionsvoid objectLost(void (* callback)(void));
Параметр |
Тип |
Описание |
|---|---|---|
|
|
Ранее определенная функция, которая выполняется, когда оптический датчик теряет обнаруженный объект. |
Эта функция не возвращает значения.
ExamplesОпределите функцию обратного вызова (вне
int main())// Called when the Optical Sensor loses an object void lost() { // The Brain will print that the Optical Sensor lost an // object to the Brain's screen. Brain.Screen.print("object lost"); }Зарегистрируйте функцию обратного вызова внутри
int main()/* vexcodeInit() is only required when using VEXcode. Remove vexcodeInit() if compiling in VS Code. */ int main() { // Run lost when the Optical Sensor loses an object. Optical.objectLost(lost); }