Использование датчика расстояния 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> сообщает «истина», если датчик обнаруживает объект, и «ложь», если датчик этого не делает. Чтобы узнать больше о логических блоках, посетите статью Помощь или формы блоков и их значение.

 

Проект VEXcode IQ Blocks, который использует датчик расстояния для движения вперед до тех пор, пока не найдет объект. Проект гласит: «При запуске двигайтесь вперед, подождите, пока Distance7 обнаружит объект, а затем остановитесь».

В этом примере блок <Object found> используется с блоком [Подождать, пока] чтобы заставить робота двигаться вперед до тех пор, пока датчик расстояния не обнаружит объект. Когда датчик обнаружит объект, робот прекратит движение, как показано на изображении выше. 

VEXcode IQ Расстояние от блока, который считывает расстояние Distance7 в мм.

Блок (Расстояние от) сообщает расстояние до ближайшего объекта от датчика расстояния. Сообщается о диапазоне отмм до 1000 мм или от 1 до 40 дюймов. Блок (Расстояние от) — это блок репортера, который используется внутри блоков с круговыми пробелами.

 

Проект VEXcode IQ Blocks использует датчик расстояния для движения вперед до тех пор, пока расстояние не станет меньше 50 мм. Проект гласит: «При запуске двигайтесь вперед, выведите расстояние Distance7 в мм на экран Brain, подождите, пока расстояние Distance7 в мм не станет меньше 50, а затем остановите движение».

В этом примере блок (Расстояние от) используется с блоком [Печать] для отображения на экране Brain расстояния между датчиком расстояния и объектом. Блок (Расстояние от) также отображается внутри блока <Less than> , который находится внутри блока {Wait until}. Это заставит робота двигаться до тех пор, пока датчик расстояния не обнаружит объект на расстоянии менее 50 миллиметров, а затем прекратит движение. Это показано в первом видео выше.

Кодирование датчика расстояния на Python

Примечание:Чтобы запрограммировать датчик расстояния VEX IQ (1-го поколения) на Python, его необходимо подключить к мозгу VEX IQ (2-го поколения). Мозг VEX IQ (1-го поколения) не поддерживает Python.

distance_7.is_object_detected()

Команда distance.is_object_detected сообщает «истина», если объект обнаружен, и «ложь», если объект не обнаружен.

Примечание:Имя датчика расстояния, отображаемое в команде, соответствует имени, заданному в конфигурации. 

drivetrain.drive(FORWARD)
пока не distance_7.is_object_detected()
wait(20, MSEC)
drivetrain.stop()
В этом примере циклWhile с условием , а не используется с командой distance.is_object_detected , чтобы заставить робота двигаться вперед до тех пор, пока датчик расстояния не обнаружит объект. Когда датчик обнаруживает объект, робот прекращает движение, как показано в коде Python выше.
расстояние_7.расстояние(ММ)

Команда distance.distance сообщает расстояние до ближайшего объекта от датчика расстояния. Он сообщает о диапазоне от24 мм до 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 для отображения на экране Brain расстояния между датчиком расстояния и объектом. Команда 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: