Оптичний датчик#
Вступ#
Оптичний клас optical використовується для доступу до даних з оптичного датчика V5. Він використовує відбите світло для виявлення об’єктів, ідентифікації кольорів, вимірювання яскравості та відтінку.
Конструктор класів#
optical Optical = optical(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 , як показано нижче:
// 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");
}
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, що представляє яскравість, виявлену оптичним датчиком, як число 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())// Display a message when the Optical Sensor detects an object. void detected() { Brain.Screen.print("object detected"); }Зареєструйте зворотний виклик всередині
int main()int main() { // Run detected when the Optical Sensor detects an object. Optical.objectDetected(detected); }
objectLost#
Реєструє функцію зворотного виклику на випадок втрати об’єкта.
Available Functionsvoid objectLost(void (* callback)(void));
Параметр |
Тип |
Опис |
|---|---|---|
|
|
Раніше визначена функція, яка виконується, коли оптичний датчик втрачає виявлений об’єкт. |
Ця функція не повертає значення.
ExamplesВизначити функцію зворотного виклику (поза
int main())// Display a message when the Optical Sensor loses an object. void lost() { Brain.Screen.print("object lost"); }Зареєструйте зворотний виклик всередині
int main()int main() { // Run lost when the Optical Sensor loses an object. Optical.objectLost(lost); }