Программа «Анализатор спектрограмм» для самодельных спектрометров и спектрофотометров (на основе веб камер)Дорогие друзья!
Хочу представить Вам ещё одно своё творчество, программу для работы с самодельными спектрометрами на основе usb веб-камер и дифракционных решёток.
Программа предназначена для работы с самодельными спектральными приборами (спектрографами, спектрофотометрами, флюориметрами, пламенными фотометрами и т.п.), в которых в качестве регистрирующего устройства используются устройства видеосъёмки, подключённые к компьютеру (например, USB-камеры), а в качестве дисперсионного устройства используется дифракционная решетка.
Отличия от других программных решений, к которым прибегали создатели подобных устройств:
- Программа имеет полностью открытый исходный код, свободно распространяемый на принципах копилефта.
- Программа имеет русскоязычный интерфейс.
- Программа имеет подробное (на данный момент 23-страничное) руководство пользователя, разумеется на русском языке.
- Программа написана для Linux.
- Программа позволяет регистрировать не только эмиссионные, но и адсорбционные спектры по светопропусканию и оптической плотности, в том числе дифференциальные спектры.
- Программа позволяет производить расчёт концентрации по задаваемым коэффициентам, в том числе двух компонентов по двум длинам волн, а также некоторых других параметров.
- Программа может автоматически регистрировать спектры через заданные интервалы времени.
- Все полученные данные в текстовом виде сразу копируются в буфер обмена, для дальнейшей обработки, например в программах электронных таблиц.
Скриншот программы:
Цель создания программы
В интернете встречаются рецепты изготовления самодельных спектральных устройств на основе камер, подключенных к компьютеру (включая веб-камеры и цифровые фотоаппараты), однако я не нашел какого-либо серьёзного программного решения с открытым исходным кодом, подходящего для любой (в том числе не очень новой) операционной системы Linux. Авторы подобных устройств либо не публикуют свой код, либо используют стороннее проприетарное ПО, либо их ПО не для Linux, либо их решения требуют свежих дистрибутивов Linux и определённых навыков а IT-области, либо вообще предлагают использовать сайты в интернете. Кроме того, все эти готовые решения выдавали в лучшем случае лишь эмиссионный спектр (спектр излучения). Да и сами устройства, по большей своей части не были задуманы как серьёзные аналитические приборы, и представляли собой скорее какие-то учебные образовательные макеты для любознательных. Но при этом, самодельные спектрометры могут иметь гораздо более серьёзное применение, так например, адсорбционный спектрофотометр на базе веб-камеры заменяет такие приборы как СФ-10, СФ-14, СФ-18, которые многие десятилетия верой и правдой служили отечественной науке. При этом, упомянутые выше приборы работали исключительно в видимом диапазоне (400 - 750 нм) и рисовали спектры на бумаге, один спектр снимался несколько минут, после чего надо было менять бумагу (которая наматывалась вокруг барабана) либо снимать новый спектр поверх старого, попутно помечая карандашом, что к чему относится. Самодельные спектрофотометры из веб-камеры помимо видимого диапазона, захватывают также ближнюю инфракрасную область, видят весь спектр сразу, а с помощью программы не только отображают спектр графически, но регистрируют спектр в виде таблицы с цифрами, с возможностью автоматической регистрации спектров с заданным интервалом времени (от одной секунды и выше). Для сравнения, СФ-18 мог регистрировать кинетику во времени только на одной длине волны (что выгодно отличало его от СФ-10 и СФ-14), а тут у мы можем смотреть изменения во времени на всех длинах волн одновременно. Кроме того, получение всего готового спектра прямо в программе в виде компьютерных данных даёт возможность математической обработки данных в реальном времени, например, расчёта концентраций смеси веществ.
Программа работает через интерфейс Video4Linux 2. Устройство должно уметь работать с Video4Linux 2 в режиме 640 * 480, BGR24.
Программа написана в среде программирования Lazarus, с использованием библиотек SDPO (распространяемых по лицензии GNU GPLv2), включая компоненты SdpoVideo4L2 (из Sdpo 0.4.0) и SdpoFastForm (из Sdpo 0.3.0). В программе задействован пример кода из дистрибутива SdpoVideo4L2.
Программа тестировалась (пока что) на трёх компьютерах с операционной системой Ubuntu, везде работала, а если вдруг возникают проблемы и видеосигнал не идёт, то нужно проверить правильность указания устройства (например, выбрать /dev/video1 вместо /dev/video0) и работоспособность USB-порта, чтобы в нём нормально работала веб камера (с USB концентраторами, выводами на переднюю панель и т.п. могут быть проблемы).
Один из примеров простейшего самодельного адсорбционного спектрофотометра описан в приложениях, в конце руководства пользователя.
Домашняя страница программы:
http://www.louvaahmar.narod.ru/progi/myprog/vidspek/Ссылка на руководство пользователя в формате PDF:
http://www.louvaahmar.narod.ru/progi/myprog/vidspek/video_spek_manual.pdfСсылка на архив с исходниками и портативной версией:
http://www.louvaahmar.narod.ru/progi/myprog/vidspek/vidspek.tar.gzСсылка на deb-пакет (64-бит):
http://www.louvaahmar.narod.ru/progi/myprog/vidspek/vidspek_0.0.0.1_amd64.debP.S. Поскольку бытовые камеры не являются точными измерительными приборами, да и вообще изначально не предназначаются для проведения каких-либо измерений, автор программы не несёт ответственности за неточности и некорректности количественных измерений. Любое практическое применение полученных результатов - на Ваш страх и риск.