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