Модуль датчика цвета
Теория
Датчик цвета чаще всего используется на производстве, в различных отраслях промышленности, таких как текстильная, автоматическая, автомобильная, пищевая, полиграфическая, фармацевтическая и так далее.
Давайте же разберёмся как работает этот датчик. Датчик имеет фотодиодную матрицу 3х4 которая состоит из фотодиодов с красным, зелёным, синим и чистым фильтром. Четыре интегрирующих АЦП одновременно преобразуют усиленные токи фотодиодов в 16-битное цифровое значение, после чего передаёт собранную информацию на управляющий контроллер. Датчик цвета по всем трём параметрам (Красный Зелёный Синий) выдаёт значения от 0 до 256.
Пример показаний датчика для нескольких цветов, приведён в таблице 1. Данные в таблице могут отклоняться на ~5 значений. Для измерений используется каталог цветов K7 RAL. Датчик с подсветкой располагался на расстоянии 1-1.5 см.
Таблица 1
Цвет |
Код цвета |
R |
G |
B |
Красный |
3028 |
160 |
60 |
60 |
Зелёный |
6037 |
60 |
120 |
70 |
Синий |
5002 |
60 |
80 |
120 |
Практика
В расширении есть два блока позволяющие получать информацию с датчика цвета. Первый блок, позволяет нам понять какие конкретно значения красного, зелёного или синего спектра считывает датчик цвета, и далее использовать их в любом назначении.
Второй блок выполняет конкретную функцию, и по большей части создан для упрощения составления программы. Данный блок сравнивает значения с датчика цвета, со значениями в указанных диапазонах. Пользователь вводит минимальные и максимальные значения для 3х спектров, далее блок считывает значение с датчика и сравнивает их с введённым диапазоном, на выходе мы получаем либо true (1) либо false (0).
Итак, нам нужно составить программу, которая будет выделять только красные объекты. Для этого на нужно проверить цвет объекта и зажечь зелёный светодиод.
Итак приступим, для этой программы нам понадобиться:
Раздел “События”:
- “Когда контроллер запущен”
Раздел “Управление”:
- “Всегда” х1, “Если то Иначе” х1
Раздел “Контроллер”:
- “Монохромный светодиод Красный в значение Включено” х2
Раздел “Сенсоры”:
- “Проверить диапазон порт 1 R 0 256 G 0 256 B 0 256” х1
Теперь составляем программу, сначала соединяем блок “Когда контроллер запущен”, блок “Всегда” и внутрь блока “Всегда” добавляем блок “Если то Иначе”.
В условие блока “Если то Иначе”, нужно поставить наш блок с диапазонами “Проверить диапазон порт 1 R 0 256 G 0 256 B 0 256”. Не забываем поменять номер порта, к которому подключён датчик. Далее заполняем диапазоны, для примера возьмём красный цвет из таблицы 1. Не забываем что у датчика есть погрешность, поэтому для нижнего предела устанавливаем значение на 10 меньше чем в таблице, а для верхнего значения на 10 больше. Блок принимает вид “Проверить диапазон порт 5 R 150 170 G 50 70 B 50 70”.
Остаётся только добавить блоки индикации, после “Если то” должен загореться светодиод, поэтому туда мы ставим блок “Монохромный светодиод Красный в значение Включено”, где Красный меняем на Зелёный. После “Иначе”, когда условие не выполняется, нужно выключить светодиод, поэтому туда ставим блок “Монохромный светодиод Красный в значение Включено”, со значениями Зелёный и Выключено.
В этом уроке мы узнали как работает датчик цвета и где он используется. Так же научились с помощью платы контроллера Renics, считывать значения с датчика цвета, а также использовать диапазоны для обнаружения конкретного цвета.