Рейтинг:  4 / 5

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

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

Введение:

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

 

5.1. Изучаем второй датчик - датчик цвета

Датчик цвета может работать в трех различных режимах: 

  • в режиме "Цвет" датчик может определить цвет поднесенного к нему предмета;
  • в режиме "Яркость отраженного света" датчик направляет световой луч на близкорасположенный предмет и по отраженному пучку определяет яркость предмета;
  • в режиме "Яркость внешнего освещения" датчик может определить - насколько ярко освещено пространство вокруг. 

Датчик цвета

Рис. 1

5.2. Датчик цвета. Режим "Цвет"

В режиме "Цвет" датчик цвета достаточно точно умеет определять семь базовых цветов предметов, находящихся от него на расстоянии примерно в 1 см. Это следующие цвета: "черный"=1, "синий"=2, "зеленый"=3, "желтый"=4, "красный"=5, "белый"=6 и "коричневый"=7. Если предмет удален от датчика или некорректно определяется цвет предмета - датчик информирует об этом состоянием "Без цвета"=0.

Давайте, не затягивая, перейдем к практическому занятию!

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

Если вы собирали своего тренировочного робота по инструкции этого курса, то у вас датчик цвета уже размещен внутри робота и направлен вниз. Потребуется приложить некоторые усилия, может быть даже слегка разобрать-собрать нашу конструкцию, чтобы подключить кабелем датчик цвета, например к порту "2" модуля EV3. Для отладки программы нам также понадобится несколько цветных предметов: это могут быть кирпичики конструктора Lego, полоски цветной бумаги или цветные кубики. Для лучшего результата следует взять цвета, максимально приближенные к основным, но датчик довольно неплохо справляется с распознаванием подходящих оттенков. Чтобы не снимать датчик цвета и не крепить его в другом месте, во время выполнения программы можно держать робота перевернутым вверх колесами.

Датчик цвета, на роботе

Рис. 2

5.3. Оранжевая палитра, программный блок "Переключатель"

В решении Задачи №9 нам поможет программный блок "Переключатель" Оранжевой палитры. Этот блок в зависимости от настроек выбирает для выполнения программные блоки, расположенные в одном из своих контейнеров. Рассмотрим настройку этого блока в режиме работы с датчиком цвета.

Создадим новую программу "lesson-5-9", установим в программе блок "Переключатель", выберем режим "Датчик цвета" - "Измерение" - "Цвет" (Рис. 3). В отличие от программного блока "Ожидание", программный блок "Переключатель" не ждет, пока наступит определенное событие, а проверяет текущее состояние и выполняет программные блоки, находящиеся в контейнере, сопоставленном текущему состоянию.

Программный блок "Переключатель"

Рис. 3

Рассмотрим подробнее настройки программного блока "Переключатель":

  • выбранный режим устанавливает изображение датчика цвета в блоке (Рис. 4 поз. 1),
  • порт, к которому подключен датчик, отображается в соответствующем поле блока (Рис. 4 поз. 2),
  • в настройках каждого программного контейнера выбирается значение, в соответствии с которым будут выполняться программные блоки, вложенные в этот контейнер (Рис. 4 поз. 3),
  • один из контейнеров должен быть объявленным "Вариантом по умолчанию" - в случае, если значению, полученному от датчика, не соответствует ни один контейнер, то выполняется контейнер, объявленный "Вариантом по умолчанию" (Рис.4 поз. 4),
  • Кнопка "+" добавляет программный контейнер в блоке "Переключатель" (Рис. 4 поз. 5),
  • Программный блок "Переключатель" может автоматически растягиваться, чтобы вместить все блоки, помещаемые внутрь. С помощью меток, помеченных красными стрелками, можно самому изменять размеры блока (Рис.4).

Настройки программного блока "Переключатель"

Рис. 4

 Продолжим формирование программного блока "Переключатель":

  • создадим необходимое количество контейнеров, соответствующее количеству цветов для распознавания + вариант "Без цвета",
  • в настройках контейнеров установим распознаваемые цвета,
  • вариантом по умолчанию выберем вариант "Без цвета",
  • в каждый контейнер кроме варианта "Без цвета" (этот контейнер останется пустым) поместим программный блок "Звук" зеленой палитры.
  • каждому цвету сопоставим соответствующий звуковой файл.

Формирование программного блока "Переключатель"

Рис. 5

Наш программный блок "Переключатель" значительно увеличился в размерах. Специальная кнопка (Рис. 6 поз. 1) позволяет переключить режим отображения блока на экране на "Вид с вкладками". Изменим размеры блока для комфортного визуального отображения.

Блок "Переключатель" Вид с вкладками (нажмите для увеличения)

Рис. 6

Осталось вставить наш настроенный программный блок "Переключатель" внутрь программного блока "Цикл" Оранжевой палитры. Программа готова! Загрузим её в робота и протестируем работу! (Рис. 7)

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

Рис. 7

5.4. Оранжевая палитра, программный блок "Прерывание цикла"

Добавим в нашу программу движение. Сделаем следующее поле для выполнения задания:

  • Возьмем белый лист бумаги формата A4 или A3;
  • Нанесем на него последовательно, на равном расстоянии несколько цветных полос. Полосы можно наклеить из цветной бумаги, цветной изоленты или нарисовать и закрасить;
  • можете также загрузить подготовленное изображение и распечатать его на цветном принтере;
  • Последнюю полосу сделаем черного цвета (Рис. 8).

Подготовленное поле для Задачи №10

Рис. 8

Задача №10: необходимо написать программу прямолинейного движения робота, называющего цвета полос, над которыми он проезжает. При достижении черной полосы робот проговаривает "Stop" и останавливается.

За основу решения данной задачи возьмем программу, решающую Задачу №9. При решении Задачи №10 нам потребуется прервать выполнение цикла. Этой цели служит программный блок "Прерывание цикла" Оранжевой палитры. С помощью данного блока можно организовать выход из цикла, заданного параметром "Имя прерывания" (Рис. 9 поз. 1).

Программный блок "Прерывание цикла"

Рис. 9

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

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

  1. Внутрь цикла перед программным блоком "Переключатель" добавим программный блок "Рулевое управление", тем самым заставим нашего робота двигаться (Рис. 10 поз. 1). Во время движения робот будет проверять текущее состояние датчика цвета и произносить название цвета. Если полоски будут широкими, а робот будет двигаться медленно, то, возможно, он станет произносить название цвета более одного раза, так как проверка цвета будет происходить неоднократно. Если такое положение дел вас не устроит - увеличьте скорость робота, чтобы он быстрее проезжал цветные полосы.
  2. В соответствии с условием задачи нам надо изменить поведение контейнера программного блока "Переключатель" для черного цвета.
  3. В программном блоке "Звук" изменим звуковой файл "Black" на "Stop" (Рис. 10 поз. 2).
  4. Добавим в контейнер программный блок, выключающий моторы (Рис. 10 поз. 3).
  5. Нам требуется прервать выполнение программного блока "Цикл", чтобы завершить выполнение программы. Для этого поместим в контейнер программный блок "Превывание цикла" Оранжевой палитры (Рис. 10 поз. 4). У данного программного блока существует только одна настройка - название прерываемого цикла. В сложной программе со множеством циклов важно правильно устанавливать эту настройку, чтобы остановить выполнение нужного цикла (Рис. 10 поз. 5). В нашей программе за программным блоком "Цикл" отсутствуют другие программные блоки, поэтому программа завершится.

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

Рис. 10

Комментарии   

+2 #11 Александр341 22.06.2017 11:15
По просьбе администрации уточняю вопрос заданный выше.
Жена осваивает ведение робототехники в школе и ей достались много лет пролежавшие наборы NXT2. Датчики и блоки NXT2. При обучении детей удобней было бы использовать программу- "LEGO MINDSTORMS Education EV3". Но дойдя до использования датчика света столкнулись с описанной проблемой в Windows. При установке программы на MAK OS проблема повторяется.
Цитировать
+2 #12 Александр341 23.06.2017 00:20
Нашел решение. Если в программе "LEGO MINDSTORMS Education EV3" вместо датчика цвета указать "датчик звука NXT" и "Дб", то подключенный на этот порт датчик света начинает показывать числовые значения от 1 до 100 соответствующие уровню отраженного света. И все работает.
Возможно есть дополнения к "LEGO MINDSTORMS Education EV3" корректно прописывающие датчик света от NXT, я их не нашел, но получившийся вариант тоже устраивает.
Цитировать
+1 #13 Арсений Жемерикин 30.06.2017 17:18
чет не работает. :o :o :-x
Цитировать
+1 #14 Tutor 02.07.2017 10:59
Цитирую Арсений Жемерикин:
чет не работает. :o :o :-x

Здравствуйте, Арсений!
Опишите подробнее, что у вас не получается. Не зная состояния дел, я не смогу вам подсказать решение...
Цитировать
-3 #15 ВикторАртёменко 15.10.2017 13:45
добрый день, мой датчик цвета на все подряд говорит BLACK, даже если не подношу цветов к нему, просто говорит BLACK :-) :-)
Цитировать
-3 #16 Tutor 15.10.2017 15:59
Цитирую ВикторАртёменко:
добрый день, мой датчик цвета на все подряд говорит BLACK, даже если не подношу цветов к нему, просто говорит BLACK :-) :-)

Здравствуйте Виктор!
Проверьте свою программу! Скорее всего вы выбрали в переключателе чёрный цвет выбором по-умолчанию.

Удачи!
Цитировать
+1 #17 Надежда 11.11.2017 06:21
Здравствуйте, у нас следующая проблемка:
Робот едет и на каждом цвете он сначала говорит "blue", а потом правильный цвет. Проверяли на нескольких датчиках, одно и тоже. Программу уже выверили по вашему образцу и все равно( С чем может быть связано, как думаете?
Цитировать
+1 #18 Tutor 11.11.2017 08:17
Цитирую Надежда:
Здравствуйте, у нас следующая проблемка:
Робот едет и на каждом цвете он сначала говорит "blue", а потом правильный цвет.


Здравствуйте, Надежда!
Предполагаю, что у вас в переключателе голубой цвет выбран цветом по-умолчанию Проверьте эту установку Рис. 4 поз. 4
Цитировать
+1 #19 Лолка Кекский 13.11.2017 17:00
строим робота под именем Граф Гомункул,он любит ездить по кругу как упоротый
Цитировать
0 #20 Макс 04.12.2017 12:32
можете помочь заданием?
Цитировать

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

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


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