Универсальный внешний накопитель для всех iOS-устройств, совместим с PC/Mac, Android
Header Banner
8 800 100 5771 | +7 495 540 4266
c 9:00 до 24:00 пн-пт | c 10:00 до 18:00 сб
0 Comments

Датчик цвета ардуино – большой динамический диапазон


Содержание

  1. Датчик цвета ардуино — большой динамический диапазон
  2. Оцифровка сохраненных напряжений
  3. Автоматическое управление экспозицией

Massimo Gottardi

Датчик цвета ардуино — изображенная на Рисунке 1 схема датчика цвета способна в широком динамическом диапазоне генерировать RGB-триплеты, являющиеся очень полезным атрибутом приложений машинного зрения. В схеме реализовано автоматическое управление экспозицией, благодаря которому значения RGB инвариантны относительно интенсивности освещения.


Рисунок 1. Датчик RGB с автоматическим управлением экспозицией.

Пока микроконтроллер удерживает активный уровень сигнала сброса RES, три RGB фотодиода с общими катодами (U1, Рисунок 2) остаются слегка смещенными в обратном направлении до напряжения VR (в типичном случае до 0.5 В) через три N-канальных MOSFET M1, M2 и M3. После завершения фазы сброса напряжения в узлах R, G и B начинают линейно увеличиваться пропорционально интенсивности каждой цветовой компоненты. Эти сигналы поступают на три компаратора (U2), выходы которых объединены по схеме монтажного «ИЛИ». Первое из напряжений, достигших порогового уровня VTH (с типичным значением 2.6 В), переключает соответствующий компаратор, выходной сигнал которого через инвертор U3A стробирует усилители выборки-хранения (УВХ) U4.


Рисунок 2. RGB датчик S9032.

Оцифровка сохраненных напряжений

Затем датчик цвета ардуино оцифровывает сохраненные напряжения RH, GH и BH для дальнейшей обработки. В принципе, аналого-цифровое преобразование можно выполнять с помощью микроконтроллера и без использования УВХ U4, однако последовательные преобразования привели бы к появлению ошибки выборки сигналов, которая была бы тем больше, чем ярче сигналы и, соответственно, выше скорость нарастания. Альтернативой микроконтроллеру может быть использование трех АЦП.

Диод D1 добавляет дополнительный гистерезис компараторам, а D2 нужен для того, чтобы дать Arduino возможность, установив низкий уровень в узле T2, сохранить сигналы RGB и определить максимальное время экспозиции. Эта функция необходима для того, чтобы гарантировать фиксированный темп преобразования. Временные диаграммы сигналов схемы показаны на Рисунке 3. В момент времени t1, когда R = VTH, уровень напряжения на выходе компаратора U2A становится низким, триплет [RH, GH, BH] фиксируется в УВХ, и в конце процесса оцифровывается микроконтроллером (TADC). По истечении максимального времени экспозиции (t2) микроконтроллер устанавливает на Sh2 низкий уровень и начинает преобразование входных сигналов.


Рисунок 3. Временная диаграмма работы датчика цвета.

Подводя итог, отметим, что поскольку время экспозиции t1 определяется самым ярким из сигналов R, G и B, насыщения какого-либо из каналов не происходит. Компрессия сигналов позволяет при 8-битном АЦП получить динамический диапазон 100 дБ. Более того, чтобы достичь таких характеристик, не требуется настройка ни одного из параметров схемы.

Автоматическое управление экспозицией

Рисунок 4 поясняет, каким образом автоматическое управление экспозицией позволяет получить большой динамический диапазон измерений. С учетом поставленной цели, для каждой интенсивности света время экспозиции всегда будет таким, чтобы гарантированно имелся участок, на котором значения [RH, GH, BH] постоянны.


Рисунок 4. Пример двух RGB-триплетов, полученных от одного объекта при
разных уровнях освещенности. [R1,G1,B1] – яркие сигналы, выборка
которых произошла в момент времени Ta, в то время как [R2,G2,B2]
– слабые сигналы, выбранные в момент Tb. Поскольку
[R1,G1,B1]Ta = [R2,G2,B2]Tb, цветность объекта не зависит от
интенсивности освещения.

Хотя промышленностью выпускаются законченные RGB датчики с цифровыми интерфейсами (например, Avago APDS-9950, ams TMG3993), возможность автоматического управления экспозицией в них не предусмотрена, поэтому для получения аналогичной функциональности потребовались бы многократные измерения и активное использование вычислительных ресурсов микроконтроллера.

Источник: edn.com

Датчик цвета tcs230 в категории “Техника и электроника”

Датчик кольору GY-31 TCS230 TCS3200

На складе

Доставка по Украине

260 грн

Купить

Датчик распознавания цвета TCS230, модуль Arduino

Доставка по Украине

125 грн

Купить

Датчик распознавания цвета TCS230 для Arduino

Доставка по Украине

по 184 грн

от 2 продавцов

184 грн

221 грн

Купить

Датчик кольору TCS3200D/TCS230

Заканчивается

Доставка по Украине

290 грн

Купить

Датчик распознавания цвета TCS230

На складе в г. Одесса

Доставка по Украине

385 — 413 грн

от 2 продавцов

413 грн

Купить

Одесса

Сенсор кольору TCS230

На складе

Доставка по Украине

255 грн

Купить

Модуль датчика цвета TCS3200

На складе

Доставка по Украине

159.90 грн

Купить

Модуль датчика цвета RGB TCS34725

Доставка из г. Днепр

129.60 грн

Купить

Датчик распознавания цвета TCS230 TCS3200 Arduino

На складе

Доставка по Украине

246.23 грн

Купить

Датчик распознавания цвета TCS230 TCS3200 Arduino

Недоступен

246.23 грн

Смотреть

Датчик цвета TCS230 TCS3200 Цветовой сенсор Color Recognition Sensor Detector Module For MCU Arduino

Недоступен

200 грн

Смотреть

Датчик распознавания цвета TCS230, модуль Arduino

Недоступен

167. 90 грн

Смотреть

Датчик распознавания цвета TCS230

Недоступен

275 грн

Смотреть

Датчик цвета TCS3200 GY31 Arduino AVR Pic (14207)

Недоступен

157 грн

Смотреть

Датчик цвета TCS3200 GY-31 Arduino (16660)

Недоступен

241 грн

Смотреть

Смотрите также

Датчик распознавания цвета TCS34725 поддержка RGB I2C STM32 (17860)

Недоступен

166 грн

Смотреть

Модуль макетной платы RGB с датчиком цвета TCS34725 Arduino (17250)

Недоступен

172 грн

Смотреть

Перемычка (мама-мама) 200 мм (10P)

Недоступен

14 грн

Смотреть

Датчик распознавания цвета TCS230, модуль Arduino

Недоступен

140 грн

Смотреть

Датчик распознавания цвета TCS230, модуль Arduino

Недоступен

140 грн

Смотреть

Датчик распознавания цвета TCS230 TCS3200 Arduino

Недоступен

150 грн

Смотреть

Датчик распознавания цвета TCS230, модуль Arduino

Недоступен

241 грн

Смотреть

Датчик цвета TCS230

Недоступен

94. 50 грн

Смотреть

Датчик распознавания цвета TCS230, модуль Arduino

Недоступен

140 грн

Смотреть

Датчик распознавания цвета TCS230, модуль Arduino

Недоступен

140 грн

Смотреть

Датчик распознавания цвета TCS230, модуль Arduino

Недоступен

140 грн

Смотреть

Датчик распознавания цвета TCS230, модуль Arduino

Недоступен

140 грн

Смотреть

Датчик распознавания цвета TCS230, модуль Arduino

Недоступен

140 грн

Смотреть

Датчик цвета GY-31 TCS230 TCS3200

Недоступен

110 грн

Смотреть

Датчик цвета Arduino, используемый в больницах

Это руководство посвящено взаимодействию датчиков цвета с Arduino. Разработаем автономную систему передвижения пациентов в больницах. Датчик цвета, который я собираюсь использовать в проекте, — Adafruit TCS34725. Adafruit предоставила предопределенные библиотеки Arduino для этого датчика. Он потребляет от 3,3 В до 5 В и выводит данные на интерфейс I2C.

Цветные полосы на полу больницы. Полосы начинаются от входа в больницу и ведут к определенному отделению (скорой помощи и т. д.) или палате.

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

Чтобы добиться вышеперечисленного функционально, мы должны преодолеть несколько ограничений:

  • Как повернуть?
  • Что делать, если датчик выходит из строя?

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

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

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

Одноцветный датчик:

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

Поворот

Повороты трудно предсказать с помощью датчиков цвета. Один из способов повернуть — снизить скорость и сначала немного сдвинуться влево и посмотреть, находимся ли мы в цветовом диапазоне. Если не двигаемся немного вправо, повторяем процесс, пока снова не выровняемся.

Другой способ — приклеить небольшой кусочек полоски другого цвета по бокам основной полоски.

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

Ультразвуковой датчик

Если впереди какое-либо препятствие, мы хотим, чтобы наша платформа остановилась. Лучшее решение — прикрепить перед платформой ультразвуковой датчик, чтобы при обнаружении какого-либо препятствия он немедленно останавливался.

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

Принципиальная схема

Четыре двигателя постоянного тока подключены к цифровым контактам (10,11,12,13) ​​Arduino. Внешний драйвер двигателя управляет двигателями. Внешний драйвер двигателя имеет регулятор напряжения и тока, который удовлетворяет потребности двигателей в мощности. Диоды маховика на драйвере двигателя защищают ядро ​​Arduino от обратной ЭДС.

Датчик цвета подключен к аналоговым контактам (A4 и A5) Arduino. Датчик питается от выхода питания Arduino.

Код проекта

Сначала я импортировал библиотеку Adafruit для датчика цвета и библиотеку I2C в эскиз Arduino. Затем определяется скорость обработки датчика цвета. Через 700 мс мы получим новое показание с датчика. Переменная скорость управляет скоростью двигателя.

Где 0 означает выключенный двигатель, а 255 — максимальную скорость. В функции настройки инициализируются цифровые контакты, управляющие двигателями и датчиком цвета.

В основной функции захватываются цвета — датчики цвета выводят цвет в значениях RGB (красный, зеленый и синий). Мы должны построить систему, которая знает точный цвет вручную. Каждый R, B и G — это 8-битный цвет. Таким образом, общее количество представленных цветов равно 256*256*256=16777216.

Чтобы точно знать каждый цвет, мы должны обучить нашу систему. Представьте векторы RBG в Arduino и сравните их с выходными данными датчика. Это утомительная задача, и, прежде всего, мы не можем представить все цвета 16777216. Диапазон цветовых кодов может быть сгруппирован, и решения могут быть приняты на основе групп.

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

На приведенной выше диаграмме показана температура цветов. В скетче Arduino постоянно отслеживается температура цвета. При обнаружении каких-либо изменений вносятся коррективы путем перемещения платформы влево и вправо.

Примечание : Приведенный выше прототип проекта требует длительного обучения. Хотя на рынке доступны гораздо лучшие решения. Мы узнали, как можно решить эту задачу с помощью датчика цвета.

Создадим проект своими руками: Где купить запчасти?

Adafruit Color Sensor: Mouser
Arduino: Mouser Electronics
Платформа разработки транспортных средств: Digikey
Драйвер двигательного Датчик и оборудование Arduino – Пример MATLAB и Simulink

Основное содержимое

Открытый пример

В этом примере показано, как использовать пакет поддержки Simulink® для аппаратного обеспечения Arduino® для измерения частоты и рабочего цикла компонента красного цвета объекта с помощью датчика цвета TCS230 и аппаратного обеспечения Arduino.

Supported Arduino Boards:

  • Arduino Due

  • Arduino MKR Zero

  • Arduino Mega 2560

  • Arduino Mega ADK

  • Arduino MKR 1000

  • Arduino MKR WIFI 1010

  • Arduino Leonardo

  • Arduino Micro

  • Arduino Nano 3.0

  • Arduino Nano 33 IoT

  • Arduino Uno

  • Arduino Robot Control board

  • Arduino Robot Motor board

Введение

В этом примере датчик цвета TCS230 (датчик цвета RGB) преобразует компонент красного цвета объекта, обнаруженного фотодиодом, в прямоугольную волну с помощью преобразователя цвета в частоту. Частота прямоугольной волны прямо пропорциональна интенсивности красного компонента, обнаруженного фотодиодом. Фотодиод установлен на датчике цвета TCS230.

Датчик цвета TCS230 считывает цвет RGB на основе комбинации контактов S2 и S3. Масштабированный процент частоты, выдаваемый датчиком цвета, изменяется в зависимости от комбинации контактов S0 и S1. В этом примере контакты датчика цвета настроены на обнаружение красного компонента цвета объекта, расположенного перед датчиком, с выходной масштабированной частотой 100%.

Для получения дополнительной информации о датчике цвета TCS230 см. его техническое описание.

Предпосылки

Перед тем, как приступить к этим примерам, мы рекомендуем вам пройти курсы «Начало работы с оборудованием Arduino» и «Общение с оборудованием Arduino».

Необходимое оборудование

Задача 1: Настройка оборудования

Подключите датчик цвета TCS230 к плате Arduino, используя эти штырьковые соединения.

 Номер контакта датчика цвета TCS230 | Номер контакта платы Arduino
-------------------------------------------------- ------------------
             ВКК | 3,3 В или 5 В
             ЗАЗЕМЛЕНИЕ | ЗАЗЕМЛЕНИЕ
             S0 | 36
             С1 | 38
             С2 | 40
             С3 | 42
             ВНЕ | 2 

Задача 2.

Настройка модели Simulink и калибровка параметров

Этот пакет поддержки предоставляет предварительно сконфигурированную модель для измерения частоты и рабочего цикла объекта красного цвета. Выходная частота датчика цвета TCS230 масштабируется до 100%.

Чтобы открыть модель, запустите эту команду в командном окне MATLAB®:

 open_system('arduino_tcs230_frequency_dutycycle_measurement')
 

1. Настройте параметр Input Capture pin номер в блоке Input Capture. Контакт Out датчика цвета TCS230 подключен к входному контакту захвата платы Arduino. Обязательно введите тот же номер вывода в параметр Input Capture Pin number . Для получения дополнительной информации о настройке вывода захвата ввода на поддерживаемых платах Arduino щелкните View map pin в диалоговом окне Block Parameters.

2. Дважды щелкните панель Initialize в модели, чтобы открыть подсистему Initialize Function .

Область настройки разделена на две части: Конфигурация масштабирования частоты и Конфигурация типа фотодиода . Используйте эту таблицу для подключения контактов датчика TCS230 к указанным контактам на плате Arduino, чтобы обнаружить объект красного цвета с выходной частотой, масштабированной до 100%. Настройте ту же комбинацию в параметре Pin number каждого контакта датчика цвета TCS230. Проверьте значение параметра Constant Value в блоке Constant, соответствующем каждому контакту датчика цвета TCS230.

 Контакт датчика цвета TCS230 | Пин платы Arduino | Значение, установленное в блоке констант
-------------------------------------------------- ----------------------------------------
            S0 | 36 | Высокий
            С1 | 38 | Высокий
            С2 | 40 | Низкий
            С3 | 42 | Низкий 

Задача 3: запустить Simulink Model

1. На вкладке Hardware модели Simulink в разделе Mode выберите Run on board и затем щелкните Monitor & Tune .

2. Поместите предмет красного цвета перед датчиком цвета TCS230. Наблюдайте, как изменяются значения, отображаемые в параметре Частота .

Примечание : Датчик цвета TCS230 всегда выдает прямоугольную волну. Для получения дополнительной информации см. техническое описание датчика цвета TCS230.

Другие вещи, которые стоит попробовать

  • Настройте значения контактов датчика цвета TCS230 для обнаружения компонентов зеленого и синего цветов с различными шкалами выходной частоты. Вам нужно будет отобразить значения цвета в соответствии с коэффициентом масштабирования, который вы выбрали для выходной частоты.

  • Обратите внимание, как значения, отображаемые в параметре Частота , изменяются для объектов с более светлым или более темным оттенком красного.

Ссылки по теме

Для получения дополнительной информации о

Функция инициализации Подсистема, см.

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *