Датчик цвета лего цвета

Обновлено: 26.04.2024

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

Введение:

На этом уроке мы продолжаем знакомство с датчиками набора 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).

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

Введение:

На этом уроке мы продолжаем знакомство с датчиками набора 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).

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

Введение:

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

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

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

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

Рис. 1

Просмотр портов модуля 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.

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

Рис. 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 (Нажмите для увеличения)

Добрый вечер! Подскажите пожалуйста, как написать программу, чтобы установка с солнечными батареями (имитированными солнеч. батареями) на ЕV-3 реагировала на фонарик (на его свет), и автоматически поворачивалась по ходу изменения угла освещенности фонарика.


Здравствуйте, Николай! датчик цвета может измерять только интенсивность светового потока, но не направление источника света.

Добрый день. Подскажите пожалуйста как запомнить цвет? Нам нужно считать два цвета и потом по очереди заехать в зоны таких же цветов.

Добрый вечер! Подскажите пожалуйста, как написать программу, чтобы установка с солнечными батареями (имитированными солнеч. батареями) на ЕV-3 реагировала на фонарик (на его свет), и автоматически поворачивалась по ходу изменения угла освещенности фонарика.


Здравствуйте, Николай! датчик цвета может измерять только интенсивность светового потока, но не направление источника света.

Датчик цвета Lego EV3 позволяет расширить возможности робота. Чтобы робот выполнял более сложные действия нужно научить робота видеть. Человек более восемьдесят процентов информации получает при помощи зрения.

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

Датчик цвета

датчик цвета

Датчик цвета является цифровым датчиком.

На лицевой панели датчика расположено небольшое окошко, в которое поступает свет. Сенсор определяет яркость отраженного света или цвет. Оптимальное расстояние, на котором датчиком корректно могут быть определены цвет или яркость отраженного света около 1 сантиметра.

Имеется три разных режима в которых может работать датчик:

  1. Цвет
  2. Яркость отраженного света
  3. Яркость внешнего освещения.

Режим «Цвет»

Режим «Цвет» позволяет датчику определить цвет находящегося перед ним предмета.

режим цвет

режим «Цвет»

Датчик цвета умеет определять семь различных цветов: черный, синий, зеленый, желтый, красный, белый и коричневый цвета. Также если цвет определяется некорректно если предмет назодится далеко от датчика. Датчик определяет отсутствие цвета и приходит в состояние «без цвета».

Режим «Яркость отраженного света»

В этом режиме датчик направляет световой луч от светодиода на расположенный перед ним предмет и определяет яркость предмета по пучку отраженного света.

яркость отраженного света

яркость отраженного света

Светодиод расположен на лицевой (передней) панели сенсора. Если выбран режим яркость отраженного света, то светодиодом излучается красный свет. Датчик использует в работе шкалу от 0 до 100. Ноль значит очень темный, а 100 означает очень светлый.

Режим «Яркость внешнего освещения»

Такой режим позволяет датчику определить насколько ярко освещено оружающее пространство. Датчик цвета может определяеть силу света, который проникает в окошко из внешней среды. Это может быть солнечный свет, луч фонарика или освещение улиц. Сенсор также применяет шкалу от 0 до 100.

яркость внешнего освещения

яркость внешнего освещения

Для того, чтобы датчик работал наиболее точно в режимах «Цвет» или «Яркость отраженного света», нужно располагать датчик цвета под правильным углом приблизительно в 90 градусов. Исследуемой поверхность должна быть близко, но датчик не должен ее касаться. Расстояние должно приблизительно 1 сантиметр от поверхности. На расстоянии менее 1 сантиметра и более 3 сантиметров датчик уже дает не совсем точные показания.

Работает датчик с частотой дискретизации 1 килогерц. Как и все датчики EV3, датчик цвета подключается к портам ввода программируемого модуля EV3 1, 2, 3 и 4 при помощи плоского соединительного кабеля. По умолчанию датчик цвета подключается к порту ввода номер 3. Если модуль EV3 подключен к компьютеру, то программное обеспечение автоматически определит в какой порт включен датчик.

Использование датчиков цвета

Датчик цвета Lego EV3 часто используется на занятиях, а также на различных соревнованиях, таких как «Сумо роботов», «Кегельринг», «Движение по линии» и многих других.

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

схема подключения датчика освещения

схема подключения датчика освещения

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

Датчики цвета, например, могут определять загрязнение пряжи в текстильной и легкой промышленности. Они устанавливаются в поточной линии передвижения пряжи.

производство пряжи

производство пряжи

Изменение цвета пряжи указывает на ее загрязнение. Когда загрязнение определено, то автоматическая система управления процессом останавливает линию. Это позволяет сократить или полностью исключить вероятность человеческого фактора у уменьшить ошибки при работе. За счет этого повышается точность, и промывка пряжи становиться более эффективной.

