Описание
Этот датчик сообщает расстояние между ним и ближайшим твердым объектом (диапазон 50–1 м). Он рассчитывает расстояние, используя время, необходимое ультразвуковым волнам, чтобы отразиться от объекта и вернуться к датчику.
Как работает датчик расстояния: прослушивание расстояния
Датчик расстояния использует те же принципы, что и гидролокаторы, для измерения звука. Устройство посылает крошечный ультразвуковой импульс с помощью излучателя, расположенного с одной стороны датчика, а затем измеряет время, необходимое для того, чтобы услышать отражение звука от приемника на другой стороне датчика. Датчик вычисляет расстояние на основе того, сколько времени потребовалось звуковому импульсу для прохождения сигнала туда и обратно. Затем датчик расстояния, основываясь на скорости звука, производит расчеты, чтобы сообщить мозгу робота, на каком расстоянии находится ближайший объект.
Если поверхность не плоская, как, например, изогнутая стена или шар, ультразвуковая волна не отражается от всех частей одинаково или одновременно. Ближайшая поверхность, достаточно большая для отражения заметного количества волны, определяет расстояние до объекта, на котором он будет обнаружен.
Обычное использование датчика расстояния:
Этот датчик может определить, есть ли перед ним объект.
Этот датчик может измерять расстояние между ним и объектом.
- Робот может использовать этот датчик, чтобы отъехать на определенное расстояние от объекта. Посмотрите анимацию ниже, чтобы увидеть, как изменяется значение расстояния по мере движения робота до тех пор, пока расстояние не станет меньше 160 мм.
- Робот может использовать этот датчик, чтобы подъехать к объекту, не касаясь его. Посмотрите эту анимацию, чтобы увидеть двух роботов, использующих датчики расстояния для координации своего движения.
- Значения, предоставляемые этим датчиком, можно использовать для регулировки скорости робота в зависимости от того, находится ли он рядом или далеко от объекта или поверхности. Посмотрите эту анимацию, чтобы увидеть, как робот адаптируется в зависимости от расстояния до стены.
Использование датчика расстояния на соревновательном роботе
- Робот может использовать датчик расстояния, чтобы инициировать последовательность действий, когда он находится в правильном для этого месте. Например, робот может двигаться вперед до тех пор, пока не обнаружит, что он находится на расстоянии 150 мм от стены, затем повернуть на 90 градусов и выпустить объект в зону зачета очков.
- Датчик расстояния можно использовать для запуска действий робота, таких как взятие игровой фишки, когда объект обнаружен в пределах досягаемости.
- Робот может использовать датчик расстояния, чтобы приближаться к объекту или поверхности до тех пор, пока он не окажется на определенном расстоянии, не касаясь его. Это можно использовать для того, чтобы робот не опрокинул игровые фишки.
- Робот может использовать датчик расстояния, чтобы отъехать от объекта или поверхности до тех пор, пока он не достигнет определенного расстояния. Это можно использовать, чтобы избежать столкновений с другими роботами на поле.
Использование датчика расстояния в VEXcode IQ
Добавление датчика расстояния в качестве устройства в VEXcode IQ
Чтобы закодировать датчик расстояния в VEXcode IQ, необходимо сначала настроить датчик расстояния. Прочтите эту статью, чтобы узнать больше о настройке датчика в VEXcode IQ.
После настройки датчика на панели инструментов появятся команды, которые вы сможете использовать в своем проекте.
Кодирование датчика расстояния в блоках
Блок <Object found> — это логический блок репортера, который сообщает об истинном или ложном условии. Логические блоки, такие как блок <Object found> , помещаются внутри блоков с шестиугольными (шестисторонними) входами для других блоков.
Логический блок <Object found> сообщает «истина», если датчик обнаруживает объект, и «ложь», если датчик этого не делает. Чтобы узнать больше о логических блоках, посетите статью Помощь или формы блоков и их значение.
В этом примере блок <Object found> используется с блоком [Подождать, пока] чтобы заставить робота двигаться вперед до тех пор, пока датчик расстояния не обнаружит объект. Когда датчик обнаружит объект, робот прекратит движение, как показано на изображении выше.
Блок (Расстояние от) сообщает расстояние до ближайшего объекта от датчика расстояния. В нем указан диапазон от 24 мм до 1000 мм, или от 1 дюйма до 40 дюймов. Блок (Расстояние от) — это блок-отчётчик, используемый внутри блоков с круглыми промежутками.
В этом примере блок (Расстояние от) используется с блоком [Печать] для отображения на экране 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 сообщает «истина», если объект обнаружен, и «ложь», если объект не обнаружен.
Примечание:Имя датчика расстояния, отображаемое в команде, соответствует имени, заданному в конфигурации.
|
| В этом примере используется цикл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 с условием not . Это заставит робота двигаться до тех пор, пока датчик расстояния не обнаружит объект на расстоянии менее 50 миллиметров, после чего он остановится. Это показано в первом видео выше. |