Рейтинг:  5 / 5

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

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

Введение:

На этом уроке мы продолжим изучать использование датчика цвета. Материал, изложенный ниже, очень важен для дальнейшего изучения курса робототехники. После того, как мы научимся использовать все датчики конструктора Lego mindstorms EV3, при решении множества практических задач, будем опираться на знания, полученные на этом занятии.

6.1. Датчик цвета – режим "Яркость отраженного света"

Итак, мы приступаем к изучению следующего режима работы датчика цвета, который называется "Яркость отраженного света". В этом режиме датчик цвета направляет поток красного света на близкорасположенный предмет или поверхность и измеряет количество отраженного света. Более темные предметы будут поглощать световой поток, поэтому датчик будет показывать меньшее значение, по сравнению с более светлыми поверхностями. Диапазон значений датчика измеряется от 0 (очень темный) до 100 (очень яркий). Данный режим работы датчика цвета используется во множестве задач по робототехнике, например, для организации движения робота по заданному маршруту вдоль черной линии, нанесенной на белое покрытие. При использовании этого режима рекомендуется располагать датчик таким образом, чтобы расстояние от него до исследуемой поверхности составляло примерно 1 см (Рис. 1).

Рекомендуемое расположение датчика цвета

Рис. 1

Перейдем к практическим занятиям: датчик цвета уже установлен на нашем роботе и направлен вниз к поверхности покрытия, по которому будет передвигаться наш робот. Расстояние между датчиком и полом соответствует рекомендуемому. Датчик цвета уже подключен к порту "2" модуля EV3. Давайте загрузим среду программирования, подключим робота к среде и для проведения замеров воспользуемся полем с цветными полосами, изготовленным нами для выполнения заданий Раздела 5.4 Урока №5. Установим робота, таким образом, чтобы датчик цвета расположился над белой поверхностью. "Страницу аппаратных средств" среды программирования переключим в режим "Просмотр портов" (Рис. 2 поз. 1). В этом режиме мы можем наблюдать все выполненные нами подключения. На Рис. 2 отображено подключение к портам "B" и "C" двух больших моторов, а к порту "2" - датчика цвета.    

Просмотр портов модуля EV3

Рис. 2

Для выбора варианта отображения показаний датчиков необходимо нажать на изображение датчика и выбрать нужный режим (Рис. 3)

Режим отображения показаний датчика

Рис. 3

На Рис. 2 поз. 2 мы видим, что значение показания датчика цвета над белой поверхностью равно 84. В вашем случае может получиться другое значение, ведь оно зависит от материала поверхности и освещения внутри помещения: часть освещения, отражаясь от поверхности, попадает на датчик и влияет на его показания. Установив робота таким образом, чтобы датчик цвета расположился над черной полосой, зафиксируем его показания (Рис. 4). Попробуйте измерить самостоятельно значения отраженного света над оставшимися цветными полосами. Какие значения у вас получились? Напишите ответ в комментарии к этому уроку.

Показание датчика цвета над черной полосой

Рис. 4

Давайте теперь порешаем практические задачи.

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

Решение:

Проведенный эксперимент показал нам, что при пересечении черной линии, значение датчика цвета в режиме "Яркость отраженного света" равняется 6. Значит, для выполнения Задачи №11 наш робот должен двигаться прямолинейно, пока искомое значение датчика цвета не станет меньше 7. Воспользуемся уже знакомым нам программным блоком "Ожидание" Оранжевой палитры. Выберем требуемый условию задачи режим работы программного блока "Ожидание" (Рис. 5). 

Блок Ожидание. Датчик цвета (нажмите для увеличения)

Рис. 5

Необходимо также настроить параметры программного блока "Ожидание". Параметр "Тип сравнения" (Рис. 6 поз. 1) может принимать следующие значения: "Равно"=0, "Не равно"=1, "Больше"=2, "Больше или равно"=3, "Меньше"=4, "Меньше или равно"=5. В нашем случае установим "Тип сравнения" в значение "Меньше". Параметр "Пороговое значение" установим равным 7 (Рис.6 поз. 2).

Настройка блока Ожидание

Рис. 6

Как только установится значение датчика цвета меньше 7, что случится, когда датчик цвета окажется расположенным над черной линией, нам необходимо будет выключить моторы, остановив робота. Задача решена (Рис. 7).

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

Рис. 7

Для продолжения занятий нам понадобится изготовить новое поле, представляющее собой черную окружность диаметром примерно 1 метр, нанесенную на белое поле. Толщина линии окружности равняется 2 - 2,5 см. Для основы поля можно взять один лист бумаги размером A0 (841x1189 мм), склеить вместе два листа бумаги размером A1 (594x841 мм). На этом поле разметить линию окружности и закрасить её черной тушью. Можете также скачать макет поля, выполненный в формате Adobe Illustrator, а затем заказать его печать на баннерной ткани в типографии. Размер макета равен 1250x1250 мм. (Просмотреть скачанный ниже макет можно, открыв его в программе Adobe Acrobat Reader)

Поле для занятий (Нажмите, чтобы скачать макет)

Данное поле пригодится нам для решения нескольких классических задач курса робототехники.

Задача №12: необходимо написать программу для робота, передвигающегося внутри круга, окантованного черной окружностью по следующему правилу:

  • робот движется вперед прямолинейно;
  • достигнув черной линии, робот останавливается;
  • робот отъезжает назад на два оборота моторов;
  • робот поворачивает вправо на 90 градусов;
  • движение робота повторяется.

Знания, полученные на предыдущих уроках, помогут вам самостоятельно создать программу, решающую Задачу №12.

Решение задачи №12

  1.  Начать прямолинейное движение вперед (Рис. 8 поз. 1);
  2. Ожидать пересечения черной линии датчиком цвета (Рис. 8 поз. 2);
  3. Двигаться назад на 2 оборота (Рис. 8 поз. 3);
  4. Повернуть направо на 90 градусов (Рис. 8 поз. 4); значение угла поворота расчитано для робота, собранного по инструкции small-robot-45544 (Рис. 8 поз. 5);
  5. Повторять команды 1 - 4 в бесконечном цикле (Рис. 8 поз. 6).

Решение задачи №12 (Нажмите для увеличения)

Рис. 8

К работе датчика цвета в режиме "Яркость отраженного света" мы еще неоднократно вернемся, когда будем рассматривать алгоритмы движения вдоль черной линии. А пока разберем третий режим работы датчика цвета.

6.2. Датчик цвета – режим "Яркость внешнего освещения"

Режим работы датчика цвета "Яркость внешнего освещения" очень похож на режим "Яркость отраженного света", только в этом случае датчик не излучает освещение, а измеряет естественное световое освещение окружающей среды. Визуально данный режим работы датчика можно определить по слабо светящемуся синему светодиоду. Показания датчика изменяются от 0 (отсутствие света) до 100 (самый яркий свет). При решении практических задач, требующих измерения внешнего освещения, рекомендуется располагать датчик, так, чтобы датчик оставался максимально открытым и не загораживался другими деталями и конструкциями. 

Давайте закрепим датчик цвета на нашем роботе так же, как мы крепили датчик касания в Уроке №4 (Рис. 9). Подключим датчик цвета кабелем к порту "2" модуля EV3. Перейдем к решению практических задач.

Установка датчика цвета на робота

Рис. 9

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

Чтобы решить эту задачу, нам надо узнать, как получать текущее значение датчика. А поможет нам в этом Желтая палитра программных блоков, которая называется "Датчики".

6.3. Желтая палитра - "Датчики"

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

Количество программных блоков Желтой палитры отличается в домашней и образовательной версии среды программирования. В домашней версии среды программирования отсутствуют программные блоки для датчиков, не входящих в домашнюю версию конструктора. Но, при необходимости, их можно самостоятельно подключить.

Желтая палитра. Домашняя версия среды программирования

Желтая палитра. Домашняя версия среды программирования.

Образовательная версия среды программирования содержит программные блоки для всех датчиков, которые можно использовать с конструктором Lego mindstorms EV3.

Желтая палитра. Образовательная версия среды программирования

Желтая палитра. Образовательная версия среды программирования.

Вернемся же к решению Задачи №13 и посмотрим, как можно получать и обрабатывать показания датчика цвета. Как мы уже знаем: диапазон значений датчика цвета в режиме "Яркость внешнего освещения" находится в пределах от 0 до 100. Такой же диапазон у параметра, регулирующего мощность моторов. Попробуем показанием датчика цвета регулировать мощность моторов в программном блоке "Рулевое управление".

Решение:

  1. Считать текущее показание датчика цвета в режиме "Яркость внешнего освещения";Датчик цвета. Режим работы.
  2. Подать полученное с датчика цвета значение на вход параметра "Мощность" программного блока "Рулевое управление";
  3. Повторять команды 1 - 2 в бесконечном цикле.

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

Рис. 10

Давайте загрузим получившуюся программу в робота и запустим её на выполнение. Робот поехал медленно? Включим светодиодный фонарик и попробуем подносить его к датчику цвета на разном расстоянии. Что происходит с роботом? Закроем датчик цвета ладонью - что случилось в этом случае? Напишите ответы на эти вопросы в комментарии к уроку.

Задача - Bonus

Загрузите в робота и запустите на выполнение задачу, изображенную на рисунке ниже. Повторите эксперименты со светодиодным фонариком. Поделитесь впечатлениями в комментариях к уроку.

Задача - Bonus (Нажмите для увеличения)

Комментарии   

+8 #1 Татьяна Крылова 17.09.2016 21:35
Хочу получать рассылки с вашего сайта
Цитировать
+6 #2 Tutor 18.09.2016 11:14
Цитирую Татьяна Крылова:
Хочу получать рассылки с вашего сайта

Здравствуйте, Татьяна!

По Вашей просьбе мы организовали почтовую рассылку анонсов новых статей на сайте для зарегистрировавшихся пользователей.

Обязуемся использовать рассылку только для публикации новостей с сайта robot-help.ru.

Вы уже прошли регистрацию?
Цитировать
+7 #3 Анна 09.01.2017 22:51
Спасибо большое, наш Tutor, за очередной увлекательный урок! Вы умеете сделать всё простым и интересным и 9-летнему мальчишке и его 35-летней маме=)) Бонусное задание вообще огонь!=)

Задание 6-12. С математическими блоками у нас простых и элегантных решений не случается пока=))



Но всё работает: https://youtu.be/Ap6Df4RIFIM

Задание 6-13 порадовало всю семью: https://youtu.be/rCBiqidRwI4

Возникла мысль, что при движении по линии в режиме отражённого света можно подавать значения на моторы, чтобы сбрасывал скорость на крутых виражах?
Цитировать
+1 #4 Tutor 10.01.2017 06:39
Здравствуйте, Анна!

Посмотрел ваши видео - молодцы! От меня - Like! ;-)
Цитировать
0 #5 Максим 09.06.2017 11:13
Скорость оборотов двигателей зависит и меняется от яркости внешнего освещения. Как? Почему так происходит?
Объясните мне...
Цитировать
-2 #6 Tutor 14.06.2017 06:02
Цитирую Максим:
Скорость оборотов двигателей зависит и меняется от яркости внешнего освещения. Как? Почему так происходит?
Объясните мне...

Здравствуйте Максим!

Посмотрите внимательно на программу! Мы получаем с датчика значение яркости освещенности и подаем полученное значение в параметр Мощность блока "Рулевое управление". Соответственно, чем больше света попадает на датчик цвета, тем быстрее поедет робот!
Удачи!
Цитировать
0 #7 Арсений Жемерикин 30.06.2017 12:39
спасибо, урок отличный, всё работает, вот только создайте, пожалуйста, урок, как сделать так, чтобы робот ездил ПО ЛИНИИ. Спасибо заранее. :lol: :o
Цитировать

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

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


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