Рейтинг:  5 / 5

Звезда активнаЗвезда активнаЗвезда активнаЗвезда активнаЗвезда активна
 

Содержание урока

Введение:

Текущий урок мы посвятим изучению ультразвукового датчика. Данный датчик присутствует только в образовательной версии набора Lego mindstorms EV3. Тем не менее, пользователям домашней версии конструктора советуем тоже обратить внимание на данный урок. Возможно, что прочитав о назначении и использовании этого датчика, вы пожелаете его приобрести в дополнение к своему набору.

7.1. Изучаем ультразвуковой датчик

Главное назначение ультразвукового датчика, это определение расстояния до предметов, находящихся перед ним. Для этого датчик посылает звуковую волну высокой частоты (ультразвук), ловит обратную волну, отраженную от объекта и, замерив время на возвращение ультразвукового импульса, с высокой точностью рассчитывает расстояние до предмета.

Ультразвуковой датчик

Рис. 1

Ультразвуковой датчик может выдавать измеренное расстояние в сантиметрах или в дюймах. Диапазон измерений датчика в сантиметрах равен от 0 до 255 см, в дюймах - от 0 до 100 дюймов. Датчик не может обнаруживать предметы на расстоянии менее 3 см (1,5 дюймов). Так же он не достаточно устойчиво измеряет расстояние до мягких, тканевых  и малообъемных объектов. Кроме режимов измерения расстояния в сантиметрах и дюймах датчик имеет специальный режим "Присутствие/слушать". В этом режиме датчик не излучает ультразвуковые импульсы, но способен обнаруживать импульсы другого ультразвукового датчика.

У нашего робота, собранного по инструкции small-robot-45544, ультразвуковой датчик уже закреплен впереди по ходу движения. Подключим его кабелем к порту "3" модуля EV3 и приступим к разбору практических примеров использования ультразвукового датчика.

Задача №14: написать программу, останавливающую прямолинейно движущегося робота, на расстоянии 15 см до стены или препятствия.

Для решения задачи воспользуемся уже знакомым нам программным блоком "Ожидание" Оранжевой палитры, переключив его в Режим: "Ультразвуковой датчик" - "Сравнение" - "Расстояние в сантиметрах" (Рис. 2). Само решение будет похоже на решение Задачи №7.

Блок Ожидание. Ультразвуковой датчик.

Рис. 2

Решение:

  1. Начать прямолинейное движение вперед (Рис. 3 поз. 1)
  2. Ждать, пока значение ультразвукового датчика не станет меньше 15 см. (Рис. 3 поз. 2)
  3. Прекратить движение вперед (Рис. 3 поз. 3)

Решение Задачи №14

Рис. 3

Задача решена!

Задача №15: написать программу для робота, держащего дистанцию в 15 см от препятствия. 

Решение: 

Поведение робота будет следующим:

  • при значении показания ультразвукового датчика больше 15 см робот будет двигаться вперед, стараясь приблизиться к препятствию;
  • при значении показания ультразвукового датчика меньше 15 см робот будет двигаться назад, стараясь удалиться от препятствия.

Мы уже знаем, что за организацию выбора выполняемых блоков в зависимости от условия отвечает программный блок "Переключатель" Оранжевой палитры. Установим для блока "Переключатель" режим "Ультразвуковой датчик" - "Сравнение" - "Расстояние в сантиметрах" (Рис. 4 поз.1). Параметр "Тип сравнения" блока "Переключатель" установим в значение "Больше"=2, а "Пороговое значение" определим равным 15 (Рис. 4 поз. 2). Такие настройки программного блока "Переключатель" приведут к следующему поведению программы: При показаниях ультразвукового датчика больше 15 см будут выполняться программные блоки, помещенные в верхний контейнер (Рис. 4 поз. 3), в противном случае будут выполняться программные блоки, помещенные в нижний контейнер (Рис. 4 поз. 4).

Блок Переключатель. Ультразвуковой датчик.

Рис. 4

Поместим в эти контейнеры программные блоки, включающие движение вперед и назад. Для того чтобы программный блок "Переключатель" выполнялся многократно, поместим его внутрь программного блока "Цикл" Оранжевой палитры (Рис. 5).

 Решение Задачи №14

Рис. 5

Загрузите получившуюся программу в робота и запустите ее на выполнение. Если перед роботом отсутствует препятствие, то он поедет вперед. Поднесите руку близко к ультразвуковому датчику, попробуйте отводить - приближать руку. Как ведет себя робот? Ждем ваши комментарии к этому уроку.

7.2. Робот-полицейский

Принцип работы ультразвукового датчика очень похож на радар, который применяется для измерения скорости движущихся автомобилей. Как радар узнаёт скорость автомобиля? Он измеряет расстояние до движущегося объекта, ждёт заданное небольшое время и повторяет измерение. Разность расстояний - это пройденный путь автомобиля. Разделив пройденный путь на время между двумя измерениями, можно найти скорость, с которой двигался объект измерения.

