Оптичний датчик#
Вступ#
Клас 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. |
|
|
Одиниця вимірювання інтенсивності світла: |
Ця функція не повертає значення.
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); }