Главное назначение ультразвукового датчика, это определение расстояния до предметов, находящихся перед ним. Для этого датчик посылает звуковую волну высокой частоты (ультразвук), ловит обратную волну, отраженную от объекта и, замерив время на возвращение ультразвукового импульса, с высокой точностью рассчитывает расстояние до предмета.
Рис.1
Ультразвуковой датчик может выдавать измеренное расстояние в сантиметрах или в дюймах. Диапазон измерений датчика в сантиметрах равен от 0 до 255 см, в дюймах - от 0 до 100 дюймов. Датчик не может обнаруживать предметы на расстоянии менее 3 см (1,5 дюймов). Так же он не достаточно устойчиво измеряет расстояние до мягких, тканевых и малообъемных объектов. Кроме режимов измерения расстояния в сантиметрах и дюймах датчик имеет специальный режим "Присутствие/слушать". В этом режиме датчик не излучает ультразвуковые импульсы, но способен обнаруживать импульсы другого ультразвукового датчика.
Задача №1: написать программу, останавливающую прямолинейно движущегося робота, на расстоянии 15 см до стены или препятствия.
Для решения задачи воспользуемся уже знакомым нам программным блоком "Ожидание" Оранжевой палитры, переключив его в Режим: "Ультразвуковой датчик" - "Сравнение" - "Расстояние в сантиметрах" (Рис. 2).
Рис.2
Решение:
Рис.3
Задача решена!
Задача №2: написать программу для робота, держащего дистанцию в 15 см от препятствия.
Решение:
Поведение робота будет следующим:
Мы уже знаем, что за организацию выбора выполняемых блоков в зависимости от условия отвечает программный блок "Переключатель" Оранжевой палитры. Установим для блока "Переключатель" режим "Ультразвуковой датчик" - "Сравнение" - "Расстояние в сантиметрах" (Рис. 4 поз.1). Параметр "Тип сравнения" блока "Переключатель" установим в значение "Больше"=2, а "Пороговое значение" определим равным 15 (Рис. 4 поз. 2). Такие настройки программного блока "Переключатель" приведут к следующему поведению программы: При показаниях ультразвукового датчика больше 15 см будут выполняться программные блоки, помещенные в верхний контейнер (Рис. 4 поз. 3), в противном случае будут выполняться программные блоки, помещенные в нижний контейнер (Рис. 4 поз. 4).
Рис. 4
Поместим в эти контейнеры программные блоки, включающие движение вперед и назад. Для того чтобы программный блок "Переключатель" выполнялся многократно, поместим его внутрь программного блока "Цикл" Оранжевой палитры (Рис. 5).
Рис. 5
Загрузите получившуюся программу в робота и запустите ее на выполнение. Если перед роботом отсутствует препятствие, то он поедет вперед. Поднесите руку близко к ультразвуковому датчику, попробуйте отводить - приближать руку. Как ведет себя робот?
Принцип работы ультразвукового датчика очень похож на радар, который применяется для измерения скорости движущихся автомобилей. Как радар узнаёт скорость автомобиля? Он измеряет расстояние до движущегося объекта, ждёт заданное небольшое время и повторяет измерение. Разность расстояний - это пройденный путь автомобиля. Разделив пройденный путь на время между двумя измерениями, можно найти скорость, с которой двигался объект измерения.
Давайте же научим и нашего робота работе радара!
Рис.2
Последовательность действий, выполняемых роботом, будет следующей:
Начнём создавать программу для нашего робота-полицейского.
Загрузите программу в робота, расположите робота так, чтобы перед ним на расстоянии 60 сантиметров отсутствовали другие предметы, запустите программу на выполнение. Перемещайте в направлении к роботу игрушечный автомобиль или объемный предмет, наблюдайте за реакцией робота. Попробуйте изменять пороговые значения в программе. Как изменяется поведение робота?