Використання датчика відстані VEX IQ (1-го покоління).

опис

Цей датчик повідомляє відстань між ним і найближчим твердим об’єктом (діапазон 50 мм – 1 м). Він обчислює відстань, використовуючи час, який потрібен ультразвуковим хвилям, щоб відбити об’єкт і повернутися до датчика.

VEX IQ (1-е покоління) Датчик відстані.


Як працює датчик відстані: прослуховування відстані

Діаграма датчика відстані, який надсилає ультразвук на зелений куб, а потім приймає відбитий звук.

Датчик відстані використовує ті самі принципи, що й ехолот для вимірювання звуку. Він посилає крихітний ультразвуковий імпульс із випромінювачем з одного боку датчика, а потім помножує, скільки часу потрібно, щоб почути, як звук відбивається назад у приймач з іншого боку датчика. Датчик розраховує відстань на основі того, скільки часу знадобилося звуковому імпульсу для проходження туди й назад. Потім датчик відстані робить обчислення на основі швидкості звуку, щоб повідомити мозку робота, наскільки далеко знаходиться найближчий об’єкт. 

Якщо поверхня не плоска, як вигнута стіна чи м’яч, ультразвукова хвиля не відбивається від усіх частин однаково або одночасно. Найближча поверхня, достатньо велика, щоб відбити виявлену кількість хвилі, визначає виявлену відстань до об’єкта.


Загальне використання датчика відстані:

VEXcode IQ Блок знайденого об’єкта, який зчитує Відстань знайденого об’єкта?

Дві діаграми. Угорі датчик відстані вказує на найближчий зелений куб і позначений галочкою. Нижче датчик відстані не спрямований ні на що поблизу, і він позначений символом X.

Цей датчик може виявити, чи є предмет перед ним.

VEXcode IQ Відстань від блоку, який читає Відстань у мм.

Цей датчик може вимірювати відстань між ним і об'єктом.

  • Робот може використовувати цей датчик, щоб від'їхати на певну відстань від об'єкта. Перегляньте наведену нижче анімацію, щоб побачити зміну значення відстані під час руху робота, доки відстань не стане меншою за 160 мм.

  • Робот може використовувати цей датчик, щоб під'їхати до об'єкта, не торкаючись його. Перегляньте цю анімацію, щоб побачити двох роботів, які використовують датчики відстані для координації свого водіння.

  • Значення, які надає цей датчик, можна використовувати для регулювання швидкості робота залежно від того, близько чи далеко він знаходиться від об’єкта чи поверхні. Перегляньте цю анімацію, щоб побачити, як робот регулюється залежно від відстані до стіни.


Використання датчика відстані на змагальному роботі

  • Робот може використовувати датчик відстані, щоб ініціювати послідовність дій, коли він знаходиться в потрібному для цього місці. Наприклад, робот може рухатися вперед, доки не виявить, що він знаходиться на відстані 150 мм від стіни, потім повертається на 90 градусів і випускає об’єкт у залікову зону.  
  • Датчик відстані можна використовувати для ініціювання дій робота, наприклад підбору ігрової фігури, коли об’єкт виявлено в радіусі дії.
  • Робот може використовувати датчик відстані, щоб рухатися до об’єкта або поверхні, доки він не опиниться на певній відстані, не торкаючись його. Це можна використовувати, щоб переконатися, що робот не перекине ігрові фігури.
  • Робот може використовувати датчик відстані, щоб від’їхати від об’єкта чи поверхні, поки не досягне певної відстані. Це можна використовувати, щоб уникнути зіткнень з іншими роботами на полі.

Використання датчика відстані у VEXcode IQ

Додавання датчика відстані як пристрою у VEXcode IQ

Меню пристроїв VEXcode IQ після вибору кнопки «Додати пристрій». Виділено параметр Відстань (1-е покоління).

Щоб закодувати датчик відстані у VEXcode IQ, ви повинні спочатку налаштувати датчик відстані. Перегляньте цю статтю, щоб дізнатися більше про налаштування датчика у VEXcode IQ.

Після налаштування датчика на панелі інструментів з’являться команди, які можна використовувати у вашому проекті.

Кодування датчика відстані в блоках

VEXcode IQ Блок знайденого об’єкта, який читає Distance7 знайшов об’єкт?

Блок <Object found> — це логічний блок репортера, який повідомляє про умову як істинну або хибну. Логічні блоки, такі як блок <Object found> , вписуються в блоки з шестикутними (шестисторонніми) входами для інших блоків.

Логічний блок <Object found> повідомляє «true», якщо датчик виявляє об’єкт, і «false», якщо датчик цього не робить. Щоб дізнатися більше про логічні блоки, відвідайте статтю Довідка або Форми та значення блоків.

 

VEXcode IQ блокує проект, який використовує датчик відстані для руху вперед, поки не знайде об’єкт. У проекті написано: Коли розпочато, їдьте вперед, зачекайте, поки Distance7 знайде об’єкт, а потім зупиніть рух.

У цьому прикладі блок <Object found> використовується з блоком [Зачекати], щоб змусити робота рухатися вперед, доки датчик відстані не виявить об’єкт. Коли датчик виявить об’єкт, робот припинить рух, як показано на зображенні вище. 

VEXcode IQ Відстань від блоку, який зчитує Distance7 відстань у мм.

Блок (Відстань від) повідомляє про відстань найближчого об’єкта до датчика відстані. Він повідомляє про діапазон відмм до 1000 мм або від 1 дюйма до 40 дюймів. Блок (Відстань від) — це блок звіту, який використовується всередині блоків із круглими проміжками.

 

VEXcode IQ блокує проект, який використовує датчик відстані для руху вперед, поки його відстань не становить менше 50 мм. У проекті написано: Коли розпочато, їдьте вперед, надрукуйте відстань Distance7 у мм на Brain, зачекайте, поки відстань Distance7 у мм стане меншою за 50, а потім припиніть рух.

У цьому прикладі блок (Відстань від) використовується з блоком [Друк] для відображення на екрані мозку відстані між датчиком відстані та об’єктом. Блок (Відстань від) також відображається всередині блоку <Less than> , який знаходиться всередині блоку {Wait until}. Це призведе до того, що робот буде рухатися, доки датчик відстані не виявить об’єкт на відстані менше 50 міліметрів, а потім припинить рух. Це показано в першому відео вище.

Кодування датчика відстані в Python

Примітка:Щоб закодувати датчик відстані VEX IQ (1-го покоління) у Python, його потрібно підключити до VEX IQ (2-го покоління) Brain. VEX IQ (1-го покоління) Brain не підтримує Python.

distance_7.is_object_detected()

Команда distance.is_object_detected повідомляє «true», якщо об’єкт виявлено, і «false», якщо об’єкт не виявлено.

Примітка:Назва датчика відстані, яка з’являється в команді, відповідає назві, наданій у конфігурації. 

drivetrain.drive(FORWARD)
поки немає distance_7.is_object_detected()
wait(20, MSEC)
drivetrain.stop()
У цьому прикладі циклWhile із умовою не використовується з командою distance.is_object_detected , щоб робот рухався вперед, доки датчик відстані не виявить об’єкт. Коли датчик виявляє об’єкт, робот припинить рух, як показано в коді Python вище.
distance_7.distance(MM)

Команда distance.distance повідомляє відстань до найближчого об’єкта від датчика відстані. Він повідомляє про діапазон відмм до 1000 мм або від 1 дюйма до 40 дюймів.

drivetrain.drive(FORWARD)
brain.screen.print(distance_7.distance(MM)
поки не distance_7.distance(MM) < 50:
wait(20, MSEC)
drivetrain.stop()

У цьому прикладі цикл While із умовою , а не використовується з командою distance.is_object_detected , щоб робот рухався вперед, доки датчик відстані не виявить об’єкт. Коли датчик виявить об'єкт, робот припинить рух.

У цьому прикладі команда distance.distance використовується з командою brain.screen.print для відображення на екрані мозку відстані між датчиком відстані та об’єктом. Команда distance.distance також відображається всередині циклу While з умовою , а не . Це призведе до того, що робот рухатиметься, доки датчик відстані не виявить об’єкт на відстані менше 50 міліметрів, а потім припинить рух. Це показано в першому відео вище.

Щоб дізнатися більше про кодування датчика відстані в Python, ознайомтеся з розділом 5 курсу інформатики, рівень 1 – Python. 

For more information, help, and tips, check out the many resources at VEX Professional Development Plus

Last Updated: