Pull to refresh

Timelapse таймер на Arduino

Reading time 3 min
Views 76K
Привет, Хабр!

Одним из моих хобби является, как ни банально, фотография. Пол года назад задумался над созданием таймлапсов. Для создания таймлапсов требуется таймер, на котором можно будет выставлять частоту срабатывания затвора фотоаппарата. В поисках готового и дешевого решения были попытки заказать устройство на ebay, но так как Почта России дважды теряла мой долгожданный таймер, я решил сделать его сам.

image

Разработка принципиальной схемы


Идея устройства проста: сигнал с потенциометра поступает на АЦП контроллера, тем самым задает интервал выходного сигнала на камеру. Этот интервал будет отображаться на 2 индикаторах, 3-й индикатор будет обозначать нам единицу измерения интервала (секунды или минуты), а также зажигать точку в случае, если значение потенциометра не менялось дольше 1 секунды. Данная индикация нужна была для решения одной проблемы, о которой будет сказано ниже, в конце концов она не оказалось лишней. Так же на устройстве я предусмотрел пару кнопок для ручной подачи сигнала на затвор и фокус.

Управление 7 сегментными индикаторами довольно простое.

image

Принципиальная схема устройства

image

Развел плату в Eagle-Cad. Естественно старался все делать на SMD элементах и настолько компактно насколько это позволяет печать на фольге и травление в хлорном железе. В результате вышла плата размером 5х5 см.

image

В живую.

image

После этого перевел рисунок на текстолит, вытравил и залудил. Результат на картинке.

image

Попытался впервые нанести маску, но первый блин комом.

image

Прошивка


После напайки большей части компонентов настала очередь поработать с прошивкой. Во-первых, залить на ATmega8L бутлоадер Arduino NG. Во-вторых, написать код программы. И уже на первом этапе я понял, что задача не так проста, потому что Arduino NG производится на базе ATmega8 и работает с кварцем на 16 МГц, в отличие от ATmega8L, которая работает с кварцем на 8 МГц. Но благо в интернете много информации по этой теме, например бутлоадер, который помогает сделать Аrduino с кварцем на 8 МГц на 8L (ссылка на бутлоадер). Его я и залил через Arduino IDE. Увы загрузчик постоянно слетал после прошивки первого скетча. Эту проблему я так и не смог устранить, поэтому так и приходилось заново его заливать. Если кто знает как правильно залочить, буду рад помощи.

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

Основная проблема состояла в поддержании цикла динамической индикации с одновременным отсчетом таймера для произведения снимка. Благо, в Arduino предусмотрена славная функция mills(), возвращающая кол-во миллисекунд с момента включения устройства. Так как не предусматривалось использование устройства в течении более 1 суток, то эта функция идеально подходила для тайминга.

Данная программа считывает значение с АЦП, проверяет, не изменился ли выбор времени, и если уж он изменился, то производит снимок с новым таймером. Так как значение АЦП довольно таки ощутимо бегает даже если не трогать потенциометр, то было решено брать не более 16 значений времени.

Для пущей экономии было решено выключать индикацию через 10 секунд после последней смены значения потенциометра. Сэкономили 30 мА — мелочь, а приятно.

Все файлы прошивки и схемотехники можно найти здесь (ссылка).

Сборка устройства


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

До

image

После

image

В итоге вышло неплохое устройство себестоимостью 200 р., которое исправно работает.

image

image

Конечно, можно было пойти по протоптанной тропинке и сделать все на NE555, но очень уж хотелось индикацию и более удобный выбор времени таймера.

В этот же день и сняли свой первый таймлапс прямо из окна рабочего места gif 8Мб.
Tags:
Hubs:
+29
Comments 26
Comments Comments 26

Articles