X-Rite Colormunki Photo

Понадобился на работе прибор для сравнения и, в перспективе, калибровки осветительных приборов. Причём не абы какой, а такой, чтобы можно было встроить в своё ПО для прогона разных тестов. Неудобно же делать вручную всё это в куче разных программ.
Купили калибратор: X-Rite Colormunki Photo (стоимость порядка 20к рублей). По идее он умеет калибровать разные устройства вывода: мониторы, принтеры. Ну и считывать цвета с бумаги в графические программы. Как это всё происходит и кому оно надо за такие деньги — не знаю.

Используя сторонний софт (Argyll CMS) прибор можно использовать как спектроанализатор — получить файлики с данными спектра или там же их и посмотреть. Но программы консольные, неудобные, да ещё и как-то коряво сделаны, что из внешних программ чтением/записью в стандартные потоки с ними не пообщаешься. А я так хотел их в С# прямо получать, без возни с файлами.

К слову, характеристики не впечатляющи по сравнению со специализированными приборами даже низшего уровня, но достаточны для начала:
  • Диапазон от 380 до 730 нм (только видимый);
  • Измеряется максимум 106 линий спектра (ширина линии примерно 3.3 нм);
  • Подключение через USB.

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

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

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

Скомпилировать этот пакет из исходников тоже та ещё задача, но всё же выполнимая — 2008 студия через утянутый из проекта FreeType скомпиленный собиратор Jam (just another make) всё собрала.

К сишарпу-таки я прибор подключил через переделанную консольную программу illumread, работающую как сервер. Переделок немного, но они нужны:
  • Весь ввод данных переделан с kbhit и подобных функций (я не знаю как с таким работать из внешних программ) на самый обычный scanf, использующий стандартный поток stdin;
  • Перед каждым вводом данных стандартный поток вывода опустошается с помощью функции fflush (а то сервер ждёт указаний, а клиентская программа, не получив данные из stdout, и знать об этом не знает);
  • Строки унифицированы и переделаны так, чтобы клиенсткой программе было легче с ними работать;
  • Спектральные данные выводятся прямо в консоль, а не во внешний файл;
  • Рассчитывается и выводится туда же цветовая температура (утянуто из соседней программки specplot).

После таких извращений сишарп может спокойно притворяться пользователем и получать из неё все необходимые данные. Коряво, но зато переделано очень быстро.
На один замер тратится время порядка пары-тройки секунд.

UPD: Программа оценивает цвет (примерно), температуру и интегральную мощность излучения. Возможно сохранить и загрузить спектр, а также экспортировать в png.

Программа

Примеры снятых спектров
Графики построены с помощью ZedGraph.

Дневной свет в комнате:
Дневной свет в комнате

Белые светодиодные ленты разной температуры:
Белые светодиодные ленты разной температуры

Светодиодная лента RGB:
Светодиодная лента RGB

LCD-монитор. Второй монитор выдал такой же по форме спектр, но с чуть иным соотношением каналов.
LCD-монитор

Экран IPS LCD с телефона LG Optimus x4 P880:
IPS LCD

Люминесцентные лампы (на потолке включены и тёплые, и холодные, не разделить), и настольная. Две пупырки торчащие — линии ртути, видимо. пологая размазня — люминофор:
Люминесцентные лампы

Две белых светодиодных ленты (14000 К и 3000 К), включённых вместе с одинаковой мощностью. Забавно, что смесь даёт температуру всего 5000 К (~20% от того, что дала бы линейная интерполяция):
Две белых ленты, 13к и 3к

Галогенная лампа с фильтрами LEE (красный 111, зелёный 124, синий 132):
Галогенная лампа с фильтрами

Спектр пропускания тоже можно считать, имея покоцанный чем-то и чистый спектр:
Спектр пропускания фильтра Pink Rose

Опять же, вряд ли кому это пригодится когда-либо — прибор очень специфичный и просто так не валяется, а покупать такое жлобно. Но пусть будет.
Файлы в топике: ColorMunkiTest.zip

Комментарии (27)

RSS свернуть / развернуть
Забавная штука. А есть более дешевые калибраторы со схожими возможостями (бумага/монитор, спектр)?
0
  • avatar
  • Vga
  • 09 апреля 2014, 20:10
Не знаю… На сайте агрилла есть список поддерживаемого оборудования, можно посмотреть, что из того продают у нас, но там процентов 80 уже не производится, да и какие у них характеристики — не ведаю. Только надо смотреть модели со спектрометрами, а то там есть и цветоанализаторы — несколько фотодатчиков с фильтрами, видимо…

Есть какой-то Eye-One Pro за 10к
0
А как устроен твой девайс ты не в курсе?
0
В кругляшке посерединке, видимо, сидит спектрометр. Вращая кругляшок внутри корпуса, выбираем режим работы и отверстие, из коего он будет принимать свет:
1. Калибровка — встроенные источники света;
2. Просто дырка со стеклом — для отражённого света (внешний источник);
3. Дырка с матовым рассеивателем — для прямого излучения;
4. Дырка с подсветкой — для отражённого света (встроенный источник, как сканер).

Как устроен спектрометр внутри кругляшка — не знаю. Наверное, дифрешётка с фотолинейкой =) А может ещё как…
0
Да, в буклетике написано: Holographic diffraction grating with diode array
0
А можно ещё чуток спектров, любопытно! Например люминесцентную лампу (несколько разных сранить), лампу накаливания (обычная vs галогенка), LCD монитор/дисплей, пламя свечи… Ещё меня давно мучает вопрос пропускания пиксельных фильтров на матрице фотоаппарата, но тут этот приборчег, полагаю, бессилен.
0
Добавил парочку, что под руку попало…

Ламп накаливания и источников открытого огня пока нет, но чуть позже попробую найти. Ещё интересно посмотреть, как фильтры цветовые спектр корёжат. Где-то валялась пачка образцов, надо найти.
0
Впечатлил спектр LCD монитора. Какой-то корявый, видать тоже линии ртути прорезаются. Вот только не понятно, откуда там пик 490 — нет такой линии у ртути! IPS экран смартфона гораздо глаже однако, понятно что LED подсветка (зелёный канал чуток широковат, ИМХО).
Видимые линии ртути: 405, 436, 546, 578, 611. Просматриваются. Жаль УФ не измеряет — интересно же, сколько УФ из этих ламп сочится.
0
Может, аргон? Или кого там в лампы с ртутью вместе загоняют.

Да уж, ИК и УФ не стали делать — калибратор же, он вообще не должен спектр вот так казать, его дело давать данные для рассчёта цветовых профилей.з.
0
Я посмотрел спектр аргона — не похоже как-то…
Поднял данные — я, было дело, калибровал длины волн монохроматора по спектру ртутной лампы ДРШ-100, так вот в ней тоже эта линия 490 нм была. И мне сказали, что это аргон… но что-то я теперь сомневаюсь.
0
Не знаю… Я в этой науке не силён пока.

Но судя по линиям, что-то выдающееся на фоном в 10 Р там есть:
250 P 4764.865 Ar II N73
200 P 4806.020 Ar II N73
250 P 4879.864 Ar II N73
0
ArII это линии иона Ar+, которые, кажется, проявляются только в разряде при очень низком давлении, тут их вроде быть не должно. Хотя может это и они, ХЗ. Надо будет при случае снять спектр ДРШ-100, правда случай подвернётся не скоро.
0
Напишите коли сподобитесь — интересно =)

А давление в лампе низкое должно быть — едва ли не на три порядка ниже, чем атмосферное. Не знаю, достаточно ли того или нет… Да и в разряд попасть могут, электронов мимо летает много, могут и зацепить =D
0
Спустя 6 лет тупки… вдруг опять напоролся на эту мистическую линию 490 нм в спектре ртути. И удосужился таки снять спектр лампы ДРШ-100. Вот он.

Спектр лампы ДРШ-100-2
0
Кстати, вот что говорит про это википедия: Fluorescent lighting spectrum peaks labelled.

487.7 terbium from Tb3+ ~485 to 490
0
Тербий… кто это?
Ну, здесь может быть — если натыкать тербий в вики — оказывается, он входит в состав люминофора (правда, статья самопротиворечивая — в начале стоит убийственный набор свойств: «malleable, ductile and very hard»). Но в ДРШ-100 люминофора нет, так что непонятка не снята.
0
в начале стоит убийственный набор свойств: «malleable, ductile and very hard»
А в чем его убийственность? Впрочем, уже в следующем разделе написано, что он таки мягкий.
0
Хм, в книге Козелкина В.В. «Основы инфрокрасной техники» на 56 странице есть такой график:
Спектр лампы ДРШ-250

Т.е. пик там на 491.6 нм. В какой-то лабе его причисляют к спектру ртути, но не знаю даже. Вот цитата:
Его проверка производится по линиям спектра ртути (зеленая - 546,07 нм, зелено-голубая - 491,61 нм, сине-фиолетовая - 435,83 нм и фиолетовая - 407,78 нм).
0
Видел на фарнеле RGB датчики с SPI интерфейсом, хтел себе замутить подобный девайс, ради фана:)
0
Если поиграться — то можно RGB-светодиод + эталонную поверхность + фотодатчик. Если хватит упорства и знаний — то можно попробовать добавить сенсор со сканера + диф.решётка. Они на ebay водятся. Я взял себе, поддавшись на уговоры внутренего хомяка, но пока не применил.
0
Ну вот. И я только что заказал сенсор на 2048 пикселей и решётку.з.
0
Эм… может не совсем корректно выразился — решётку выковырять из б.у. сканера.
0
тьфу ты ж! Сенсор, of course!
0
Ну сенсор понятно, а откуда можно решетку выковырять?) И можно ли ее заменить, скажем, призмой?
0
Полагаю — можно. Если совсем плохо всё — можно попытаться изобразить щелевую диафрагму их двух кусочков бритв. Это на просвет. На отражение можно из компакт диска сколхозить — размер дорожек (питов) позволяет. Если есть знакомые астрономы, то у них спросите — может что посоветуют. У них типичная задача.
0
+1
Есть max44005 — датчик цвета, измеряет, конечно, R, G, B и A (ambient) но не всё идеально там.

Датчик простенький по интерфейсу, подключение тоже простое: всего шесть лап. Только что питание 1.8 В да размеры 2х2 мм. Для несложных измерений покатит. Я так тайлы в маджонге хочу отличать — лицевую сторону от рубашки=)
0
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.