Статус проекта: Установлена и работает вторая версия, работает в ручном режиме, пишу программу автоэкспозиции. Результаты смотри в конце текста.
В рамках комплекса удалённой обсерватории стоит задача определения качества астропогоды в удалённой точке базирования телескопа. Чистое ли небо вечером? Можно ли открывать крышу и заниматься съёмкой? В течение ночи так же интересно качество неба - и для истории, чтобы понимать условия съёмки, и для принятия решения о прерывании астросессии.
До недавнего времени я делал выводы о погоде на основе кадра с погодной камеры: Canon 300D + 18-55мм объектива на 18мм. Угол обзора этой системы ~60+° по горизонтали. Но существовали проблемы, связанные с таким решением:
- проблема ограниченного обзора: Камера была направлена на юг, показывая лишь часть... малую часть неба - примеры кадра тут: http://photo.milantiev.com/manual/2010/weather.cam/south/ ;
- проблема удобства использования: В связи с нестабильной работой старого Canon 300, мне не удалось автоматизировать процесс получения фотки. Получение фотки было шибко геморойным, состоящим из кучи шагов, как то:
- проверка наличия связи до обсерватории по одному из двух каналов;
- вход на метео-комп через radmin или иной софт удалённого управления виндой;
- запуск EOS Utility, попытка получения кадра;
- если камера "подвисла", то сброс её через мою прогу по питанию;
- повторный запуск EOS Utility. Запускается он долго. Получение кадра;
- скачивание кадра себе или анализ на месте в плохом качестве.
Требования к новой погодной подсистеме напрашивались сами собой:
- автономная и бесперебойная работа без моего участия;
- даже если будут сбои, автоматическая перезагрузка погибшего оборудования;
- автопубликация результата на внешний веб + email-дайджест (подборка превьюх, скажем, раз в час);
- обзор всего (или почти всего) неба с использованием широкоугольной оптики;
- дополнительное пожелание: автоподбор выдержки (=освещённости) и публикация графика с алармами в случае резких изменений.
Так как широкоугольный объектив ("рыбий глаз", он же fisheye) на Canon EOS достаточно дорог даже бу, то решил отказаться от глючного Canon EOS, хоть и был вариант автоизбавления от его глюков через систему контроля / перезагрузки плюс автоматическое получение снимков.
Встал вопрос выбора погодной камеры и объектива. Начал с объективов. Так как был удачный опыт с объективом охранной камеры (головная погодная камера QHY5 с объективом C-Mount Computar 2.5 мм, она же искатель с углом обзора 100+ градусов), то решил повторить решение, но с ещё более широкоугольным объективом. Спасибо знакомому, он купил два "ширика", один с байонетом М12 (фокусное 2.1мм), второй C-Mount (варифокальный с минимальным фокусным 1.6).
Камеру выбирал-выбирал, а выбора особо и нет. Требования к ней следующие:
- сенсор размером 1/3" или 1/2". Обычно cctv-объективы расчитаны на 1/3", так что на 1/2" жуткое виньентирование, но в то же время виден полный круг, всё что может дать стекло, даже со страшными, но несущими информацию, краями;
- основное, так как съёмка ночью без какой-либо подсветки, кроме естественной, возможность задания длинной (вплоть до десятка секунд) выдержки;
- минимальная цена;
- чёрно-белый сенсор (для повышения чувствительности).
Выбор пал на уже знакомую QHY5 с чб CMOS сенсором Micron MT9M001STM, тем более что нашлась бу за 150$. Камера хорошая, цена только негуманная с учётом цены компонент. Впрочем, это отдельная незаконченная история.
"Поженил" объектив с камерой временно изолентой - исключительно понимания для. Уже заказал знакомому дюралевый переходник на CS-Mount.
Потестировал дома угол обзора мелкого объектива. Он приятно удивил, хоть я и чуток криво поставил стекло - надо сместить вниз кадра. Не стал ровнять, так как решение на изоленте временное. "Большой" объектив в дюралевом переходнике станет ровно.
Дальше - больше. Камеру нужно защищать от осадков, от снега с дождём, инея и запотевания. Вопрос запотевания объектива под куполом де-факто не стоит. Мелкий объектив сейчас греет сама камера - она ест примерно 400...450 мА по 5В USB шине, то есть ~2Вт есть, достаточно для столь мелкого стекла, к тому же оно прям над основным "обогревателем" - CMOS сенсором. Дальше нужен какой-то куполок. Камерка маленькая, подойдёт любая пластиковая полусфера. Я думал приспособить детскую ёлочную игрушку, но под руку попался купол от охранки, спасибо знакомому (тому же, что купил объективы).
Дома собрал купол с подставкой, вывел провод, проверил насколько темнит тонировка пластика. Темнит, конечно. Но это понижает риск идентификации устройства, что плюс. Так как я могу поднимать выдержку камеры хоть до 30+ секунд, то счёт затемнение купола скорее плюсом, нежели минусом.
Установил камеру на неподвижную крышу бытовки (соседнего микродомика рядом с астросараем). Подключил камеру к неттопу, на который поставил Fedora Core 15 (Linux). Попутно неттоп несёт задачи поддержки связи, веб- и файл-сервера, рабочей станции с большим экраном (19") по удалённому управлению компом обсерватории. Прокинул езернет шнурок, так как wifi тупил.
Дальше были небольшие лётные испытания. К сожалению, погоды в регионе не так много, но обрывки её уже были и я сделал несколько выводов, наметил пути модернизации:
-
однозначно, ~2Вт не хватает для обогрева купола. Думаю повысить мощность на порядок, но иметь возможность ШИМ-регулировать её. К примеру, летом так сильно греть не нужно. К слову сказать, заиндевело и вертикальное окно старой камеры и вообще всё. При этом мне _кажется_, что постепенно иней сошёл на нет в т.ч. на куполе, так как я заставил камеру постоянно снимать = постоянно греться;
- не менее однозначно, мелкий объектив с байонетом 12мм и апертуркой в пару мм не подходит для съёмки звёзд. Буду менять на CS-Mount с фокусным 1.6мм с гораздо большей апертурой при сопоставимой светосиле. Плюс замена объектива немного увеличит и без того достаточно большое поле;
-
всю камеру надо приподнять над крышей примерно на 20см. Пока снега нет, решение установки прям на крыше подходит, но если крышу засыпет, мне кажется даже 20Вт не помогут протопить снег, да и камера в яме будет давать меньший обзор;
- нужна калибровка камеры. Количество битья на длинной выдержке с задранным на максимум gain угнетает;
если хочется снимать и днём (не обязательно, но интересно следить за динамикой погоды и днём), нужен объектив с диафрагмой и автоуправление ей.
Реальные результаты по небу есть, но небо было так себе. К тому же иней на куполе убийственный. Ссылка на видео: http://photo.milantiev.com/manual/2012/weather.cam/allsky/ . Полная ночь (с инеем и как я её чистил) в resize 50% и кусок без инея в 100%. 25 кадров в секунду, xVid кодек.
Вторая версия.
Постепенно растёт и крепнет вторая версия камеры. Отличия от первой:
- заменил объектив на cs-mount варифокальное стекло, значительно светлее. Объектив с диафрагмой, им нужно управлять. Знакомый токарь уже вырезал дюралевый переходник;
- планирую установку обогревателя под купол. Обогревателем буду управлять;
- платка управления, собственно. Разработана, отлажена в Proteus, напаяна и проверена на диафрагме. Собираю грелку, проверяю.
было (слева), стало (справа)
Стекло однозначно светлее предыдущего. Так же однозначно кривее :( На полностью открытой диафрагме фокуса по полю добиться сложно. Хех, подумал чуток - конечно фокус стал более резким, так как стекло светосильней предыдущего. Что ж, буду пробовать прикрывать диафрагму, если фокус уплывёт в процессе использования (с чего бы?). Так как диафрагмой управлять пока не очень удобно, на полностью открытой пришлось до нуля уменьшить выдержку / gain и накрыть тёмным куполом. Это плюс - света на прошлом стекле ночью явно не хватало.
Теперь точно знаю, что чип в QHY5 наклеен криво (его светочувствительная часть не совпадает с центром накрученного объектива. К тому же, кажется, он наклеен криво ещё и по оптической оси - точка фокуса уже второго объектива справа и слева отличается.
Смонтировал обогрев из четырёх керамических резисторов мощностью 5Вт номиналом 1 Ом каждый. Планируемая мощность обогрева 6Вт в сумме, то есть 6/(5*4) = 30% от расчётной рассеиваемой мощности резисторов. Нормально, в общем. Собрал всё устройство с платой управления, подпаянной к диафрагме. Обогрев купола на штырьковых разъёмах. Начал тестировать, обнаружил проблему - в открытом состоянии заметно греется полевик IRF510. Схему менять не буду, поставлю ему радиатор, так как обогрев его суть. Буду надеяться, что он не помрёт. На плате стоит термодатчик, так что я получу обратную связь и узнаю первым о смерти транзистора.
Решил сделать небольшое деревянное сооружение из 4 брусков по высоте и широкой вагонки в основании камеры сооружения и под камерой. Всё крепко скручено саморезами, обшито той же вагонкой. Оно позволит поднять камеру и избежать ошибки первой версии, см. выше пару фоток камеры, засыпанной снегом.
По факту собрал куда проще постамент. Просто взял широкую вагонку, напилил на 4 части по 18 см, одну длинную часть прибил на крышу, а получившуюся тумбу сбил гвоздями и прикрутил саморезами. Держится надёжно, задачу возвышения камеры над уровнем крыши выполняет, эстетика на уровне, всё отлично. Под рукой была только мобила, фотки не ахти. Вместо вспышки фонарик :).
Уже провёл первые тесты второй версии камеры по настоящему небу. Очень доволен. Сделал две видяхи. Одна - несколько кадров в полном разрешении с пролётом спутника тут, 3.5 мБ: http://photo.milantiev.com/manual/2012/weather.cam/allsky/AllSky-2012-01-24-1280px-cut-xvid.avi . Вторая анимашка уменьшенных вдвое кадров (640 х 512), так же в формате avi, кодек xVid в максимальном качестве тут, 92 мБ (!!!): http://photo.milantiev.com/manual/2012/weather.cam/allsky/AllSky-2012-01-24-640px-xvid.avi .
Пробовал снимать и днём - диафрагма очень капризна, возможно придётся делать мнооооого кадров, чтобы получить искомый. И ДД камеры очень маленький - мне б хотя бы 10 бит, которые выдаёт сенсор :(. Бум пробовать... Теперь, когда оборудование установлено, дело за программой автоподбора выдержки / усиления / диафрагмы. Начал прикидывать алгоритм работы софта камеры. Получилось примерно так:
- софт работы с камерой начинает свою жизнь с пробного кадра [диафрагма: 100%, усиление: 100%, длительность 1 сек];
- считается среднее по кадру. Возможно, лишь по средней части кадра, так как изображение формируется внутри круга, см. примеры фото выше. Для начала просто среднее по всему кадру;
- если среднее больше 50%, выдержка уменьшается, вплоть до 0.001 с;
- если выдержку уменьшил до минимальной, а среднее всё ещё больше 50%, то уменьшаю усиление до 1%;
- если усиление уже минимальное, а среднее всё ещё больше 50%, уменьшаю диафрагму;
- диафрагма уменьшается шагами (надо подобрать экспериментально, тут пример: http://photo.milantiev.com/?dir=1778 . Уменьшаю её, контролируя среднее пробными снимками;
- Диафрагма точно даст кадр со средним меньше 50%.
Так же и наверх. Плюс осталось подобрать коэффициенты (размер шагов по всем трём переменным).
управление v1: Пока что управление камерой, мягко говоря, не совсем удобное. В консоли линуха ввожу:
- управление диафрагмой, число от 00 до ff: echo -e "ax00" > /dev/ttyUSB2
- снимок с пробным гейном от 1 до 1791 (6ff): ./qhy5-new -g1790 -e10000
- небольшой временный хак проги захвата с qhy5, получение среднего по кадру: cat /tmp/avg.txt
- преобразование кадра в жпег со сжатием. Ресайз вдвое и вчетверо для быстрого просмотра: convert image.ppm0.ppm -resize 50% /var/www/html/qhy_2.jpg ; convert /var/www/html/qhy.jpg -resize 50% /var/www/html/qhy_4.jpg
управление v2: Начал делать автоматизацию.
Лень было вникать в формулу получения рассвета/заката (хотя уже нашёл код на javascript, позже адаптирую, если выбранный метод окажется неприемлемым), поэтому и анализирую страницу яндекс.Погода (Москва). Раз в день нахожу время восхода и заката Солнца.
Программа получения кадра с погодника запускается кроном раз в минуту. Днём (после восхода) полностью закрывает диафрагму (дневной режим буду писать когда отлажу ночной). Ночью полностью открывает диафрагму.
НОЧЬЮ: Вспоминая предыдущую выдержку, на максимальном gain делается пробный кадр. Находится среднее по нему. С шагом 0.25 сек подбирается выдержка, стараясь чтобы среднее по кадру было в районе 130 +-10 (из 255). На кадр начал дописывать информацию: дату/время и выдержку в мс / %среднего значения пикселей по кадру.
ДНЁМ: - не готово -
Изменил генератор ролика, загружаемого мне на публичную веб-страницу, теперь анимированный гиф (~300кб), загружаемый на сервер раз в пол часа, содержит кадры последнего получаса. В перспективе сохранение архива фоток и анимашек, листание его.
------------
На публичную страницу своей обсерватории добавил график автонайденной выдержки камеры за последнюю (или текущую) ночь.
Сегодня была облачность с Луной. Вечером Луна была низко, выдержка порядка 2 сек. К ~23ч Луна достаточно встала, чтобы освещать всё заоблаченное небо, выдержка упала до ~0.6с, так держалась до начала заката Луны, ~до 6:30 утра (высота полной Луны ~20°). С заходом Луны фон облаков падал, выдержка расла до тех же ~2.2 сек.
С ~8 часов начало вставать Солнце, выдержка начала падать.
Пики слева и справа - это переход в сумеречный режим (переключение диафрагмы на 47%). Надо будет выделить его другим цветом.
В ясную ночь выдержка поднимается до ~10+ сек и по её изменению косвенно можно судить о качестве неба. С приходом облаков выдержка резко падает.
Планирую установить алармы в виде будильника у себя на андроид-мобиле. Потом, как накоплю достаточно статистики.
Таким образом две задачи камеры:
- принятие решения об открытии крыши вечером;
- принятие решения о закрытии крыши в течение ночи
Обе почти решены. По крайней мере достаточно бодро иду к решению второй задачи.
-------------
Выдалась Лунная ясная ночь с переменой погоды посреди ночи - то, что я искал.
Погода хорошая... (левый анигиф). Погода портится... (правый анигиф, сразу за первым по времени).
И точка изменения автовыдержки на графике. По резкому изменению показаний можно судить об ухудшении состояния неба и необходимости, как минимум, разбудить оператора для принятия решения о прекращении фотосесиии.
|