Датчик об’єктів#

Вступ#

Клас objectdetector використовується для вимірювання відбивної здатності та виявлення об’єктів за допомогою датчика об’єктів.

Конструктор класів#

objectdetector( 
  triport::port &port, 
  bool           bReverse = false );

Деструктор класів#

Знищує об’єкт objectdetector та звільняє пов’язані з ним ресурси.

virtual ~objectdetector();

Параметри#

Параметр

Тип

Опис

port

triport::port &

3-провідний порт, до якого підключено датчик об’єктів, записується як Brain.ThreeWirePort.X або ExpanderName.X, де X – літера порту (наприклад, Brain.ThreeWirePort.A або Expander1.A).

bReverse

bool

Додаткове логічне значення для зміни напрямку датчика об’єктів:

  • false (за замовчуванням) — Не змінювати напрямок
  • true — Змінити напрямок

Приклади#

// Create an objectdetector instance in Port A
objectdetector ObjectSensorA = objectdetector(Brain.ThreeWirePort.A, true);

Функції-члени#

Клас objectdetector містить такі функції-члени:

  • reflectivity — Повертає відбивну здатність, виявлену датчиком об’єкта.

  • isObjectDetected — Повертає, чи виявляє датчик об’єкта об’єкт.

  • setDetectionThreshold — Встановлює діапазон виявлення датчика об’єктів.

  • objectDetected — Реєструє функцію, яка викликається, коли датчик об’єктів виявляє об’єкт.

  • objectLost — Реєструє функцію, яка викликається, коли Датчик об’єктів втрачає об’єкт.

Перед викликом будь-яких функцій-членів objectdetector необхідно створити екземпляр objectdetector , як показано нижче:

// Create an objectdetector instance in Port A
objectdetector ObjectSensorA = objectdetector(Brain.ThreeWirePort.A, true);

reflectivity#

Повертає значення відбивної здатності, виміряне датчиком об’єкта.

Available Functions
int32_t reflectivity( 
  percentUnits units = percentUnits::pct );

Parameters

Параметри

Тип

Опис

units

percentUnits

Одиниця вимірювання, що представляє відбивну здатність:

  • percent / pct — відсотки

Return Values

Повертає значення int32_t , яке представляє відбивну здатність, виміряну детектором об’єктів, у відсотках у діапазоні від 0 до 100%.

Examples
// Display the detected reflectivity on the Brain's screen
int32_t value = ObjectSensorA.reflectivity();
Brain.Screen.print(value);

isObjectDetected#

Повертає, чи виявлено об’єкт на даний момент детектором об’єктів.

Available Functions
bool isObjectDetected();

Parameters

Ця функція не приймає жодних параметрів.

Return Values

Повертає логічне значення, яке вказує, чи виявлено об’єкт:

  • true — An object is detected.
  • false — No object is detected.

setDetectionThreshold#

Встановлює певне значення порогу виявлення для детектора об’єктів.

Available Functions
void setDetectionThreshold( 
  int32_t      threshold, 
  percentUnits units = percentUnits::pct );

Parameters

Параметри

Тип

Опис

threshold

int32_t

Поріг відбивної здатності для виявлення об’єкта в діапазоні від 0 до 100.

units

percentUnits

Одиниця, що представляє новий поріг:

  • percent / pct — відсотків

Return Values

Ця функція не повертає значення.

Examples
// Set the reflectivity threshold to 50%
ObjectSensorA.setDetectionThreshold(50);

objectDetected#

Реєструє функцію зворотного виклику для випадків виявлення об’єкта.

Available Functions
void objectDetected(void (* callback)(void));

Parameters

Параметр

Тип

Опис

callback

void (*)(void)

Функція зворотного виклику, яка викликається при виявленні об’єкта.

Return Values

Ця функція не повертає значення.

Examples

Визначити функцію зворотного виклику (поза int main())

// Display a message when an object is detected.
void detected() {
  Brain.Screen.print("object detected");
}

Зареєструйте зворотний виклик всередині int main()

int main() {
  // Run detected when the Object Detector detects an object.
  ObjectSensorA.objectDetected(detected);
}

objectLost#

Реєструє функцію зворотного виклику на випадок втрати об’єкта.

Available Functions
void objectLost(void (* callback)(void));

Parameters

Параметр

Тип

Опис

callback

void (*)(void)

Функція зворотного виклику, яка викликається у разі втрати об’єкта.

Return Values

Ця функція не повертає значення.

Examples

Визначити функцію зворотного виклику (поза int main())

// Display a message when an object is lost.
void lost() {
  Brain.Screen.print("object lost");
}

Зареєструйте зворотний виклик всередині int main()

int main() {
  // Run lost when the Object Detector loses an object.
  ObjectSensorA.objectLost(lost);
}