Датчик цвета

Датчик TCS3200 предназначен для распознавания цвета поверхности. Датчик приобретен как и многие другие модули для Ардуино – на Алиэкспрессе (за 4 доллара). Устройство поставляется в антистатическом пакете.



Датчик цвета

Габаритные размеры модуля 37 х 30 10 мм, в плате имеется четыре крепежных отверстия, диаметром 3 мм, масса устройства составляет 4.1 г.

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

На плате модуля хорошо видны четыре белых светодиода подсветки, между которыми размещен детектор, который представляет собой матрицу из 64 фотодиодов, 16 из которых имеют красный светофильтр, 16 – зеленый, 16 синий и оставшиеся 16 не имеют светофильтра. Рассмотреть матрицу фотодиодов можно в достаточно сильную лупу. В данном устройстве осуществляется преобразование информации от фотодиодов в импульсы с частотой, которая пропорциональна яркости падающего на фотодиоды света. Считывая данные с разных групп светодиодов можно, получить представление о том каков цвет световых лучей, падающих на матрицу фотодиодов.



Датчик цвета

Подключение датчика TCS3200

Всего модуль имеет восемь выводов.

  • VСС – питание 5В,
  • GND – общий провод,
  • OUT – информационный выход,
  • LED – вывод управления светодиодами подсветки,
  • S0 и S1 масштабирование частоты выходного сигнала,
  • S2 и S3 – выбор группы светодиодов [1-5].

При напряжении питания 5В модуль потребляет 21 мА при включенной подсветке и 2 мА при отключенной. Отключение светодиодной подсветки производится подачей низкого логического уровня на вывод LED.

Следует иметь в виду, что при оборванной линии питания светодиоды не гаснут.

Датчик цвета

Частота сигнала на выходе OUT может достигать 500 кГц [5-6], выводы S0 и S1 задают коэффициент деления частоты, если на оба эти вывода пода низкий логический уровень, то устройство отключается.

S0 S1
Отключение
1 2%
1 20%
1 1 100%
Полезное на сайте:
Оптический датчик уровня жидкости: подключение схемы и тесты

Выводы S2 и S3 служат для выбора задействованной группы фотодиодов [1,6]

S2 S3
Красный
1 Синий
1 Белый
1 1 Зеленый

Рассматриваемое устройство требует достаточно серьезного кода для обработки поступающей с него информации. Как понимает, автор матрица фотодиодов в данной конфигурации чипа очень сильно засвечивается светодиодами подсветки [6], а также чувствительный к инфракрасному излучению [7]. Бленда для защиты фотодиодов от прямой засветки светодиодами совершенно необходима, так же, как понимает автор, крайне желателен ИК-фильтр [7]. В качестве бленды автор применил пластмассовую трубку, длинной 12 и внешним диаметром 8 мм, которая обмотана несколькими слоями изоленты, между которыми проложена пищевая фольга. ИК-фильтра у автора нет.

Датчик цвета

Для калибровки датчика была использована программа TCS3200_1 [1]. В процессе калибровки требуется взять однотонную красную, синюю и зеленую поверхности. Автор использовал обложки папок, соответствующих цветов.

Датчик цвета

В процессе калибровки датчика надо поднести цветную поверхность с расстояния 15-10 см вплотную к датчику. При этом надо зафиксировать, как будет меняться диапазон значений для соответствующего канала, возвращаемый программой TCS3200_1.

Испытания датчика цветов

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

Датчик цвета

Датчик цвета

Датчик цвета

Затем из полученных значений для каждого из каналов надо выбрать максимальные и минимальные значения диапазона, которые следует подставить в программу TCS3200_2 [1]. Именно эта программа будет производить распознавание цветов. Значения диапазона нужно подставлять на место второго и третьего параметров функции map [8-9], для красного цвета 52 строка кода, для зеленого – 69, для синего – 86. Как понимает автор, конкретные значения диапазона сильно зависят от условий освещенности, характера поверхности, поэтому калибровать датчик надо в условиях максимально приближенных к тем в которых он будет использоваться. После описанных выше манипуляций датчик, должен быть готов к работе. Результат, возвращаемый программой TCS3200_2

Полезное на сайте:
Модуль CJMCU с фототодиодом OPT101

для красной папки

Датчик цвета

Зеленая папка

Датчик цвета

Синяя папка

Датчик цвета

Черная матовая поверхность (бокс CD-диска)

Датчик цвета

Как хорошо видно, по результатам измерения, красную поверхность датчик, более или менее идентифицирует, а вот отличить зеленую поверхность от синей устройство практически не в состоянии. При низкой интенсивности внешнего сигнала датчик склонен определять синий цвет на любой поверхности. Такое поведение устройства можно объяснить тем, что не был использован инфракрасный фильтр. Дело в том, что к ближнему ИК-излучению чувствительны все фотодиоды [7], а вот человеческий глаз его не видит, таким образом, способность поверхности поглощать и отражать ИК-излучение с длиной волны около 850 нм должно очень серьезно влиять на результаты измерения. В текущем виде датчик подходит, для того чтобы отличать красную поверхность от поверхности иного цвета. При этом оттенки красного в целом опознаются как красный цвет.

Красный картон опознается хорошо

Датчик цвета

Датчик цвета

А вот красная клеенка уже хуже

Датчик цвета

Датчик цвета

Вне конкуренции оказалась эта красная папка.

Датчик цвета

Датчик цвета

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

Датчик цвета

Датчик цвета

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

Датчик цвета

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

Датчик цвета

Таким образом, можно заключить, что в текущем виде без доработки датчик еле справляется с отличием красной поверхности от какой-то другой, о различении оттенков и речи не идет. Хотя это можно объяснить, тем, что попавший автору датчик не вполне исправен, или автор не разобрался с маркировкой выводов, или просто автор допусти при испытании датчиков серьезную ошибку.

Полезные ссылки

  1. wikihandbk.com/wiki/Arduino:Примеры/Гайд_по_использованию_датчика_цвета_TCS230/TCS3200_с_Arduino
  2. роботехника18.рф/датчика-цвета-ардуино-подключение/
  3. alex.lyceum-2.ru/index.php/2015/11/22/datchik-cveta-tcs3200/
  4. robot-kit.ru/article_info.php/articles_id/4/article/-font-color—993300–Statya-pro-modul-opredeleniya-cveta-RKP-TSC3200—font-
  5. umdom.by/arduino/arduino-датчик-распознавания-цвета-tcs3200
  6. forum.amperka.ru/threads/Датчик-цвета-tcs3200.5888/
  7. blog.kvv213.com/2018/01/datchik-sveta-i-tsveta-tcs3200-arduino-mega-chto-to-poluchaetsya/
  8. arduinoplus.ru/coding-arduino/functions/matematika/map/
  9. arduino.ru/Reference/Map

Файлы проекта можете взять в архиве. Материал подготовил специально для сайта 2shemi.ru – Denev