Давайте же научим и нашего робота работе радара!

Робот-полицейский

Рис. 6

Последовательность действий, выполняемых роботом, будет следующей:

  • Робот ждёт появления в зоне контроля движущегося объекта;
  • измеряет расстояние до объекта;
  • ждёт 1 секунду;
  • повторно измеряет расстояние до объекта;
  • находит пройденное расстояние и сравнивает его с пороговым значением;
  • выводит на экран результат и подает тревогу в случае превышения скорости.

 Начнём создавать программу для нашего робота-полицейского.

  1. С помощью программного блока "Ожидание" ждём появления объекта в зоне контроля робота (Рис. 7 поз. 1). Расстояние до объекта передаем в программный блок "Математика" (Рис. 7 поз. 4).
  2. С помощью программного блока "Ожидание" ждем 1 секунду.
  3. Второй раз снимаем показание ультразвукового датчика (Рис. 7 поз. 3) и передаем полученное значение в программный блок "Математика" (Рис. 7 поз. 4).
  4. В программном блоке "Математика" находим расстояние, пройденное объектом измерения за 1 секунду. Полученное значение передаем в программный блок "Сравнение" (Рис. 7 поз. 5) и выводим на экран (Рис. 7 поз. 6).
  5. С помощью программного блока "Сравнение" (Рис. 7 поз. 5) сравниваем пройденное расстояние с пороговым значением, равным 10. Результат сравнения двух чисел представляет собой логический вывод. Логический вывод может принимать одно из двух значений: "Да" или "Нет". Этот вывод мы передаем в прогаммный блок "Переключатель" (Рис. 7 поз. 7), настроив его на прием логических значений. Обратите внимание: шины данных, передающие логические значения, окрашены в зеленый цвет, в отличие от желтых шин данных, передающих числовые значения. (В дальнейшем мы подробнее ознакомимся с принципами обработки логических значений).
  6. С помощью программного блока "Переключатель" мы организуем две ветки поведения программы в зависимости от скорости объекта. Если объект за 1 секунду приблизился к роботу, больше чем на 10 см, значит, будем считать его приближение критическим и подадим сигналы тревоги (Рис. 7 поз. 8). В противном случае будем считать, что объект движется медленно, в этом случае робот включит зеленую подсветку клавиш модуля EV3 и произнесёт "Okay".
  7. В конце программы еще раз воспользуемся программным блоком "Ожидание" (Рис. 7 поз. 10) и "придержим" завершение программы на 5 секунд, чтобы успеть прочитать информацию на экране модуля EV3.

Программа для робота-полицейского

Рис. 7 

Загрузите программу в робота, расположите робота так, чтобы перед ним на расстоянии 60 сантиметров отсутствовали другие предметы, запустите программу на выполнение. Перемещайте в направлении к роботу игрушечный автомобиль или объемный предмет, наблюдайте за реакцией робота. Попробуйте изменять пороговые значения в программе. Как изменяется поведение робота? Опишите свои наблюдения в комментарии к этому уроку.

7.3. Ультразвуковой датчик - режим "Присутствие/слушать"

Как уже отмечалось выше, в этом режиме ультразвуковой датчик способен обнаруживать излучение другого ультразвукового датчика. Результатом обнаружения является логическое значение: "Да", если найдено ультразвуковое излучение, или "Нет", если ничего не найдено. Данный режим можно использовать, например, в состязаниях роботов-шпионов (описание режима уже говорит о том, что для его использования необходимо минимум два робота).

Задача № 16: необходимо написать программу, обнаруживающую другого робота, с работающим ультразвуковым датчиком.

Попробуйте написать программу самостоятельно, не подглядывая в решение!

Решение Задачи №16

Используя знания, полученные ранее, попробуйте самостоятельно разобрать вариант решения Задачи №16. Предложите свой вариант решения...

Решение Задачи №16

Комментарии   

+2 #11 НадеждаК 02.06.2017 13:50
Цитирую Александр:
Здравствуйте , у меня есть 1 вопрос
Вот у меня есть 2 цикла :
1. Остановка робота при появлении объекта
2. Робот едет по линии "зиг-загом"

Как их совместить, чтобы робот и ехал по линии и останавливался , видя объект?
https://yadi.sk/i/3o7MhFOO3HNASp
:sad:

У меня такая же проблема. Помогите! Вставляем в цикл с условием и все равно датчик не реагирует.
Цитировать
-2 #12 Иван 18.08.2017 17:47
Здравствуйте. Подскажите пожалуйста какой из глазков датчика излучает сигнал, а какой его принимает?
Цитировать

Добавить комментарий

Внимание!
Возрастная категория посетителей сайта - (10+).
Все комментарии перед публикацией проходят модерацию.


Защитный код
Обновить