Оптический датчик#
Введение#
Оптический класс optical используется для доступа к данным с оптического датчика EXP. Он использует отраженный свет для обнаружения объектов, определения цветов, а также измерения яркости и оттенка.
Конструкторы классов#
optical(
int32_t index );
Деструктор класса#
Уничтожает оптический объект optical и освобождает связанные с ним ресурсы.
virtual ~optical();
Параметры#
Параметр |
Тип |
Описание |
|---|---|---|
|
|
Интеллектуальный порт, к которому подключен оптический датчик, обозначается как |
Примеры#
// Create an optical instance in Port 1
optical Optical1 = optical(PORT1);
Функции участников#
В класс оптических устройств optical входят следующие функциональные элементы:
setLight— Включает или выключает светодиод оптического датчика.setLightPower— Устанавливает уровень мощности света оптического датчика.isNearObject— Возвращает значение, указывающее, обнаружил ли оптический датчик объект в пределах досягаемости.color— Возвращает цвет, обнаруженный оптическим датчиком.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 instance
optical Optical1 = optical(
PORT1); // Smart Port 1
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");
}
color#
Возвращает цвет, распознанный оптическим датчиком.
Available Functionsvex::color color();
Эта функция не принимает никаких параметров.
Return ValuesЦвет, обнаруженный оптическим датчиком как экземпляр класса цвета.
Возможные цвета:
blackwhitered- Оттенок в диапазоне от 340° до 20°green- Оттенок от 80° до 140°blue- Оттенок от 200° до 240°yellow- Оттенок от 40° до 60°orange- Оттенок от 20° до 40°purple- Оттенок в диапазоне от 240° до 280°cyan- Оттенок в диапазоне от 140° до 200°
// Set a variable, detectColor, to the color detected by the
// Optical Sensor
color detectColor = Optical.color();
// 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,99.
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); }