TimeLapse контроллер

молния

Предисловие:

Всё началось с покупки фотоаппарата. Попал мне в руки как то Panasonic Lumix DMC-FZ8 и аппарат был для своего времени и цены очень неплох. И всё бы ничего, но дурная голова рукам покоя не даёт, но сначала я увлекся съемкой молний, а потом вообще столкнулся я таким явлением как «интервальная съемка» или timelapse. И началось… если в съемке грозы мой Lumix доставлял неудобства из разряда «чертова кнопка спуска трясет фотик», что на длинной выдержке недопустимо, то об интервальной съемке с ним можно забыть. Нет там такой функции и всё тут. Но, собравшись с мыслью «яж инженер», решил я эти досадные изъяны решить по-своему. И так TimeLapseController.

Глава 1 «Все великие дела начинаются с идеи!»

И так, определяемся с ТЗ. Задачи следующие:

  • Т.к. интервальная съемка – дело длительное, нужно обеспечить аппарат дополнительным питанием. Мой Lumix питается от 7.4 вольта (т.е. 2S). Значит берём 2 аккумулятора форм-фактора 18650 где-то на 2200 мА/ч. При моем потреблении этого должно хватить примерно на 7 часов съемок.
  • Т.к. кнопка спуска имеет два положения (фокус и спуск), девайс должен уметь нажимать на них последовательно и периодически. Ну самый простой способ – Arduino nano и оптроны, чтобы гальванически развязаться от фотоаппарата (Мало ли что). Я конечно всегда не любил «ардуины». Причин много. Но, как не противоречиво это звучит, проектов с ними у меня получалось больше остальных именно из-за простоты. И этот случай – не исключение.
  • Т.к. работать девайс должен преимущественно в полевых условиях, количество органов управления нужно свести к минимуму. Так должно быть удобнее (я художник – я так вижу). Значит будет валкодер и дисплей. Куда же еще лаконичней?
  • Ну а что бы было куда расти и расширять функционал, возьмём простой, но графический дисплей типа nokia И разъемов для подключения фотоаппарата и фиг знает, чего еще можно сделать парочку. А чего мелочиться то?

Итог размышлений – схема:

Глава 2 «Хардвар без софтвара мертв!»

Определившись со схемой, насыпал на стол всякого и собрав из этого макет, принялся кодить. Я никогда не был программистом и вообще мало что понимаю в языках, поэтому всё было либо простым как велосипед, либо я честно заимствовал примеры из интернета.

Первое, с чем столкнулся, как распараллелить процессы? Если этого не сделать, то интервалы будут считаться кое как. Точности не будет совсем. Значит отказываемся от delay(); ибо это вообще зло не кошерное, а тут оно вообще вредит. Посоветовавшись с другом – программистом, почитав мануалы и т.д. пришел к millis(); вот от этого таймера и будет всё работать.

Второе, от чего даже начинало иногда подгорать – чёртовы китайские валкодеры. Жутчайший дребезг в сигналах и абсолютное не понимание того, что от него хотят. В итоге было найдено более или менее адекватное решение. Пришлось обвязать его конденсаторами и в коде заюзать прерывание.

Было еще много мелких «граблей», но описывать всё – не хватит никакой статьи.

И вот он долгожданный первый пуск:

Далее долго строил меню, вылизывал интерфейс, пробовал некоторые фишки или же выкидывал их. В итоге окончательный на данный момент код:

Глава 3 «Софтвар без хардвара бесполезен!»

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

Тут нужна была компактность. Поэтому я решил сделать «бутерброд». На основную плату с одной стороны припаиваем ардуину, но вверх ногами (наизнанку), что бы её разъем и остальные выступающие элементы оказались внизу. С другой стороны платы припаиваем модуль дисплея. Всё, можно собирать в корпус вместе с аккумуляторами и прочими потрохами:

Осталось самое сложное – подключить эти пироги к фотоаппарату. Процесс препарирования я к сожалению, не задокументировал, но я думаю, он и не нужен. Если дорогой читатель захочет повторить данную конструкцию, шансы что именно этот аппарат будет подопытным, крайне малы. А значит это вопрос индивидуальный для каждого конкретного случая. Однако есть общая рекомендация: припаивая провода к кнопке, убедитесь, что в аппарате есть место для разъема и маленькой схемы защиты от всяких паразитных токов, помех, наводок и прочей нечисти. Схема защиты была мной честно срисована из сервис-мануала одного из дорогих зеркальных фотоаппаратов:

Глава 4 «что же получилось?»

Немного о меню и эксплуатации:

-Если включить устройство с зажатой кнопкой валкодера – устройство издает три писка и сбрасывает настройки в начальные. Функция необходима при первом запуске после прошивки и на случай, если мы “нарулили” лишнее (контраст дисплея, например, или слишком большое число и его лень крутить назад).

-Короткими нажатиями мы посылаем сигнал на снимок в разъем основной и разъем AUX (полезно, если требуется подключить 2 фотоаппарата).

-Длинное нажатие запускает таймер. Тут нужно отметить, что за половину времени интервала на основном разъеме зажимается кнопка “фокус”, по истечению интервала времени на обоих разъемах срабатывает “затвор” и после этого отпускается “фокус”.

-Все настройки сохраняются в ПЗУ только если вы запускали таймер (длинное нажатие).

главный экран

-индикатор батареи + время работы устройства.

-Next: Время до следующего кадра.

-Shot: Количество сделанных снимков лимит снимков (если установлен, то показывает “-” перед числом)

-Сlip: Расчетное время итогового клипа в секундах (если установлен лимит снимков, показывается сразу конечное время. иначе время рассчитывается с каждым новым снимком)

-Sett: Кнопка входа в настройки.

-GoStop: Короткое нажатие – ручной снимок Длинное нажатие – запуск таймера.

экран настроек

-Int: Установка интервала съемки.
-Lmt: Лимит кадров.
-Fps: Количество кадров в секунду (Используется для расчета времени итогового клипа)
-Dsp: Уровень контраста дисплея
-Back: Кнопка возврата в главный экран.

Заключение

Этой конструкцией я пользовался около 2 лет и она себя вполне оправдала. Конечно можно было купить готовый пульт в Китае, но это не спортивно. Да и функционал ограничен фантазией производителя, а не Вашей собственной. Сейчас у меня уже другой фотоаппарат со встроенной функцией интервальной съемки, но свой старый Lumix в связке с данным устройством, я всё ещё использую для длительных съемок, типа вот такой:

исходники проекта

Добавить комментарий

Ваш адрес электронной почты не будет опубликован.Обязательные поля помечены *