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