Набор для Time-lapse на основе Ардуино

  • Цена: $3.5+$1.46+$2.54+$2.02

Захотелось мне поснимать таймлапсы.
Встроенной в мою камеру функции интервальной съёмки нет и я стал искать, с помощью чего это можно сделать.

Нашёл неплохой способ на основе ардуино совместимых плат с микроконтроллером.

Так же надо было добавить более удобный, чем правка в коде, ввод значений интервалов в секундах. Посмотрев ролик от arduinoLab решил взять шилд с кнопками и экраном.
Для управления синхрокабелем он использовал оптроны, которые я тоже заказал, но они ещё где-то летают и никак не прилетят. Под рукой оказалась релюшка с оптроном.
Итак, для всего этого я взял:
1. Arduino совместимая платка $3.63



2. реле $1.46


3. KeyPad $2.02



4. Проводки мама папа $2.54


5. На местном радиорынке взял разъём 2,5мм для гнезда камеры и из своих запасов кусок телефонного двужильного кабеля.

Для моей камеры Canon для спуска затвора достаточно закоротить два крайних контакта.

KeyPad устанавливается на ардуину как и любой другой шилд поверх.
Разводка пинов соответствует Arduino Uno


3-й пин ардуино я использовал как управляющий для реле, питание +5 вольт и землю взял так же с шилда.

Скачал Arduino IDE для Linux версии 1.6.5
Установил драйверы отсюда.
Сама плата определяется под линуксом на ура.
Видна она то как /dev/ttyUSB1 то как /dev/ttyUSB0. Каждый раз при подключении надо менять порт.

Залил скетч
скетч


// фото таймер для съемки таймлапсов 
// http://youtu.be/rKcvwzKYLkA

#include <LiquidCrystal.h>

LiquidCrystal lcd(8, 9, 4, 5, 6, 7);

byte shotPin = 3; // пин на затвор камеры

byte key(){
 int val = analogRead(0);
  if (val < 50) return 5;
  else if (val < 150) return 3;
  else if (val < 350) return 4;
  else if (val < 500) return 2;
  else if (val < 800) return 1;
  else return 0;  
}
// --- конец функции кнопок

void startMenu(){
  byte menuPos = 1;
  char menuTxt[3][16] = {" Down to Set", "TimeLapse", "B timer"};
   do{                  
       lcd.clear();  // выводим инфу на экран
       lcd.setCursor(0, 0);
       lcd.print(menuPos);
       lcd.print(".");
       lcd.print(menuTxt[menuPos]); 
       lcd.setCursor(14, 0);
       lcd.print("<>");   
       lcd.setCursor(0, 1);
       lcd.print(menuTxt[0]);
    
       if (key() == 2) menuPos--; // если нажата назад
       else if (key() == 5) menuPos++;  // если нажата вперед  
       else if (key() == 4) { // если нажата вниз
             if (menuPos == 1) menuTimeLap();
             else if (menuPos == 2) menuB();
       }
       else if (key() == 1) analogWrite(10, 255);
       if (menuPos > 2) menuPos = 1; // проверка дабы не вылезти за меню
       if (menuPos < 1) menuPos = 2;
     delay(250);
   }while(1);
}
// --- 

void menuTimeLap() {
  float delayTime = 2600;
  float shot = 160;  
  do {
      lcd.clear();
      lcd.setCursor(0, 0); 
      lcd.print("Tm:");
      lcd.print(delayTime/1000);
      lcd.print("s|");
      lcd.print(((delayTime*shot)/1000)/60);
      lcd.print("min");
      lcd.setCursor(0, 1); 
      lcd.print("shot:");
      lcd.print(int(shot));
      lcd.print("|");
      lcd.print(shot/25);
      lcd.print("sec");      
      
    if (key() == 3) {// up 
      if (delayTime < 3500) delayTime += 100;
      else if (delayTime < 5000) delayTime += 250;
      else if (delayTime < 10000) delayTime += 500;
      else delayTime += 1000;
    } 
    else if (key() == 4) { // down  
      if (delayTime < 3500) delayTime -= 100;
      else if (delayTime < 5000) delayTime -= 250;
      else if(delayTime < 10000) delayTime -= 500;
      else delayTime -= 1000;
    } 
    else if (key() == 5) shot += 10;  // right 
    else if (key() == 2) shot -= 10; // left     
    else if (key() == 1) timeLap(delayTime, shot);
    
    if (delayTime < 1500) delayTime = 30000;
    if (delayTime > 30000) delayTime = 1500;
    if (shot < 120) shot = 1500;
    if (shot > 1500) shot = 120;
    delay(200);  
  } while(1);  
}
// 

void menuB(){ 
int BulbTimerMin = 3; // время по умолчанию
do{
    lcd.clear();
    lcd.print("BulbTimer");  
    lcd.print(" set");
    lcd.setCursor(2, 1);
    lcd.print("min:");
    lcd.print(BulbTimerMin);
      
     byte k = key();
       if (k == 3 || k == 2) BulbTimerMin--;// up         
       else if (k == 4 || k == 5) BulbTimerMin++;  // down  
       else if (k == 1)  Bulp(BulbTimerMin); // set   
       
      if (BulbTimerMin > 59) BulbTimerMin = 1; 
      if (BulbTimerMin < 1) BulbTimerMin = 59;
       
      lcd.setCursor(6, 1);
      lcd.print(BulbTimerMin);         

       delay(250);
    } while (1);
}
////////////////

void Bulp(int min1){
  digitalWrite(shotPin, HIGH); // включаем 
  
  unsigned long int previousMillis = 0;  
  int sek = 0;
  do  { 
   if (millis() - previousMillis > 1000) {   
     previousMillis = millis();   
     sek--;       
   if(sek == -1) {
     sek=59; 
     min1--; 
   }       

    lcd.clear();
    lcd.setCursor(0, 0);
    lcd.print("* Bulb Timer *");  
    lcd.setCursor(2, 1); 
    lcd.print(min1);
    lcd.setCursor(4, 1);
    lcd.print(":");
    lcd.print(sek);   
   }
   
  } while (sek != 0 || min1 != 0); 

 digitalWrite(shotPin, LOW); // выключаем
}
/////////////

void timeLap(unsigned int delayTime, int shot){
   unsigned long prMillis = 0;  
   float shotAll = shot; 
    
   do  {    
     if (millis() - prMillis > delayTime)  {  
       prMillis = millis();   
       shot--;
   
         lcd.clear();
         lcd.setCursor(0, 0);
         lcd.print("***TimeLapse***");
         lcd.setCursor(0, 1);  
         lcd.print(int(shotAll));
         lcd.print(" "); 
         lcd.print(shot);
         lcd.print(" ");   
         lcd.print(int(shot/shotAll*100)); // показываем проценты
         lcd.print("%"); 
   
   digitalWrite(shotPin, HIGH); // включаем 
   digitalWrite(13, HIGH);  
   delay(200);
   digitalWrite(shotPin, LOW); // выключаем 
   digitalWrite(13, LOW);  
  }       
 } while (shot != 0);
}

void setup() {
    lcd.begin(16, 2);  
    lcd.clear();
    pinMode(shotPin, OUTPUT);
    pinMode(13, OUTPUT);    
//    analogWrite(10, 50);
}

void loop() {
//timeLap(2000, 230);
  startMenu();
 
}




И, как нистранно, всё заработало с первого раза.

Теперь как выставить интервал:

Сразу при включении предлагается выбрать обычную интервальную съёмку


Или съёмку с длительной выдержкой (когда кадр экспонируется, пока зажата кнопка спуска затвора).


Если выбрать первый вариант, т.е. таймлапс и нажать кнопку Down мы попадём в меню установки интервала (кнопки UP и DOWN) и выбора длительности съёмки (кнопки LEFT и RIGHT).
Автоматически подсчитывается, сколько будет отснято кадров и какой длины видеоролик получится с учётом 25 кадров в секунду.



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


Вот так выглядит его работа. Камеру не подключал.


Можно выйти на улицу и поснимать пробный таймлапс.


Какой интервал выставил не помню. По-моему 2,6 сек, 180 кадров и итоговый ролик вышел в 6 секунд при 25 кадрах в секунду.


Хорошо бы придумать корпус и способ подвесить на штатив. Пока что в качестве корпуса умерший микротик.


Запитал я это всё дело через Xiaomi PowerBank 10400


Ток при работе всего 0,08 А


И вот, что из этого получилось. Доступно качество 4К


И ещё один вариантик для баловства



Спасибо тем, кто дочитал.
В последующем хочу это всё усовершенствовать, добавить поворотный стол.
Планирую купить +37 Добавить в избранное +53 +105
+
avatar
  • TRAViS
  • 15 ноября 2015, 22:07
+15
усовершенствуете — будете такой кайф снимать
+
avatar
+1
Обязательно.
Только на днях получил и руки чесались что-то попробовать поснимать.
Пока что мастерю стедикам. Попробую объединить его и приблуду для таймлапса.
+
avatar
  • CTAHOK
  • 15 ноября 2015, 22:11
0
Обзор на стедикам планируется?
+
avatar
0
Нет, так как покупалось всё тут по месту.
+
avatar
  • vanenzo
  • 15 ноября 2015, 23:57
0
Надо, стедикам обозреть обязательно, обзор можно начинать словами «эти комплектующие я мог бы заказать здесь <ссылка>» и дальше по тексту ))
+
avatar
+1
Метро «Университет», каждый день крутят с проектора таймлапс съемки с разных мест города…
+
avatar
  • TRAViS
  • 15 ноября 2015, 23:16
0
так этот же ролик и крутят
+
avatar
0
Ну да, и я об этом же…
+
avatar
  • kirich
  • 15 ноября 2015, 23:22
+1
Приятно увидеть родной город в таком ракурсе :)
+
avatar
  • iDjorik
  • 15 ноября 2015, 22:15
+1
else if
else if
else if

Глаза немного режет. Лучше исправить на case. Красивее выглядит и чуть производительнее.
Конечно, придираюсь, но обязательно ли ставить реле? А если да, то можно было купить что-то по мельче (токов то нет больших).
+
avatar
0
неа, как раз таки кейсы будут медленнее работать
+
avatar
0
Лестница else-if — самое лучшее решение по быстродействию. Выглядит не слишком красиво, но «вам шашечки, или ехать?»
+
avatar
+3
да ладно?



подробности тут
+
avatar
  • MuWka
  • 15 ноября 2015, 22:23
+3
TimeLapse — это прикольно, но затвор убивается… А вот такое решение не видели:

Я на смартфон снимаю цейтраферку, в большинстве андроид-смартфонах эта функция идет уже «из коробки»:

Да и куча приложений в Маркете есть…
Не спорю, на зеркалку получается шикарная группа снимков, из которого можно 4К видео забабахать!
+
avatar
0
да, смартом тоже хочется поснимать, но для этого хороший надо иметь.
В моём леново 780-м камера убогая.
+
avatar
  • MuWka
  • 15 ноября 2015, 22:38
+2
И поворотный стол уже есть, правда механический...:

По заверению продавца на Али выдерживает ДСЛР камеру с объективом до 2х кг…
+
avatar
0
А можно ссыль в ЛС?
+
avatar
  • MuWka
  • 15 ноября 2015, 22:50
+1
Конечно, ловите.
+
avatar
0
Спасибо.
+
avatar
  • puhstic
  • 15 ноября 2015, 23:24
0
Делитесь со всеми.
+
avatar
  • MuWka
  • 15 ноября 2015, 23:35
+1
aliexpress.com/item/Andoer-360-Degrees-Panning-Rotating-Time-Lapse-Stabilizer-Tripod-Adapter-for-Gopro-DSLR-high-quality-photography/32291609989.html — Не реклама, отзывы двоякие, кардинально противоположные, сейчас акция — около 14 рублей США…
+
avatar
  • OreSama
  • 16 ноября 2015, 12:21
+1
Один оборот в час это для сильно терпеливых. А всё потому, что это чудо китайской техники в девичестве было обыкновенным кухонным таймером и в таком виде стоило в два раза дешевле.
+
avatar
  • MuWka
  • 16 ноября 2015, 15:00
+1
Ну сама съемка TimeLapse подразумевает терпение… Час это еще мизер… Есть и по три-шесть часов длится съемка одного сюжета… А если вы задумаете снять рост растений — то дни, недели, месяцы ожидания готового результата…
+
avatar
0
Отличное решение, но цена…


Это снял летом.
+
avatar
  • MuWka
  • 15 ноября 2015, 23:17
0
Цена сейчас около 14 рублей США, акция у продавана, для нетяжелых камер можно и обычный кухонный таймер приспособить. Я например старый советский (с бронзовыми шестеренками) приспособил. В принципе и зеркалку выдерживает, только рычаг для смещения центра тяжести по его оси использую
+
avatar
0
чет или ютуб такое делает, или как-то странно у вас снято. по идее, в таймлапсе смазаных кадров медленно движущихся объектов, уж тем более туч, быть не может. а у вас на паузу нажимаешь — ощущение, что каждый кадр запечатлел тучу, проносящуюся со скоростью 100 км/ч.
+
avatar
0
самому не нравится, делал я это в GoPro studio. Нужно попробовать другой софт.
+
avatar
  • manatu
  • 15 ноября 2015, 23:34
0
пожалуйста тоже киньте ссыль!
+
avatar
  • MuWka
  • 15 ноября 2015, 23:36
+1
Выше бросил.
+
avatar
0
Удваиваю вариант с пультом… Плюсы: массо-габариты, вес
Можно поизвращаться и совместить длительную выдержку и интервальную съемку.
Ну и держать кнопку n минут -удовольствие ниже среднего.
Вот например f/7,1, 1202сек.

Двадцать минут держать кнопку — держалка отвалится. Пока снимался этот кадр, мы с коллегами уговорили пузырек винца… И удовольствие и дело движется
+
avatar
  • smotri
  • 15 ноября 2015, 23:22
0
тоже думал что у автора нет возможности воткнуть пульт.
мне даже кажется что пульт был бы на много удобнее и лучше ( правда дороже ) но смотря какие вещи с ним снимают люди… жаль у меня нету входа для пульта.
+
avatar
0
А какой аппарат у Вас? Если не секрет…
+
avatar
  • smotri
  • 16 ноября 2015, 23:25
0
panasonic gf3 брал за 9 000 пару лет назад. изначально хотел G3, но тогда с деньгами был проблемы.
Там можно в прошивке сделать таймлапс или использовать фильтры «сдвиг» но тогда получается что сверху и снизу 2 размытые полоски ( работа фильтра ).

А вообще фотиком доволен, дал понять что хочу от будущего ( если он будет ) и какие режимы и объективы нужны.
после зеркального «вроде канон» 3200 kit за 25 000 у моего друга ( он купил на 4 месяца раньше ) мой кажется сказкой.
+
avatar
  • slod
  • 17 ноября 2015, 14:03
0
TimeLapse — это прикольно, но затвор убивается… А вот такое решение не видели:
В этих пультах вроде бы есть ограничение по максимальному количеству снимаемых кадров — 399 или в лучшем случае 999?
+
avatar
+5
Камера у дороги — сколько водителей в панике в пол тормозило? ;)
+
avatar
  • MuWka
  • 15 ноября 2015, 22:41
0
Ага, еще ардуинку в сундук огромезный и камеру в коробку — и можно совместить полезное с «приятным»… Сразу меньше нарушителей скоростного режима станет… И владельцы антирадаров, даже самых крутых офигеют, что их приблуды никак не реагируют на это новшество...;)
+
avatar
+1
Покупаем Canon PowerShot A800 (или подобный не зеркальный аппарат — не убивать же затвор зеркалки таким режимом съемки) + карту памяти + CHDK + cобираем отснятое в VirtualDub (или в любом другом редакторе) = получаем отменный таймлапс…

Вот например так.

з.ы. есть идея купить второй Canon PowerShot A800 (цена на б/у аппарат — 14-15$) и попробовать снять таймлапс в 3D…

з.з.ы. за прямые руки — +++
+
avatar
  • MuWka
  • 15 ноября 2015, 22:46
+5
Для зеркалок Кенон есть т. н. «надстойка» Magic Lantern" которая может все то же и больше, причем там есть и таймер для цейтраферки и настройки в видеорежиме, позволяющие снимать сразу таймлапс:

Снято на Canon 600D
+
avatar
0
Тоже отличный вариант!
+
avatar
0
100% удобнее Magic Lantern пользоваться, давно себе его поставил уже.
+
avatar
  • Ron_Sky
  • 16 ноября 2015, 00:23
0
Вот и я хотел написать. Мне кажется автору было важнее не снять таймлапс, а сделать что-то своими руками.
+
avatar
  • livo
  • 15 ноября 2015, 23:05
+4
Тоже думал чтоб не гробить затвор взять бу мыльницу и колхозить спуск на микропроцессоре. Но узнал про CHDK.

Первая часть GoPro, вторая Canon s110. На некоторых моделях, можно отключать экран, здорово экономит батарею.
+
avatar
0
Есть на том же али переходники для батарейного отсека фотоаппаратов.
+
avatar
  • Connar
  • 16 ноября 2015, 07:22
0
Это просто прошивка?
+
avatar
  • livo
  • 16 ноября 2015, 07:57
0
Да, хотя скорее просто добавка к оригинальной. Есть два способа загрузки — автоматический и ручной. Пользуюсь ручным при необходимости, после выключения фотоаппарата она отключается и можно пользоваться в обычном режиме
+
avatar
  • MuWka
  • 16 ноября 2015, 11:48
+1
Нет, не прошивка, в мозг камеры не лезет, типа «операционка» на карте памяти — вставите другую и будет нормально работать.
www.magiclantern.fm/ — официальный сайт
— видеоруководство.
+
avatar
  • Naevus
  • 16 ноября 2015, 17:49
0
есть идея купить второй Canon PowerShot A800 (цена на б/у аппарат — 14-15$) и попробовать снять таймлапс в 3D
Для 3Д требуется синхронизировать спуск — тут CHDK не поможет :(
+
avatar
0
все нормально помогает, иначе б я не снял это
+
avatar
0
делал)
именно как вы говорите- 2 канона и цшдк, но результат не очень- если разносить по разным комнатам -3 метра база, то теряется синхрон
+
avatar
  • ABATAPA
  • 15 ноября 2015, 22:51
0
Audio Jack 3.5 mm + and транзистор, провода и разъём для фотоаппарата, смартфон и программа — и управляются даже не имеющие IR. А уж если есть инфракрасный порт для удаленного управления — вообще все просто.
+
avatar
+8
Я сделал все проще. Купил в икее механический поворотный таймер www.ikea.com/ru/ru/catalog/products/30066725/
+
avatar
  • MuWka
  • 15 ноября 2015, 23:42
+10
Мы не ищем легких путей…
+
avatar
0
+
avatar
  • Shadow
  • 15 ноября 2015, 23:38
+3
Это изнасилование затвора камеры…
Сейчас любой телефон может снимать таймлапс при установке соответствующего приложения.
А при частоте 30-50 кадров в сек, качество исходного кадра не играет особой роли, т.к. глаз «замыливает» отдельную картинку и воспринимает движение. Я уже молчу о том что при конвертации видео половина деталей каждого кадра будет потеряна…

Как чисто инженерное решение — это интересно. хотя и не ново…
Практического смысла не имеет, равно как экономической эффективности.
+
avatar
+1
Да старенькую зеркалку можно купить за 5-7 тысяч рублей, чего тут жалеть.
Кроме того, есть незеркалки, которые снимают не хуже, как ни странно.
Например Nikon P7000.
И про экономическую эффективность не надо, некоторым за это платят.
+
avatar
+1
качество исходного кадра не играет особой роли
Ну вот когда вы своим телефоном снимите вот с таким качеством конечного результата, тогда поверю
+
avatar
0
Я с удовольствием посмотрю как ты будешь снимать на телефон, например, такое
+
avatar
  • sav13
  • 16 ноября 2015, 10:10
0
Если высокая точность не планировалась, то таймера NE555 вполне достаточно было. А тут еще удаленное управление напрашивается.
Делал на Pro Mini с управлением через ИК и пультом 433МГц. Еле код для соньки нашел. Особенно на видео, так как родной пуль только фото делает.

Самая большая проблема — батарейное питания фотиков
+
avatar
+1
Скажу что действительно цейтраферная съемка это убийца затвора, для одной минуты нужно сделать 1440 кадров(24 в секунду), что при ресурсе от 50 000 до 150 000(в проф моделях) и стоимости замены затвора не очень радует.
Ресурс затворов камер Canon
Очень рекомендую прошивку Magic Lantern там это механизм реализован через съемку видео, т.е. с постоянно открытым затвором. В ней кстати очень много интересных возможностей, так что ставьте ни чуть не пожалеете!!!
Единственное что батраея в таком режиме садиться намного быстрее за 30-40 минут, так что лучше использовать батарейную ручку, или внешнее питание.
+
avatar
  • Mitka
  • 16 ноября 2015, 14:17
0
Спасибо за обзор! Искренне респектую!
+
avatar
  • vozzurg
  • 16 ноября 2015, 14:52
0
А под ваш аппарат разве CHDK нет?
+
avatar
0
Я бы Вам рекомендовал не реле ставить а оптрон, например PC817. Это сильно уменьшит габариты устройства. Взять оптрон можно например из сгоревшего импульсного блока питания, ну или купить на алиэкспрессе. Подключается крайне легко:

Касательно переживаний за затвор камеры, могу сказать что сам этим тоже озабочен. Тем не менее для каких-то ответственных и качественных Time-lapse использую зеркалку, для вариантов типа как я кладу плитку в ванной, пользуюсь GoPro, там Time-lapse хорошо реализован, можно хоть ежесекундно клацать, и нет насилия над затвором.
+
avatar
  • Naevus
  • 16 ноября 2015, 17:56
0
Взять оптрон можно например из сгоревшего импульсного блока питания
Автор написал, что оптроны заказал — едут еще. Так же он указал, что на релейном блоке стоит оптрон — бери и пользуй (я собственно по тексту так и подумал, пока фото не увидел)
+
avatar
0
Тогда прошу прощения — невнимательно читал :).
+
avatar
  • slod
  • 17 ноября 2015, 14:51
+1
Обзор плюсую за саму идею. Сам давно хотел собрать аналогичный девайс для аппаратов без CHDK и встроенной таймлапс съемки.
+
avatar
  • lefey
  • 18 ноября 2015, 12:42
0
Советую посмотреть в сторону dslrdashboard.info
Программа которая позволяет управлять зеркалками canon и nikon по USB, в ней есть специальный режим для съемки таймлапс, в котором есть возможность автоматической коррекции экспозиции различными способами, основываясь на анализе фотографий с камеры (периодически скачивает с камеры фотографию и считает ее среднюю яркость).
CHDK также имеет право на жизнь.
А вообще проще всего конечно обычный интервальный пульт.
+
avatar
  • Korniat
  • 19 ноября 2015, 21:18
0
Для зеркалок кенон можно поставить альтернативною прошивку меджик латерн, в ней есть возможнасть снимать тайм лепс без дополнитерного оборудования, при чем как с использованием затвора, так и без. Прошивка розмещается на флеш карте, так что если ана вам надоест, то просто достаточно поменять карту или сформатировать.