8 September 2016

Создание динамических time-lapse с помощью микроконтроллера

Open sourceProgramming microcontrollers
Sandbox
Когда то у меня была мыльница Canon и у нее был вход типа мини джек. Через который к фотоаппарату можно было подключить интервелометр и снимать таймлапсы. Интервелометр это такая штука которая может автоматически нажимать на спуск с заданным интервалом времени. Вот что у меня тогда получалось.



И все было прекрасно, но пришла эра беззеркалок, которые были лучше, быстрее, светосильнее. Поэтому я радостно купил беззеркалку Sony. Однако привычного отверстия в ней не было, и мой интервелометр оказался бесполезен. Погуглив я узнал, что проводное подключение производителем не предусмотрено, а бывают только примитивные пульты, которыми нужно спереди светить в фотоаппарат. Поругав компанию Sony за user friendly interface я остался на несколько лет без таймлапса.

Недавно просматривая ютуб я наткнулся на материал по программированию для arduino, и с удивлением обнаружил что там не надо работать с регистрами процессора на ассемблере, а пишется все на C++ и имеются готовые библиотеки на разные случаи жизни. А я то думал…

Мыслей что сделать было много, но я пытался придумать что то полезное. Такое что бы кому то еще захотелось повторить мое устройство.

Устройство для съемки таймлапса показалось отличной идеей. Изначально хотел чтобы камера во время съемки и перемещалась и поворачивалась. Но потом подумал, что платформа для передвижения сделает устройство слишком большим и тяжелым и нормальный человек в отпуск такое не возьмет. Поэтому решил перемещение не делать.

Дальше начал выбирать компоненты. В качестве основного контроллера взял Wemos D1, потому что он программно совместим с Arduino, и при этом имеет на борту wi-fi и больше памяти. Идея заключалась в том, чтобы управлять устройством из браузера телефона.

Для вращения фотоаппарата взял самые дешевые и распространенные шаговый двигатель и контроллер. А для управления затвором фотоаппарата инфракрасный светодиод.

Корпус решил делать из 12 мм фанеры. Потому что, во первых, она довольно тяжелая, а это хорошо для устойчивости, а во вторых она у меня была. В течение месяца ко мне приехали заказанные посылочки и процесс пошел…



Для сборки и прошивки программы в контроллер я использовал Platformio, и CLion в качестве IDE. Спецификацию к инфракрасному интерфейсу своего фотоаппарата я не нашел, но зато наткнулся на готовую библиотеку для Arduino, которая делает то что мне было нужно. И при этом она еще и умеет управлять затвором камер разных производителей. Так что, спасибо разработчику, я реализовал выбор производителя фотоаппарата в приложении, хотя делать это не собирался. Библиотеку я слегка дописал для упрощения работы с разными камерами в одном приложении.

Потом конечно же была долгая и приятная съемка таймлапсов. И вот Та-Да!!!



» Проект open source, описал всё по-максимуму, исходный код выложил. Спасибо за внимание!
Tags:iotarduinowemosdiyopen sourcetime lapse
Hubs: Open source Programming microcontrollers
+19
7k 48
Comments 24
Popular right now
Senior Frontend Engineer
from 160,000 to 220,000 ₽Jamakase TechnologiesRemote job
Full-stack JavaScript Developer
from 70,000 to 150,000 ₽Health SamuraiСанкт-ПетербургRemote job
Senior Node.js Engineer (Cube.js Core)
from 6,000 $Cube.jsRemote job
Backend-разработчик (Middle)
to 250,000 ₽ЛатераЗеленоградRemote job
Top of the last 24 hours