Также датчики цвета могут помогать проводить химический анализ. Несколько датчиков цвета помещаются вдоль зоны где происходит химическая реакция.

Химическая реакция

химическая реакция

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

Одним из часто встречающихся видов соревнований является соревнование “Движение робота вдоль черной линии”. В последнее время активно развивается робототехника, открывается множество кружков. Как следствие проводится множество соревнований и конкурсов по робототехнике различного уровня. Это направление называется соревновательная робототехника.

Движение робота по линии

Это соревнование проводится в разных номинациях и категориях. Есть движение по широкой линии (5 см), по узкой линии (1,5 см), включают в движение по линии участки с прерывистой линией. Часто еще используется объезд роботом препятствий (например объезд кирпича) или преодоление препятствий (например, качающийся мост). После преодоления препятствий робот должен вернуться на линию и успешно финишировать.

Так как сейчас есть много типов робототехнических конструкторов, то соревнования также разделяют по категориям. Т.е. движение по линии Lego EV3, отдельно движение по линии Arduino и т.д. Побеждает робот, преодолевший дистанцию за минимальное время не потеряв трассу.

Алгоритмы движения робота

Есть несколько основных алгоритмов движения робота вдоль черной линии с использованием различных типов регуляторов:

  • Релейный регулятор
  • Пропорциональный регулятор
  • Пропорциональный дифференциальный регулятор
  • Кубический регулятор
  • Пропорциональный интегральный регулятор
  • Пропорциональный интегральный дифференциальный регулятор

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

Зрение робота EV3

Робот EV3 не обладает зрением и может воспринимать информацию о линии при помощи датчика цвета EV3.

Зрение робота Lego EV3

Робот и человек по разному видят черную линию. У человека границы черного и белого четко различимы. Робот же видит размытую картину границы черного и белого. Для того, чтобы более точно определить линию, датчик робота должен быть расположен на границе черной линии и белого поля посередине.

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

При этом высота расположения датчика над линией должна быть около 1 см. Но это рекомендуемая высота. На соревнованиях встречаются различные варианты расположения датчика и подбираются они участниками индивидуально.

Калибровка датчика цвета

Для того, чтобы применить указанные алгоритмы нужно откалибровать датчик цвета на реальном поле. Есть два способа калибровки:

  • ручной способ — все вычисления проводятся самостоятельно
  • автоматическая калибровка — вычисления производятся при помощи блоков операций с данными

Датчик работает в режиме отраженного света. Суть метода состоит в том, что мы находим пороговое значение белого и черного цвета.

На практике нужно измерить значение белого цвета, затем черного цвета, суммировать их и разделить на два. Т.е. если обозначить пороговое значение буквой C, значение белого цвета буквой A и значение черного цвета буквой B, то формула будет выглядеть следующим образом:

С = ( A + B ) / 2

Измерить значение белого и черного цвета можно просто поочередно расположив датчик над белой и черной линией и записать значения.

Ручной режим калибровки датчика цвета EV3

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

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

Для примера установлю датчик цвета в порт под номером 3 и сниму показания на белом поле.

Пример калибровки датчика

На экране блока EV3 отобразилось показание в 43 условных единицы. Таким же образом определяем показания датчика на черной линии. Например показания будут 3 условных единицы. Подставляем эти значения в формулу.

С = ( A + B ) / 2 = (43 + 3) / 2 = 46 / 2 = 23

В результате получаем пороговое значение 23 условных единицы.

Автоматическая калибровка датчика цвета

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

Программа с автоматической калибровкой датчика цвета

В первой части программы нужно расположить датчик над белым фоном. Датчик касания расположен в 1 порту. В программе используется блок ожидания действия с датчиком касания. В данном случае установлен параметр “щелчок” — цифра 2 в нижней части блока ожидания. Т.е. нужно нажать и отпустить кнопку датчика.

После этого датчик цвета в режиме отраженного света измеряет значение белого цвета и значение записывается в переменную A.

Во второй части программы нужно расположить датчик над черной линией и также нажать на кнопку датчика касания. Значения черного цвета записываются в переменную B.

В третьей части программы мы считываем значения датчиков из переменной A и B и передаем их значения в блок математики, который находится в режиме “Дополнения”. В этом блоке происходит вычисление по формуле С = ( A + B ) / 2 ирезультат вычисления записывается в переменную С.

Теперь значение переменной С можно использовать в качестве порогового значения серого для дальнейшего использования в алгоритмах движения по линии.

Движение по тонкой линии Arduino

Фрагмент соревнований по робототехнике «Движение по тонкой линии». Также это соревнование называют «Тонкий Триал». Этот очень быстрый робот в номинации роботов Arduino является победителем региональных соревнований.

По условиям соревнований робот Arduino должен совершить объезд кирпича и преодолеть качающийся мост. После преодоления препятствий робот должен вернуться на линию и финишировать не сойдя с трассы. Тонкий триал есть и в категории Lego EV3 роботов.

Читайте также: