A A A A Автор Тема: Canon: серия кадров с разными экспозициями  (Прочитано 7797 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Дядя Вова

  • *****
  • Сообщений: 5 243
  • Рейтинг: +15/-0
  • Садовод-любитель
    • Награды
А с 300D стОит пробовать? Или мне GPRS можно не мучить?
Если заработает, то это сильно изменит мои планы на затмение.
Володя, увы не стоит. Canon EDSDK эту камеру не поддерживает. Вот все зеркалки работают через этот API, а 300D попал в другое API.
C300D работает с файлом test.bot !!!
Фотик затыкается на 9 кадре с надписью Бизи на индикаторе и ERROR: Ser Tv=4 ->? Unknown STI на мониторе.
После этого скрипт продолжает выполняться. Бизи не исчезает. Выключение питания помогает, как понял, не всегда.

Дело наверное в заполнении буфера фотика. Признаюсь, что инструкцию к проге прочитал не полностью.
(Vixen ED80+Canon300Da, 9x50+QHY5)+EQ6upg

Оффлайн dmitryP

  • *****
  • Сообщений: 716
  • Рейтинг: +16/-3
    • Награды
C300D работает с файлом test.bot !!!
О как! Вот-так новость!

Фотик затыкается на 9 кадре с надписью Бизи на индикаторе и ERROR: Ser Tv=4 ->? Unknown STI на мониторе.
После этого скрипт продолжает выполняться. Бизи не исчезает. Выключение питания помогает, как понял, не всегда.
Так, завал внутри слоя Microsoft. Слушай, а сходи на сайт Canon, поищи самых свежих WIA-драйверов для своей камеры. Может быть поможет.
Кстати, а это первый set Tv ? А если не первый, то что с предыдущими?

Попробуй вот чего (если время есть). Надо определиться с тремя цифрами.
1) Время между checkpoint'ами. По смыслу в них нужно поставить кадров примерно столько, сколько у тебя влезает во внутренний буфер камеры. Я бы даже на 1-2 уменьшил. Теперь врему. Идеально, чтобы у тебя между checkpoint'ами влезала съемка всех этих кадров + запись всего. Может быть потом удастся сократить, но пусть сначала заработает.

2) Время ShotTime. Ставим самую маленькую выдержку на фотике, нажимаем и держим кнопку спуска. Фотоаппарат делает щелк-щелк-щелк, потом буфер заполняется и фотик продолжает делать "щелк", но уже с паузами между съемкой. Время этих пауз (с некоторым запасом сверху) -- это грубая верхняя граница на ShotTime. Потом от нее можно попробовать вниз спуститься.

С другой стороны ограничение такое. У меня в доке к фотику написано: серийная съемка 2.2 кадра в секунду. 1/2.2*1000 = 450 ms. Это нижняя граница ShotTime.

Для этих тестов нужны камера и секундомер.

3) После того как все заработает на коротких выдержках можно попробовать с длинными выдержками (больше 1 секунды) и ShotMul=1. Если на длинных сериях начнет затыкаться -- надо увеличивать ShotMul. Помним также, что при аппаратном подавлении шума Canon делает съемку темнового кадра для вычитания, соответственно, если включено, то нужно экспериментировать, начиная от ShotMul=2.

И еще вопрос. На сколько кадров у 300D хватает внутреннего буфера?


Оффлайн Дядя Вова

  • *****
  • Сообщений: 5 243
  • Рейтинг: +15/-0
  • Садовод-любитель
    • Награды
Фотик затыкается на 9 кадре с надписью Бизи на индикаторе и ERROR: Ser Tv=4 ->? Unknown STI на мониторе.
После этого скрипт продолжает выполняться. Бизи не исчезает. Выключение питания помогает, как понял, не всегда.
Кстати, а это первый set Tv ? А если не первый, то что с предыдущими?

Вроде первый, как в test.bot. Не очень понимаю отличие set Tv от shot tv

