Использование датчика расстояния 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 в мм.

Блок (Расстояние от) сообщает расстояние до ближайшего объекта от датчика расстояния. В нем указан диапазон от 24 мм до 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-го поколения) Brain не поддерживает Python.

distance_7.is_object_detected()

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

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

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

Команда distance.distance сообщает расстояние до ближайшего объекта от датчика расстояния. В нем указан диапазон от 24 мм до 1000 мм, или от 1 дюйма до 40 дюймов.

drivetrain.drive(FORWARD)
brain.screen.print(distance_7.distance(MM)
while not distance_7.distance(MM) < 50:
    wait(20, MSEC)
drivetrain.stop()

В этом примере используется цикл While с условием not а также команда distance.is_object_detected , чтобы робот двигался вперед до тех пор, пока датчик расстояния не обнаружит объект. Когда датчик обнаружит объект, робот прекратит движение.

В этом примере команда distance.distance используется вместе с командой brain.screen.print для отображения на экране Brain расстояния между датчиком расстояния и объектом. Команда distance.distance также показана внутри цикла While с условием not . Это заставит робота двигаться до тех пор, пока датчик расстояния не обнаружит объект на расстоянии менее 50 миллиметров, после чего он остановится. Это показано в первом видео выше.

Чтобы узнать больше о программировании датчика расстояния на Python, ознакомьтесь с модулем 5 курса «Информатика, уровень 1 — Python». 

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

Last Updated: