Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Смешивание цветов
Форум разработчиков электроники ELECTRONIX.ru > Cистемный уровень проектирования > Математика и Физика
FRANTIK
Доброе время суток уважаемые форумчане.
Я разрабатываю светильник, в котором применяются RGB светодиоды. Светильник управляется интерфейсу (rs-485), принимая RGB значение цвета (3 байта). Яркость каждого светодиода регулируется 8-битным ШИМ.
Проблема у меня с математикой смешивания цветов. Дело в том, что по даташиту каналы разных цветов светодиода имеют различные значения светового потока (например красный -30lm, зелёный-67lm, синий -8,2lm). Поэтому, например если RGB= 255 255 255 (белый цвет) и напрямую задать эти значения в ШИМ каналов светодиода, то в результате белый цвет не получается.
Как правильно получить значения ШИМ для каждого канала, чтобы в результате смешанный цвет соответствовал RGB модели?
Tanya
Цитата(FRANTIK @ Oct 20 2010, 16:29) *
Как правильно получить значения ШИМ для каждого канала, чтобы в результате смешанный цвет соответствовал RGB модели?

Методом тыка и глаза.
TSerg
Вопрос сложный, поскольку никто не гарантирует повторяемость ВАХ и светоотдачи и цветопередачи для серии светодиодов.
Нужна калибровка каждого конкретного девайса.
FRANTIK
Цитата(TSerg @ Oct 20 2010, 15:58) *
Вопрос сложный, поскольку никто не гарантирует повторяемость ВАХ и светоотдачи и цветопередачи для серии светодиодов.
Нужна калибровка каждого конкретного девайса.

Калибровка нужна обязательно, т.к. есть ещё разброс параметров регуляторов тока для светодиодов...
Просто я так понимаю - основная задача - выставить баланс белого.
Т.е. берём самый неяркий канал (синий). Пусть разброс яркости с учётом всех отклонений 10% от указанного в даташите (8,2). Затем подбираем такой коэффициент Kb<1 для ШИМ, что при значении RGB=0 0 255 измеренный световой поток синего канала равнялся 8,2-10%. Т.е. калибруем синий канал. Затем включаем RGB = 255 255 255 и подбираем коэффициенты для зелёного (Kg<1) и красного (Kr<1), чтобы цвет соответствовал белому(с заданной характеристикой). По идее, если теперь выставлять значение ШИМ с этими коэффициентами для каждого цвета, то смешанный цвет будет соответствовать модели RGB. Например, смешав синий и зелёный в равных пропорциях (0 50 50) я должен получить желтый.
Tanya
Цитата(FRANTIK @ Oct 20 2010, 17:21) *
Калибровка нужна обязательно, т.к. есть ещё разброс параметров регуляторов тока для светодиодов...
Просто я так понимаю - основная задача - выставить баланс белого.

Вам для научной калибровки нужно -
1. Специальное устройство, имитирующее Солнце. (Его спектр)
2. Спектрометр.... или человек со стандартным зрением.
Все это не так дешево и просто...
rx3apf
Цитата(FRANTIK @ Oct 20 2010, 17:21) *
Например, смешав синий и зелёный в равных пропорциях (0 50 50) я должен получить желтый.

Правда, что ли ? Или мсье дальтоник, или все ж R + G (50 0 50). А иначе это зовется "Cyan"...
FRANTIK
Цитата(rx3apf @ Oct 20 2010, 16:34) *
Правда, что ли ? Или мсье дальтоник, или все ж R + G (50 0 50). А иначе это зовется "Cyan"...

Да, извиняюсь, ступил...

Цитата(Tanya @ Oct 20 2010, 16:34) *
Вам для научной калибровки нужно -
1. Специальное устройство, имитирующее Солнце. (Его спектр)
2. Спектрометр.... или человек со стандартным зрением.
Все это не так дешево и просто...

Спектрофотометр планируется приобрести, необходимо сначала определится с методикой смешивания и калибровки.
rx3apf
Цитата(FRANTIK @ Oct 20 2010, 17:49) *
Спектрофотометр планируется приобрести, необходимо сначала определится с методикой смешивания и калибровки.

Для светильника спектрофотометр ? Не жирно ли ? Ну, можно, наверное, обойтись и каким-нибудь трехканальным цветосенсором (у Agilent/Avago что-то такое было), но, думаю, "на глаз" для данной задачи будет ничуть не хуже. Вот только на кой хрен (простите мой французский) нужно один байт на цвет при 8-битном ШИМ ? При восьми битах даже и 16 различимых градаций яркости будет получить затруднительно (по опыту, 32 градации, 5 битов, требуют уже 10-битного ШИМ), так что всю посылку свободно можно уместить в два байта.
Nemo2000
Цитата(FRANTIK @ Oct 20 2010, 17:21) *


Формула сложения основных цветов для получения белого.
Е (лм)=0,177R(лм)+0,813G(лм)+0,01В (лм)

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

ЗЫ кстати если исходить из вашей методики калибровки, то белого вы рискуете не получить ибо соотношение относительно синего
R:G:B - 17,7:81,3:1 т.е. при яркости синего 8,2 для получения белого надо 17,7*8,2 = 145,1 красного и 81,3*8,2 = 666,6 зеленого
timm
Люмен - суть спектрально-взвешенный Ватт.
Таблица взвешивания (aka кривая видности V):
http://www.cie.co.at/publ/abst/datatables15_2004/y2.txt

Если взять обратную функцию и свернуть ее с относительной спектральной характеристикой СД,
то получите световой поток или яркость диода, в спектрально-незавизимых единицах,
которые по смыслу соответствуют уровням RGB.
FRANTIK
Цитата(rx3apf @ Oct 20 2010, 16:54) *
Для светильника спектрофотометр ? Не жирно ли ? Ну, можно, наверное, обойтись и каким-нибудь трехканальным цветосенсором (у Agilent/Avago что-то такое было), но, думаю, "на глаз" для данной задачи будет ничуть не хуже. Вот только на кой хрен (простите мой французский) нужно один байт на цвет при 8-битном ШИМ ? При восьми битах даже и 16 различимых градаций яркости будет получить затруднительно (по опыту, 32 градации, 5 битов, требуют уже 10-битного ШИМ), так что всю посылку свободно можно уместить в два байта.

Не понял насчёт ШИМ. Каждый светодиод управляется импульсным регулятором тока 350 мА. Контроллер при помощи ШИМ управляет регулятором (включает-выключает выход регулятора). Для каждого канала можно обеспечить 256 градаций яркости.
Причём зависимость яркости в люксах от скважности ШИМ практически линейная. Конечно, т.к. наш глаз воспринимает изменение яркости нелинейно (логарифмическая зависимость) нам кажется, что на больших значениях ШИМ она практически не изменяется.
Хотя для возможности калибровки необходимо увеличить разрядность ШИМ, правда тут возникают проблеммы с регулятором тока, т.к.он не сможет обеспечить разрядность больше 9 бит...
rx3apf
Цитата(FRANTIK @ Oct 20 2010, 20:28) *
Для каждого канала можно обеспечить 256 градаций яркости.
Причём зависимость яркости в люксах от скважности ШИМ практически линейная. Конечно, т.к. наш глаз воспринимает изменение яркости нелинейно (логарифмическая зависимость) нам кажется, что на больших значениях ШИМ она практически не изменяется.

Вот про это я и говорю - практического смысла в 256 линейных градациях яркости мало.

FRANTIK
Вот интересная Application Note от Cypress. Описывается принцип смешивания цветов трёх светодиодов RGB. Правда цвет там задаётся не в RGB формате, а в xyY...
Tanya
Цитата(FRANTIK @ Oct 21 2010, 10:50) *
. Описывается принцип смешивания цветов трёх светодиодов RGB.

Лучше напишите, зачем Вам это все нужно. И кто и чем это будет контролировать.
Если спектральные характеристики Ваших излучателей стабильные и воспроизводимые, то нужно только один раз (на стороне?) подобрать их токи максимально близко к белому.
А потом, измеряя одним стабильным детектором коэффициент между током и светом для каждого (?) светодиода, можно уже вычислить все, что нужно.
FRANTIK
Цитата(Tanya @ Oct 21 2010, 10:07) *
Лучше напишите, зачем Вам это все нужно. И кто и чем это будет контролировать.

Светильники управляются по DMX, 3 канала DMX для задания цвета. Необходимо так откалибровать светильник, чтобы он выдавал цвет, соответствующий RGB коду и чтобы 2,5,100... светильников установленных в ряд выдавали один и тот же цвет и световой поток (с небольшим допустимым отклонением).
rx3apf
Цитата(FRANTIK @ Oct 21 2010, 11:54) *
чтобы 2,5,100... светильников установленных в ряд выдавали один и тот же цвет и световой поток (с небольшим допустимым отклонением).

IMHO, это надо делать раздельно для R, G, B, просто по интенсивности светового потока при 100% яркости (обеспечить одинаковую яркость при 100%), остальное получится само собой. Я Отклонения цвета будут, но откалибровать вряд ли получится при разумных трудозатратах, поскольку длина волны будет меняться даже не столько от экземпляра к экземпляру (тут-то, думаю, как раз проблем не будет, если однотипные приборы), сколько от изменения температуры. Озаботьтесь хорошим теплоотводом. И особое внимание - рассеивателю (или что там будет микшировать цвет). Сколько я не игрался даже с 10-mm диффузными RGB - "не то". Получить белый цвет трудно, кристаллы здорово разнесены, и вообще цвет меняется в зависимости от угла зрения.
Tanya
Цитата(FRANTIK @ Oct 21 2010, 11:54) *
(с небольшим допустимым отклонением).

Вот это небольшое... и есть самое главное. Цена вопроса... будет пропорциональна обратной величине этого в некоторой степени.
Вы так и не ответили, кто и чем будет контролировать...
FRANTIK
Цитата(Tanya @ Oct 21 2010, 11:50) *
Вот это небольшое... и есть самое главное. Цена вопроса... будет пропорциональна обратной величине этого в некоторой степени.
Вы так и не ответили, кто и чем будет контролировать...

Контроль - визуальный. Светильники подсвечивают ,например, здание по периметру.
Tanya
Цитата(FRANTIK @ Oct 21 2010, 14:21) *
Контроль - визуальный. Светильники подсвечивают ,например, здание по периметру.

Тогда визуально и настраивайте...
Или определите одним и тем же датчиком (в стандартных условиях) сколько фотонов выдает каждый светодиод или группа... Потом балансируйте.
rx3apf
Как вариант - включаем "белый" (100% по всем каналам), и, пропустив свет через хороший светорассеиватель (и, наверное, с приличным ослаблением) фотографируем цифровым фотоаппаратом с зафиксированными выдержкой, диафрагмой и балансом белого. Кадр (фрагмент кадра) от всех светильников компонуем в этакую палитру и внимательно смотрим (уже глазами) на предмет "клеток", самые диссонирующие корректируем, чтобы не выделялись...
Можно и какую-нибудь математическую обработку использовать.
Mahagam
создаёте тест-план: создаём все комбинации из цветов которые управляются по яркости двумя битами (выкл, 33%, 66%, полностью вкл) - получаем 4*4*4 = 64 цвета. отдельно для каждого канала измеряем нелинейность - формируем по 16 градаций яркости каждого цвета, итого ещё 48 комбинаций.
делаем в приборе прогу которая могла бы быстро выдать нужную комбинацию из этих 112 и идём к людям со спектрофотометром (есть ещё колориметры, но они в данном случае не подойдут). измеряем. а уж над полученными данными курим - что мы можем получить, а что не можем принципиально.
FRANTIK
Цитата(rx3apf @ Oct 21 2010, 11:41) *
IMHO, это надо делать раздельно для R, G, B, просто по интенсивности светового потока при 100% яркости (обеспечить одинаковую яркость при 100%), остальное получится само собой.

Ну в принципе,так оно и будет: при помощи люкс-метра на фиксированном расстоянии от светильника и зафиксировав их взаимное расположение будет измеряться освещённость каждого канала. Заранее будут определёны эталон освещённости. Под эти эталоны при помощи коэффициентов подстраивается освещённость каналов светильника.

Цитата(rx3apf @ Oct 21 2010, 15:13) *
Как вариант - включаем "белый" (100% по всем каналам), и, пропустив свет через хороший светорассеиватель (и, наверное, с приличным ослаблением) фотографируем цифровым фотоаппаратом с зафиксированными выдержкой, диафрагмой и балансом белого. Кадр (фрагмент кадра) от всех светильников компонуем в этакую палитру и внимательно смотрим (уже глазами) на предмет "клеток", самые диссонирующие корректируем, чтобы не выделялись...
Можно и какую-нибудь математическую обработку использовать.

Ну тут я думаю, возможно будет использовать цифровую камеру, тем более опыт уже имеется (я использовал web-камеру для системы технологического прогона белых светильников).
Mahagam
уверены что люкс-метр будет адекватно измерять освещённость создаваемую светодиодами разного цвета? колориметрия наука ужасно сложная.
FRANTIK
Цитата(Mahagam @ Oct 22 2010, 13:02) *
уверены что люкс-метр будет адекватно измерять освещённость создаваемую светодиодами разного цвета? колориметрия наука ужасно сложная.

Согласен с Вами, даже убедился в этом сам, измеряя освещённость на разных каналах(цветах). Но тут стоит задача обеспечить повторяемость каждого светильника, поэтому важно не абсолютное значение, а отношение некоторого эталонного (можно набрать статистику и вычислить его) значения к измеренному на данном канале данного светильника...
rx3apf
Цитата(FRANTIK @ Oct 22 2010, 14:13) *
Но тут стоит задача обеспечить повторяемость каждого светильника, поэтому важно не абсолютное значение, а отношение некоторого эталонного (можно набрать статистику и вычислить его) значения к измеренному на данном канале данного светильника...

А вообще назначение светильника какое - чисто декоративная подсветка, разноцветная переливающаяся иллюминация ? Тогда по яркости каналов просто подгоните, чтобы диссонанса не было. А то как бывает в всяких колхозных "бегущих строках", типа как в Москве на наземном транспорте - какая-нибудь точка выдается, и сказу видно - полнейшая халтура. А если и хороший белый цвет нужен - тут, пожалуй, может пригодиться и 8-битный _линейный_ ШИМ, для точной подгонки "белого" вблизи 100% яркости. И вот в этом случае я бы именно с фотоаппаратом сделал, и на результат, совокупность фрагментов большого количества снимков разных светильников (сфотографированных в строго одинаковых условиях) именно что глазками посмотрел. Ну, понятное дело, цветопередача у фотоаппарата отличается от глаза, и потом что-то привнесет экран - однако диссонанс будет виден сразу, и сразу будет ясно, какой именно светильник надо подрегулировать. Потом-то может и уйти, от температурного влияния ("зеленый", например, при перегреве сильно уходит) или деградации кристаллов, но чтобы с производства по крайней мере выходили одинаковыми.
Mahagam
QUOTE (FRANTIK @ Oct 22 2010, 13:13) *
Согласен с Вами, даже убедился в этом сам, измеряя освещённость на разных каналах(цветах). Но тут стоит задача обеспечить повторяемость каждого светильника, поэтому важно не абсолютное значение, а отношение некоторого эталонного (можно набрать статистику и вычислить его) значения к измеренному на данном канале данного светильника...

так вам ещё и каждый светильник калибровать? ууу. хотя в этом случае задача не сильно то и усложняется
AlexeyW
Цитата(Tanya @ Oct 20 2010, 16:34) *
Вам для научной калибровки нужно -
1. Специальное устройство, имитирующее Солнце. (Его спектр)
2. Спектрометр.... или человек со стандартным зрением.
Все это не так дешево и просто...

Солнце действительно недешево. Да и человеческий глаз бесценен smile.gif
AlexeyW
Цитата(rx3apf @ Oct 21 2010, 15:13) *
Как вариант - включаем "белый" (100% по всем каналам), и, пропустив свет через хороший светорассеиватель (и, наверное, с приличным ослаблением) фотографируем цифровым фотоаппаратом с зафиксированными выдержкой, диафрагмой и балансом белого. Кадр (фрагмент кадра) от всех светильников компонуем в этакую палитру и внимательно смотрим (уже глазами) на предмет "клеток", самые диссонирующие корректируем, чтобы не выделялись...
Можно и какую-нибудь математическую обработку использовать.

Идея с фотиком хороша. Еще как вариант - можно включать цветовые компоненты по очереди.
Кстати, важна еще та особенность зрения, что глаз намного лучше замечает различия в яркости, нежели в цвете.

Если же, например, трудно собрать все светильники в одну панель, можно попробовать так:
1. откалибровать один светильник
2. сделать простое фотоприемное устройство (если найдется один фотодиод, покрывающий нужный спектр, если нет - то три канала). Измерить отклик от калиброванного светильника, отдельно включая каждую компонету
3. Измерять отклик по каждой компоненте проверяемых светильников, добиваясь, чтобы он был равен (если есть требования к равной яркости), или пропорционален (если требование только к цветобалансу) отклику от калиброванного.
Demeny
Не проще (дешевле) ли к трём RGB светодиодам добавить четвёртый, белый светодиод, чем вручную калибровать каждый светильник ?
rx3apf
Цитата(Demeny @ Nov 9 2010, 13:17) *
Не проще (дешевле) ли к трём RGB светодиодам добавить четвёртый, белый светодиод, чем вручную калибровать каждый светильник ?

Диссонанс яркости даже в "цветном" режиме - тоже неприятная штука. Если хочется сделать хорошо, а не по-совковому, то лучше обеспечить контроль и/или калибровку, если есть хоть какие-то сомнения.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.