FocusMax для чайников

Давным-давно (в этой галактике) я прочёл фразу не то чтобы перевернувшую мою жизнь…, но столь банально правильную, что запомнил её хорошо и дословно. Читал я её, кажется, в единственной прочтённой мною наискосок статье об астрофото, достаточно знаменитого в своё время автора Джима Соломона.

Фраза, как уже сказал, банальная и полезная: «Лучше 5 кадров в фокусе, чем 100 расфокусированных». Вот и получается, что если снимаешь пятиминутками, то раз в пол часа (5 по 5 кадров) неплохо бы съёмку остановить, навести на гид-звезду, надеть маску разработки многоуважаемого Павла Бахтинова, сфокусировать телескоп, вернуть его на место, сделать тест.кадр, ресолвнуть кадр, синхронизировать телескоп, довести до объекта съёмки, запустить гид, запустить съёмку. При этом ничего не попутать и … не спать всю ночь.

Бр…. с таким описанием многие после 1-2 бессонных ночей подумают «лучше 100 расфокусированных». Я не исключение.

Но не всё так плохо! Покупайте наш стиральный порошок и зубы будут белыми, а кадры — сфокусированными! 🙂

Шучу, конечно. Хоть доля правды есть и в этой шутке. Текущая версия программы, которая почти всё обозначенное делает сама … стоит денег. Но, как нам повезло, на полностью законных основаниях можно взять бесплатный FocusMax 3.8.0 и с его помощью делать автоматически почти всё вышеозвученное.

В этой статье я хочу остановиться только на аспекте начального использования, без суперфенек этой несомненно мощной программы. Собственно, как и звучит заголовок: «FocusMax для чайников», то есть только базовое использование. И это не только потому что я чрезвычайно умный и безудержно пафосный, а скорее потому как считаю что часто лучшее — враг хорошего. Я просто не пользуюсь всеми фичами фокусмакса и расскажу всё, что о нём знаю. Хоть и знаю немного, но мне хватает с головой 🙂

 

Используемое оборудование

FocusMax 3.8 способен управлять тремя типами девайсов:

  • камера — Самое противное, что есть в этой замечательной программе, что она не умеет (или не хочет?) общаться с ASCOM-камерой напрямую. FocusMax 3.8 предоставляет пользователю выбор лишь из двух «камер». Первая, мне известная и мною используемая — это MaximDL. То есть сам фокусмакс не будет щёлкать камерой, но посредством тайного рукопожатия через COMx объект будет просить максима щёлкнуть кадр в нужном разрешении в нужном кропе с нужной выдержкой.Вторая опция функционально не отличается от первой, отличие только в программе, через которую FM может снимать. Вторая поддерживаемая FM «камера» — это их же CCD-Ware софт CCD-Capture (?). Я плаваю в снимающем CCD* софте и цены за него, поэтому сей момент я не знаю и в описании проигнорирую его.
  • фокусёр — Тут ничего «военного». Любой ASCOM-совместимый фокусёр поддерживается и фокусмаксом. Это может быть некогда знаменитый Robofocus, может быть коробка ИванСемёныча — та, что старая на FT245 или новая с контроллером колеса внутри; может быть любой другой фокусёр — лишь бы он был абсолютный, в нём был предсказуемый и повторяемый шаг … можно с небольшим, не особо предсказуемым люфтом в механике. Лишь бы ASCOM-драйвер был. То есть фокусдрим (FocusDream) на двигателе постоянного тока не прокатит (ждём тестов FocusDream+FocusMax по небу, чтобы быть уверенным в этом). Шаговик или серва (обычно шаговик) и контроллер к нему.
  • телескоп. Точнее, конечно же, монтировка телескопа.Нужен он для автоматического перехода к фокус-звезде средствами FM.
    И вот на этом пункте я останавливаться не буду по моим вышеназванных ламерским причинам — не пробовал из-за требования полного платного пинпоинта, не шарю и не хочу разбираться. В своём автоматизаторе астроГодзилла я решил эту проблему иначе.

 

Установка и настройка программы

Умение жать кнопку «далее» в инсталяторах, думаю, есть у многих. При установке FM пожалуй, только оно и пригодится. Никаких доп. настроек при установке не требуется. Установив же продукт, и запустив его иконкой на столе или иначе, нужно кой-что поднастроить.

FocusMax 01 768x516 - FocusMax для чайников

Интерфейс программы многооконный. Окошки можно передвигать, прятать и закрывать все, кроме собственно окна FocusMax. Это, что логично, приведёт к выходу из программы.

FocusMax 02 - FocusMax для чайниковПо-умолчанию открывается пара окон — это фокусмакс и лог. Плюс, при первом запуске (кажется), предлагается сразу запустить First Light Wizard. То есть «волшебника первого света», если дословно :). Так, кстати, и стоит поступить — волшебник этот ничем не хуже Гендальфа Белого. Со светом, что первым, что со вторым, обращается на 5+. Но… сначала отмена и настройка оборудования.

Основное окно FM построено из четырёх закладок (табов), ярлыками вниз. Нам нужна страница System, настройка системы. В ней важно выбрать фокусёр — верхняя одноимённая группа Focuser, кнопка «>». Выбираем наш любимый симулятор используемый в вашем астрографе ASCOM-фокусёр (вы ж поставили его дрова железные, если нужны, и аскомовые до запуска FM?). Жмём кнопку Connect и, если повезёт, наслаждаемся надписью Connected, как на скрине слева.

Далее группа Camera. Как уже сказал, выбор невелик и я выбираю MaximDL. Тынц в радиокнопку. Если максим не запущен, он запустится. Напомню пользователям Win7 и свежее, что максим любит быть запущенным от админа, соответственно и FM нужно так же запускать от админа.

Ещё, для ускорения считывания, я включаю чекбокс Features / CCD Central Region / Enable и в поле рядом ввожу цифру 15. Это означает, что начальный кадр поиска звезды будет сделан лишь по центральному прямоугольнику в 15% от размера поля. Само собой, фокус-звезда должна быть в центре поля, чтобы этот ускоритель помогал, а не мешал.

Пока что всё, настройки завершены. Чтобы каждый раз не лезть в окно System, лучше в меню Open / Options включить два верхних чекбокса: Focuser и Camera.

Опции закрыли крестиком (привычной кнопки Ok нет, и по-началу не ясно, всё ли мною сказанное понял факир или проигнорирует при заакрытии окна). И уже в основном окне зовём волшебника. Можно, например, как в дет.саду громким «дедушка приди!» (прокричать три раза, встав на табуретку) :). Если серьёзно, то меню Wizard / First Light.

 

Переходим к первому старту…

 

Первый старт

Визард сей, как и многие его родственники визарды, построен по принципу чего-то спросить и предложить нажать кнопку Next. В принципе, для читающих на-английском там всё достаточно понятно, но так как статья эта называется «FM для чайников», то я с удовольствием переведу на человечий сообщения в окнах Wizard (волшебника):

FocusMax 03 - FocusMax для чайников

Бла-бла, это я, Гендальф, жми Next и я заполоню твою жизнь радостью!

 

FocusMax 04 - FocusMax для чайников

«1. Наведи на звезду средней яркости повыше». Имеется в виду звезда порядка 6m для L-фильтра ньютона 200-250 f4..5. Имеется в виду на высоте от 60 градусов и выше. Лучше — выше.

«2. Отцентруй звезду в кадре». Имеется в виду, что нужно сделать пару (десятков) пристрелочных кадров и пультом монти (или его программным аналогом) затащить звезду в центр кадра. Перекрестие в максиме можно включить правой кнопкой на кадре, там Crosshair / Visible. Сильно точно не надо стараться звезду прям вот ровнёхонько на этот крест уронить, достаточно будет в ~5% центра поля её загнать.

«3. Сфокусируйте хоть как-нибудь на глаз». То есть берём левую руку и правый глаз. Глаз смотрит на постоянно щёлкающие кадры, рука крутит ручку или жмёт кнопки мото-фокусёра (возможно, программные). Кстати, насчёт кнопок, в том же FocusMax, если нажать кнопку Jog в главном окне, закладка Focus, то появится махонький пультик фокусёра.

Жмём Next, как только выполнены все условия.

 

FocusMax 05 - FocusMax для чайников

Жмём next не думая, доверяя навыкам Гендальфа.

 

FocusMax 06 768x611 - FocusMax для чайников

FM открывает ещё одно оконце, звать его Vcurve Sequence. Ну и просит как-нить поудобней расставить окошки. В целом это нафик не нужно, но раз уж собрались получать удовольствие, то лучше при этом быть информированным.

 

FocusMax 07 - FocusMax для чайников

Опять таки, верим Гендальфу и цифру 40 не меняем на 41. Не меняем её и на 50. И на 30 не меняем. И вообще, если Солнце регулярно утром всходит на востоке и вечером садится на западе, то лучше его не трогать. Жмём Next.

 

FocusMax 08 - FocusMax для чайников

И вновь Next.

 

Дальше мы становимся свидетелем ЧУДА. Компьютер, словно приобретя ум недюжий (или обезумев?), начинает сам делать кадры, заполнять ту самую Vcurve. Не вдаваясь в подробности, задачи FM на этом этапе: определить границы дозволенного, откалибровать или сопоставить сколько шагов приводит звезду к +-40 FHD. Плюс определить крутизну той самой V-кривой. В общем, на этапе «… для чайников» лучше не морочить себе голову умностями. Просто FM что-то делает и скоро он это сделает.

Если железо не совсем убитое, если софт не глючил и провода не отваливались в процессе, то в окошке Vcurve Sequence будет… да-да, та самая V-кривая. То есть кривая в форме латинской буквы V. В которой слева-справа дофокус и перефокус, а в центре, на «носике» кривой — искомая точка оптимального фокуса.

FocusMax 10 768x552 - FocusMax для чайников

Для усреднения результата рекомендуется повторить процедуру раза три+.

 

Фокусировка

То, чем бум пользоваться часто и густо. Внешними средствами (например, моим автоматизатором съёмки дипская) навели на фокус-звезду и нажали кнопку Focus в закладке Focus (Фокус Фокусович, если по имени-отчеству)…

… э …, собственно и всё 🙂

Важно отметить, если на астрографе есть колесо фильтров и оно настроено в максиме, то фокусмакс будет фокусировать именно в выбранном в максиме фильтре. Это может оказаться важным, если при смене фильтра меняется и фокусировка (т.н. непарфокальные фильтры). Что встречается сплошь и рядом. Так что сначала навели на звезду, потом выбрали фильтр и затем позвали ФокусФокусовича, тот всё сделал красиво.

Как пишут в брошюрах, идущих с каким-нибудь электронно-паятельным набором: «Правильно собранный прибор в настройке не нуждается». Фокусировка обычно занимает 30-120 секунд. В зависимости от скорости считывания камеры и движения фокусёра.

Как получить кадр с камеры (Linux+Python+INDI)?

Скажем, перед вами возникла задача… такая же, как когда-то передо мною. Или похожая. Задача получения кадра изображения с камеры, подключенной к мини-компу типа Raspberry Pi / Orange Pi и т.п. клона.

Все эти мини-компы (пока что), уверенно работают под разными клонами Linux. Я привык к RH-way дистрибутивам, поэтому с удовольствием установил не самую обновляемую Fedora 22 на мой Orange Pi компик.

Мне нравится идея универсализации, создания некой абстрактной прослойки меж астрооборудованием ил астрософтом. На винде это ASCOM (пусть он трижды кривой и тормозной, но свою функцию «универсализатора» он выполняет). На юниксах и, в частности, на Linux — это INDI.

Я довольно неплохо знаю ASCOM, писал и драйвера, и в клиентских прогах использовал как монтировку, так и камеры. Если не брать во внимание, что мне не нравится dotnet и win-программирование (да и сама винда как ось) в целом, то идеология ASCOM мне близка. Скажем, наша задача получения кадра с камеры решается так:

  • есть аском. Он просто есть. Он есть центр этой вселенной. Всё общение происходит через него;
  • есть драйвер камеры. Скажем, QHY5 камерки. Или симулятор. Или Starlight Oculus (именно её кадры я получал на Orange Pi), или … В этом и суть, что все драйвера всех камер реализуют ASCOM.iCamera интерфейс. Он декларирует, что все дрова должны поддерживать таки и такие вызовы;
  • есть софтина, которую я пишу. Например, «получалка одного кадра длительностью 1с». В этой софтине я подключаюсь к COM-объекту ASCOM.Camera (написание не точное, лишь чтобы предать суть), то есть создаю экземпляр нужного класса. И у этого объекта уже есть методы/свойства задания выдержки, экспозиции и получения массива кадра. С виду всё логично.

В инди всё … по-Индийски, я думаю. Нисколько не хотя обидеть индусов, встреченные мною программисты часто из них … (нет-нет, я не буду ругаться матом сейчас) :).

  • первым делом запускается INDI-сервер для моей камеры:
    /usr/bin/indiserver -v -m 100 indi_sx_ccd
    Можно сказать, что ASCOM сам это делает, подгружая нужный «драйвер».
    То есть в INDI, в отличии от ASCOM, нет центра. Есть один процесс под эту камеру. Второй — под другую. Третий под монти и т.п. В этом есть смысл, но есть и геморой, кмк;
  • теперь на выбранном языке программирования (я выбрал Python) мы пишем INDI-Клиент. Это класс! Не в смысле, как классно, что мы пишем клиент, а в смысле, это именно объявление ООП-класса 🙂
    Собственно, экземпляр этого класса и общается с камерой… через callback’и.

import PyIndi
class IndiClient(PyIndi.BaseClient):
… и понеслось

Создаём экземпляр класса, запускаем коннект и дальше объект живёт своей жизнью:

  • инди-сервер вызывает метод newDevice, типа появилось новое устройство;
  • инди-сервер вызывает метод newProperty, передаёт им свойства. Все, что сам сочтёт нужным в последовательности, которую сам сочтёт нужным. В объёме, который именно ему будет интересен. Как в седьмом классе школы — тебе не интересно учить площадь треугольников, но никого это не волнует — тебе всё равно перечисляют все свойства треугольника и не только эту ненужную сейчас информацию;
  • чтобы начать экспозицию, мы в newProperty получаем факт подключения и заполнения нужных свойств, даём команду серверу «смени число в свойстве CCD_EXPOSURE». Подняв его выше 0, начинается экспозиция. Правда, нужно крепко обкуриться в ГОА, чтобы так перевернуть простую клиент-серверную логику?
  • получение кадра изображения — через callback вызов экземпляра класса, метод newBLOB. Типа ура, новый бинарник пришёл.

Мой исходник Python+INDI+Starlight Oculus AllSky камеры, чутка замусоренный в процессе поиска рабочего решения, я выложу сюда:
http://download.milantiev.com/astro/INDI/allsky.py.

И да, там огромный простор для чистки, оптимизации и улучшений. Но … мне хватило трёх дней борьбы с INDI, чтобы получив первый кадр больше не лезть в эту программу целый месяц. Нижняя часть программы вовсе не используется, но показывает неплохой диагностический пример использования INDI. Мопед не мой, моя адаптация под задачу.