Наблюл, что 300D делает только 6 кадров, при любой комбинации shotmul и checkpoint. Причем затвор срабатывает 7 раз. Последний уже на фоне мигающего busy. После завершения скрипта ещеьодин щелчек затвора. busy перестает мигать, но фотик виснет при нажатии любой клавиши и питание не выключается. только открытием крышки батарейного отсека.

Еще если сделать кадров меньше 6 ти, то скрипт завершается нормально., но последующий запуск будет неудачным - что-то там с неудачным запуском сессии.


Цитировать (выделенное)
Попробуй вот чего (если время есть). Надо определиться с тремя цифрами.
Ставил задержку между кадрами shotmul=8 - один фиг
Цитировать (выделенное)
И еще вопрос. На сколько кадров у 300D хватает внутреннего буфера?
А черт знает! 3 кадра моментально, потом 2-3 с задержкой 2 сек, а последующие только через 6.

В ПСЗ2006 кадров 30 или 40 удалось только сделать

А 5МБ WIA через GPRS не выкачать :(

[/quote]
(Vixen ED80+Canon300Da, 9x50+QHY5)+EQ6upg

Грин

  • Гость
Но вот вот эти шаманские танцы владельцев К-350д хоть убей не пойму. Чем же ДСЛРфокус-то не угодил? ???
Да и прочие фотики в Максиме стреляют на раз.
Странно... ;D
Чем не угодил: все эти "фокусы" и максимы ориентированы на съемку с длинными выдержками в более-менее неспешном темпе. Задержка на пару секунд -- не проблема ни разу.
 Кстати, народ преподъёмом зеркала интересовался (который у меня работает) - при нём о какой скорострельности речь вообще? ;D

Это не так!
 Когда я в ДЛСР снимаю флэты с выдержкой десятые-сотые доли секунды, мой Кенон строчит как пулемёт. И 20-30 кадров безо всяких задержек слиты в ноут, простенький, кстати.
  Кстати, народ преподъёмом зеркала интересовался (который у меня работает) - при нём о какой скорострельности речь вообще? ;D
Цитировать (выделенное)
Там нужны выдержки в 1/250-1/1000, затем нужно переходить к длинным выдержкам (я планирую до 2 секунд). И к третьему контакту возвращаться на короткие выдержки на другую сторону хромосферы. Этого в Максиме нет, а Фокус у меня просто не заработал.
Да? раздел Секвиенс в Максиме смотрели, нет там такого? Вот из любопытства сегодня посмотрю... ;D
 Ну , а Фокус... что сказать? - у всех работает и делает всё как надо. ;)

Оффлайн Павел Бахтинов

  • Модератор
  • *****
  • Сообщений: 2 070
  • Рейтинг: +77/-9
    • Искусство астрофотографии
    • Награды
Как я понимаю, нужно включить руками опцию предварительного подъема в Custom-функциях (они из API только на чтение, причем для каждой камеры свои). И дальше надо делать две команды: одну с короткой выдержкой для обработки подъема, вторая -- собственно съемка. В скрипте будет что-то вроде:

shot Tv=1/1000
shot Tv=1/10
Попробовал подобное с Canon-350D. К сожалению, такой фокус не проходит: при включенной опции предподъема зеркала камера никак не реагирует на команду shot. Вероятно, это особенность прошивки таких камер, недаром в других программах (например MaxIm DL) съемка с предподъемом реализована подачей внешнего электрического сигнала управления (напр., через линию RTS свободного COM-порта). Однако в существующей версии DSLRobot камера все время находится в состоянии busy (даже в процессе выполнения команд типа wait user и подобных), и на электрические сигналы не реагирует тоже (как и на нажатие кнопки затвора вручную).
Таким образом, для организации съемки с предподъемом зеркала на Canon-350D необходимо сделать две вещи: добавить еще одну команду, которая выдавала бы импульс положительной полярности на линию RTS порта COMn, и каким-то образом выводить на это время камеру из состояния busy (во всяком случае, в Максиме это как-то реализовано).
Такая доработка резко повысила бы ценность программы DSLRobot для съемки предстоящего затмения, поскольку камер таких много, а уменьшение вибраций при работе со сравнительно длиннофокусной оптикой на монтировках облегченного "походного" класса - насущная необходимость.

Оффлайн Nik-pax

  • Читатель
  • *
  • Сообщений: 1
  • Рейтинг: +0/-0
    • Награды
Дядя Вова
Не знаю, как для других камер, но для Canon 300D, можно сделать серию кадров с различными выдержками с помощью  DSLR Remote Pro не используя брекетинг и прочих танцев с бубнами.

1. Ставим Васину прошивку и устанавливаем для одиночных кадров предподъем зеркала 1.5 сек.
2. Устанавливаем DSLR Remote Pro, в папке DSLRRemoteTest есть файл DSLRRemoteTest.exe.
3. Пишем для него простейший бат-файл, типа:

DSLRRemoteTest -s 48
DSLRRemoteTest -s 26
....................
....................

число определяет выдержку,т.е. 0=bulb; 1=30сек. и т.д.

4. На камере ставим режим "М"
5. Запускаем DSLR Remote Pro
6. запускаем бат-файл
и все камера щелкает в соответствии с записанным алгоритмом.
За 2 мин. у меня получается всего 23 кадра, но зато ничего не виснет и трогать не надо фотоаппарат. Можно наслаждаться затмением. Больше кадров просто не успевает сделать, т.к. скорость самого Canon 300D очень маленькая и буфер быстро заполняется.

Оффлайн dmitryP

  • *****
  • Сообщений: 716
  • Рейтинг: +16/-3
    • Награды
Попробовал подобное с Canon-350D. К сожалению, такой фокус не проходит: при включенной опции предподъема зеркала камера никак не реагирует на команду shot.

Таким образом, для организации съемки с предподъемом зеркала на Canon-350D необходимо сделать две вещи: добавить еще одну команду, которая выдавала бы импульс положительной полярности на линию RTS порта COMn,
Сделать можно. Но тут нужна помощь клуба. Открыть COM-порт -- не бином Ньютона, но что ему дальше надо сказать. Чего писать туда надо, чтобы добиться искомого импульса? Подскажите, кто знает.


Однако в существующей версии DSLRobot камера все время находится в состоянии busy (даже в процессе выполнения команд типа wait user и подобных),
Это не бага, а фича. :)
Я при первом обращении к камере блокирую управление. Этого можно не делать. Но тогда это придется делать на каждый снимок -- больше команд, больше вероятность, что камера сойдет с ума. Пожалуй, сделаю я возможность блокировать камеру по желанию пользователя. Кто хочет -- блокирует сразу, кто нет -- не блокирует вообще.

Вот бага то, что после серии кадров камера не всегда в разблокированное состояние возвращается. В доке у Canon про это написано в духе: "такова жизнь, выключите и включите камеру". :(

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

Оффлайн dmitryP

  • *****
  • Сообщений: 716
  • Рейтинг: +16/-3
    • Награды
Не знаю, как для других камер, но для Canon 300D, можно сделать серию кадров с различными выдержками с помощью  DSLR Remote Pro не используя брекетинг и прочих танцев с бубнами.
...
2. Устанавливаем DSLR Remote Pro, в папке DSLRRemoteTest есть файл DSLRRemoteTest.exe.
3. Пишем для него простейший бат-файл, типа:

DSLRRemoteTest -s 48
DSLRRemoteTest -s 26
Я с этого начал. Во-первых, показалось что медленно (в прочем, если хочется игр с преподъемом, то это по фигу). Во-вторых, камера 20D висла точно так же.

число определяет выдержку,т.е. 0=bulb; 1=30сек. и т.д.
Вообще у Canon коды чуть хитрее (если надо, могу выложить доку). Или это особенность Васиной прошивки? Кстати, может кто-то для темных программистов пояснить, что за зверь -- "Васина прошивка"?

Оффлайн Дядя Вова

  • *****
  • Сообщений: 5 243
  • Рейтинг: +15/-0
  • Садовод-любитель
    • Награды
Кстати, может кто-то для темных программистов пояснить, что за зверь -- "Васина прошивка"?
http://satinfo.narod.ru/
(Vixen ED80+Canon300Da, 9x50+QHY5)+EQ6upg

Оффлайн Павел Бахтинов

  • Модератор
  • *****
  • Сообщений: 2 070
  • Рейтинг: +77/-9
    • Искусство астрофотографии
    • Награды
Сделать можно. Но тут нужна помощь клуба. Открыть COM-порт -- не бином Ньютона, но что ему дальше надо сказать. Чего писать туда надо, чтобы добиться искомого импульса? Подскажите, кто знает.
Я сам не программист...  :-\
Нашел вот на домашнем компе только пример под Delphi (см. вложение) - это у нас на работе писали для открытия COM-порта для обычного последовательного обмена, но с принудительной установкой в определенное состояние сигналов квитирования RTS, DTR (от них питалась оптопара развязки в подключенном к порту приборе).
Состояние сигналов квитирования (и еще каких-то параметров порта) определяется полем DCB.Flags (строка №49 в примере). Какой именно бит отвечает за RTS - не помню :( , завтра на работе постараюсь выяснить.

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

Оффлайн ctac

  • Первооткрыватель астероидов и сверхновых
  • Обозреватель
  • *****
  • Сообщений: 7 040
  • Рейтинг: +121/-11
  • Привет, со снежных вершин в июле... Короткий Стас
    • НЦ "Ка-Дар"
    • Награды
« Последнее редактирование: 27.07.2008 [17:20:21] от ctac »
www.astroalert.su - Информационный сайт для астрономов-наблюдателей
http://www.astromap.ru - Всё астрономические организации РФ и ближнего зарубежья

+7-905-734-64-33
                 Ясного неба и удачи в наблюдениях!

Оффлайн dmitryP

  • *****
  • Сообщений: 716
  • Рейтинг: +16/-3
    • Награды
Всех приветствую.

Выложил обновление DSLRobot, если это кому-то еще интересно. Почему сомнения -- лично про себя не уверен, что за 2 дня до отъезда повелся бы на какую-то непонятную программу. Но на всякий случай выкладываю.

Что изменилось.

1) Существенно изменена работа с сигналами от камеры. Это сильно полечило стабильность новых камер на PTP-протоколе -- там (счастье!) нашлись все необходимые сигналы. Стабильность старых камер с legacy-протоколом тоже улучшилось, но... ценой изрядного замедления съемки. Как я писал, сигналы тут приходят не все, а те что приходят -- приходят поздно.

2) Я сделал таки возможность детального протоколирования информации об обмене с камерой. Включается ключем -log в командной строке. Очень помогает при разборе полетов.

3) Несколько переделана логика блокирования интерфейса. К сожалению, совсем без него не получается. PTP-камеры блокируются сразу при включении в комп, legacy -- не блокируются, но если их не заблокировать, перестают приниматься параметры камеры. Говоришь ты, установи Tv=1/30, а она тебе -- угу, приняли, но Tv, как была 1/1000, так и осталась. Причем иногда как-то срабатывает. Но примерно один раз из 10.

4) Появилась новая настройка BufSize -- число кадров, которое помещается во внутренней памяти камеры. Получить его из API нельзя, переполнять крайне нежелательно, а снимать по одному кадру -- медленно. Вот и приходится побираться. Счастье еще, что камера в искателе это число показывает.

Собственно, можно брать и пробовать.

Пару слов про сравнение с DSL Remote Pro. После последних изменений в сигналах, быстродействие DSLRobot на старых камерах изрядно упало (правда тогда оно работало быстро, но ломалось через раз). Я бы сказал, что по скорострельности сейчас мой робот и DSL Remote Pro довольно близки. В общем, если нет желания устраивать лихие скачки по выдержкам, и вполне устраивает работа с длинным линейным брекетингом (15 ступеней от длинных выдержек к коротким), то надо брать инструкцию Стаса Короткого и не мудрствовать.

Хотя надо заметить, что проблемы со стабильностью на старых камерах (например, на моей 20D) есть и там, и там. Виснет в самый неподходящий момент и почему -- непонятно.

Отдельное слово про DSLRRemoteTest.exe. В принципе работает, но бывает что и кадры пропускает, и камеру вешает. Тоже та еще штучка.

Оффлайн dmitryP

  • *****
  • Сообщений: 716
  • Рейтинг: +16/-3
    • Награды
Я сам не программист...  :-\
Все равно уважаю! ;)

...это у нас на работе писали для открытия COM-порта для обычного последовательного обмена, но с принудительной установкой в определенное состояние сигналов квитирования RTS, DTR ...
Посмотрел пример и документацию по этим вызовам в Windows API -- надо сказать, что структура данных DCB несколько отличается. Вернее даже не сама структура, а ее раскладка. Я прицепил архив со страничкой документации про это DCB, может кто понимает, разберется, чего ей говорить?


Пожалуй, сделаю я возможность блокировать камеру по желанию пользователя. Кто хочет -- блокирует сразу, кто нет -- не блокирует вообще.
Да, это то, что надо.
Не вышло (почему -- описал выше). Сейчас сделано так: на время выполнения команд set и shot интерфейс блокируется напрочь. На время всех wait -- блокировка снимается. Если будет работа через COM, можно будет присобачить отключение блокировки и сюда.

Оффлайн Aurorыч

  • Призер конкурса АСТРОФОТО
  • *****
  • Сообщений: 5 515
  • Рейтинг: +123/-13
  • пора мусор выносить
    • Награды
Too stupid to understand science? Try religion!

Оффлайн Павел Бахтинов

  • Модератор
  • *****
  • Сообщений: 2 070
  • Рейтинг: +77/-9
    • Искусство астрофотографии
    • Награды
...это у нас на работе писали для открытия COM-порта для обычного последовательного обмена, но с принудительной установкой в определенное состояние сигналов квитирования RTS, DTR ...
Посмотрел пример и документацию по этим вызовам в Windows API -- надо сказать, что структура данных DCB несколько отличается. Вернее даже не сама структура, а ее раскладка. Я прицепил архив со страничкой документации про это DCB, может кто понимает, разберется, чего ей говорить?
Простейшие опыты показали, что RTS устанавливается с помощью RTS_CONTROL_ENABLE ;)
В Delphi это выглядит так:
.....
const
  dcb_Binary              = $00000001;
  dcb_ParityCheck         = $00000002;
  dcb_OutxCtsFlow         = $00000004;
  dcb_OutxDsrFlow         = $00000008;
  dcb_DtrControlMask      = $00000030;
  dcb_DtrControlDisable   = $00000000;
  dcb_DtrControlEnable    = $00000010;
  dcb_DtrControlHandshake = $00000020;
  dcb_DsrSensivity        = $00000040;
  dcb_TXContinueOnXoff    = $00000080;
  dcb_OutX                = $00000100;
  dcb_InX                 = $00000200;
  dcb_ErrorChar           = $00000400;
  dcb_NullStrip           = $00000800;
  dcb_RtsControlMask      = $00003000;
  dcb_RtsControlDisable   = $00000000;
  dcb_RtsControlEnable    = $00001000;
  dcb_RtsControlHandshake = $00002000;
  dcb_RtsControlToggle    = $00003000;
  dcb_AbortOnError        = $00004000;
  dcb_Reserveds           = $FFFF8000;
....
// Включение RTS (нажатие на кнопку затвора)
  DCB.Flags:=DCB.Flags or dcb_RtsControlEnable;
  SetCommState(com,DCB);
....
// Выключение RTS
  DCB.Flags:=DCB.Flags and (not dcb_RtsControlEnable);
  SetCommState(com,DCB);

Сейчас сделано так: на время выполнения команд set и shot интерфейс блокируется напрочь. На время всех wait -- блокировка снимается. Если будет работа через COM, можно будет присобачить отключение блокировки и сюда.
Это приемлемый вариант.

Пару слов про сравнение с DSL Remote Pro.
... если нет желания устраивать лихие скачки по выдержкам, и вполне устраивает работа с длинным линейным брекетингом (15 ступеней от длинных выдержек к коротким), то надо брать инструкцию Стаса Короткого и не мудрствовать.
Тогда уж лучше МаксимДЛ, где поддерживается и произвольный ряд выдержек, и предподъем зеркала (на длинных фокусах последний действительно нужен!). Но предподъем в Максиме начинается только после записи предыдущего кадра на флэшку. Если бы с помощью DSLRobot удалось записывать предыдущий снимок в процессе цикла предподъема, число полученных за время полной фазы кадров увеличилось бы чуть ли не вдвое!

Оффлайн dmitryP

  • *****
  • Сообщений: 716
  • Рейтинг: +16/-3
    • Награды
Павел, запрограммировал.

На сайте и в доках этого пока нет, но выложен отдельный архив с экспериментальной версией DSLRobot.

В командной строке он принимает параметр -com n, где n -- задает номер COM-порта.
Если это задано, то в скрипте можно использовать команду shotcom.
По ней я пытаюсь выставить на порт сначала включение RTS, затем жду 250 ms и выключаю.
При необходимости время ожидания можно задать с помощью команды set shotcom=<время в мс>.
Т.е. что-то вроде:

set shotcom=250
...
shotcom
...
shotcom
и т.д.

Во-первых, это правильная логика? Проверить вживую я не могу.

Во-вторых, я сейчас даже не могу запустить -- без камеры не стартует, а камеры под руками нет. Т.е. фактически проверил что все компилируется и открывается COM. И все...  :P

Реальный запуск проверю завтра утром, но если есть возможность -- пустите на пробу. Вдруг... Вроде все вещи простые, и явных ошибок допускать негде.

Оффлайн Павел Бахтинов

  • Модератор
  • *****
  • Сообщений: 2 070
  • Рейтинг: +77/-9
    • Искусство астрофотографии
    • Награды
Спасибо, Дмитрий!
Пробовать буду уже на месте: сейчас "сижу на чемоданах", скоро на поезд. По прибытии в Новосибирск будет еще около суток на эксперименты ;) . Если не пойдет - тогда Максим, или вот это: http://www.moonglowtech.com/products/EclipseOrchestrator/index.shtml (спасибо Антону Санину за ссылку).

Оффлайн dmitryP

  • *****
  • Сообщений: 716
  • Рейтинг: +16/-3
    • Награды
Чуть подправил программу. Все-таки одну маленькую, но неприятную ошибку с установкой параметров я нашел. Пока выложен только архив с COM. Сейчас подправлю документацию -- выложу все остальное.

Бросил в личку свой мобильный телефон на всякий случай.

А где в Новосибирске обитать будете?

Оффлайн dmitryP

  • *****
  • Сообщений: 716
  • Рейтинг: +16/-3
    • Награды
На сайте обновлена документация к DSLRobot и выложены свежие версии программы с поддержкой (неопробованной) управления через COM.

Сейчас буду изучать EclipseOrchestrant. То что написано про него -- очень вкусно.

Оффлайн dmitryP

  • *****
  • Сообщений: 716
  • Рейтинг: +16/-3
    • Награды
Спасибо, Дмитрий!
Если не пойдет - тогда Максим, или вот это: http://www.moonglowtech.com/products/EclipseOrchestrator/index.shtml (спасибо Антону Санину за ссылку).
Вот спасибо так спасибо!
Хоть это и не очень приятно мне как разработчику, но этот EclipseOrchestrator делает все что нужно и еще сверх того. Немного (на мой взгляд) странный формат скрипта, но это все с запасом окупается функциональностью!

И работает. Правда на быстрой-быстрой съемке проблемы с камерамы все же есть. Но у кого их нет.