опис
Цей датчик повідомляє відстань між ним і найближчим твердим об’єктом (діапазон 50 мм – 1 м). Він обчислює відстань, використовуючи час, який потрібен ультразвуковим хвилям, щоб відбити об’єкт і повернутися до датчика.
Як працює датчик відстані: прослуховування відстані
Датчик відстані використовує ті ж принципи, що й сонарні пристрої для вимірювання звуку. Він посилає крихітний ультразвуковий імпульс через випромінювач з одного боку датчика, а потім вимірює час, необхідний для того, щоб звук відбився назад до приймача з іншого боку датчика. Датчик розраховує відстань на основі того, скільки часу знадобилося звуковому імпульсу, щоб подолати круговий шлях. Потім датчик відстані виконує розрахунок на основі швидкості звуку, щоб повідомити мозку робота, наскільки далеко знаходиться найближчий об'єкт.
Якщо поверхня не є плоскою, як вигнута стіна або куля, ультразвукова хвиля не відбивається від усіх частин однаково або одночасно. Найближча поверхня, достатньо велика, щоб відбити назад помітну кількість хвилі, визначає виявлену відстань до об'єкта.
Загальне використання датчика відстані:
Цей датчик може виявити, чи є предмет перед ним.
Цей датчик може вимірювати відстань між ним і об'єктом.
- Робот може використовувати цей датчик, щоб від'їхати на певну відстань від об'єкта. Перегляньте наведену нижче анімацію, щоб побачити зміну значення відстані під час руху робота, доки відстань не стане меншою за 160 мм.
- Робот може використовувати цей датчик, щоб під'їхати до об'єкта, не торкаючись його. Перегляньте цю анімацію, щоб побачити двох роботів, які використовують датчики відстані для координації свого водіння.
- Значення, які надає цей датчик, можна використовувати для регулювання швидкості робота залежно від того, близько чи далеко він знаходиться від об’єкта чи поверхні. Перегляньте цю анімацію, щоб побачити, як робот регулюється залежно від відстані до стіни.
Використання датчика відстані на змагальному роботі
- Робот може використовувати датчик відстані, щоб ініціювати послідовність дій, коли він знаходиться в потрібному для цього місці. Наприклад, робот може рухатися вперед, доки не виявить, що він знаходиться на відстані 150 мм від стіни, потім повертається на 90 градусів і випускає об’єкт у залікову зону.
- Датчик відстані можна використовувати для ініціювання дій робота, наприклад підбору ігрової фігури, коли об’єкт виявлено в радіусі дії.
- Робот може використовувати датчик відстані, щоб рухатися до об’єкта або поверхні, доки він не опиниться на певній відстані, не торкаючись його. Це можна використовувати, щоб переконатися, що робот не перекине ігрові фігури.
- Робот може використовувати датчик відстані, щоб від’їхати від об’єкта чи поверхні, поки не досягне певної відстані. Це можна використовувати, щоб уникнути зіткнень з іншими роботами на полі.
Використання датчика відстані у VEXcode IQ
Додавання датчика відстані як пристрою у VEXcode IQ
Щоб закодувати датчик відстані у VEXcode IQ, ви повинні спочатку налаштувати датчик відстані. Перегляньте цю статтю, щоб дізнатися більше про налаштування датчика у VEXcode IQ.
Після налаштування датчика на панелі інструментів з’являться команди, які можна використовувати у вашому проекті.
Кодування датчика відстані в блоках
Блок <Object found> — це логічний блок репортера, який повідомляє про умову як істинну або хибну. Логічні блоки, такі як блок <Object found> , вписуються в блоки з шестикутними (шестисторонніми) входами для інших блоків.
Логічний блок <Object found> повідомляє «true», якщо датчик виявляє об’єкт, і «false», якщо датчик цього не робить. Щоб дізнатися більше про логічні блоки, відвідайте статтю Довідка або Форми та значення блоків.
У цьому прикладі блок <Object found> використовується з блоком [Зачекати], щоб змусити робота рухатися вперед, доки датчик відстані не виявить об’єкт. Коли датчик виявить об’єкт, робот припинить рух, як показано на зображенні вище.
Блок (Відстань від) повідомляє про відстань найближчого об’єкта до датчика відстані. Він повідомляє про діапазон від 24 мм до 1000 мм, або від 1 дюйма до 40 дюймів. Блок (Відстань від) – це блок-репортер, який використовується всередині блоків із круговими проміжками.
У цьому прикладі блок (Відстань від) використовується з блоком [Друк] для відображення на екрані мозку відстані між датчиком відстані та об’єктом. Блок (Відстань від) також відображається всередині блоку <Less than> , який знаходиться всередині блоку {Wait until}. Це призведе до того, що робот буде рухатися, доки датчик відстані не виявить об’єкт на відстані менше 50 міліметрів, а потім припинить рух. Це показано в першому відео вище.
Кодування датчика відстані в Python
Примітка:Щоб написати датчик відстані VEX IQ (1-го покоління) на Python, його необхідно підключити до VEX IQ (2-го покоління) Brain. VEX IQ (1-го покоління) Brain не підтримує Python.
distance_7.виявлено_об'єкт()Команда distance.is_object_detected повідомляє «true», якщо об’єкт виявлено, і «false», якщо об’єкт не виявлено.
Примітка:Назва датчика відстані, яка з’являється в команді, відповідає назві, наданій у конфігурації.
|
| У цьому прикладі циклWhile з умовою not використовується разом з командою distance.is_object_detected , щоб робот рухався вперед, доки датчик відстані не виявить об'єкт. Коли датчик виявляє об'єкт, робот зупиняється, як показано у коді Python вище. |
distance_7.distance(MM)Команда distance.distance повідомляє відстань до найближчого об’єкта від датчика відстані. Він повідомляє про діапазон від 24 мм до 1000 мм, або від 1 дюйма до 40 дюймів.
|
|
У цьому прикладі цикл While з умовою not використовується разом з командою distance.is_object_detected , щоб робот рухався вперед, доки датчик відстані не виявить об'єкт. Коли датчик виявляє об'єкт, робот зупиняється. У цьому прикладі команда distance.distance використовується з командою brain.screen.print для відображення на екрані Brain відстані між датчиком відстані та об'єктом. Команда distance.distance також відображається всередині циклу While з умовою , а не . Це змусить робот рухатися, доки датчик відстані не виявить об'єкт на відстані менше 50 міліметрів, а потім зупинить рух. Це показано у першому відео вище. |