// фото таймер для съемки таймлапсов
// 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();
}
+17 |
3738
102
|
Только на днях получил и руки чесались что-то попробовать поснимать.
Пока что мастерю стедикам. Попробую объединить его и приблуду для таймлапса.
Глаза немного режет. Лучше исправить на case. Красивее выглядит и чуть производительнее.
Конечно, придираюсь, но обязательно ли ставить реле? А если да, то можно было купить что-то по мельче (токов то нет больших).
подробности тут
Я на смартфон снимаю цейтраферку, в большинстве андроид-смартфонах эта функция идет уже «из коробки»:
Да и куча приложений в Маркете есть…
Не спорю, на зеркалку получается шикарная группа снимков, из которого можно 4К видео забабахать!
В моём леново 780-м камера убогая.
По заверению продавца на Али выдерживает ДСЛР камеру с объективом до 2х кг…
Это снял летом.
Можно поизвращаться и совместить длительную выдержку и интервальную съемку.
Ну и держать кнопку n минут -удовольствие ниже среднего.
Вот например f/7,1, 1202сек.
Двадцать минут держать кнопку — держалка отвалится. Пока снимался этот кадр, мы с коллегами уговорили пузырек винца… И удовольствие и дело движется
мне даже кажется что пульт был бы на много удобнее и лучше ( правда дороже ) но смотря какие вещи с ним снимают люди… жаль у меня нету входа для пульта.
Там можно в прошивке сделать таймлапс или использовать фильтры «сдвиг» но тогда получается что сверху и снизу 2 размытые полоски ( работа фильтра ).
А вообще фотиком доволен, дал понять что хочу от будущего ( если он будет ) и какие режимы и объективы нужны.
после зеркального «вроде канон» 3200 kit за 25 000 у моего друга ( он купил на 4 месяца раньше ) мой кажется сказкой.
Вот например так.
з.ы. есть идея купить второй Canon PowerShot A800 (цена на б/у аппарат — 14-15$) и попробовать снять таймлапс в 3D…
з.з.ы. за прямые руки — +++
Снято на Canon 600D
Первая часть GoPro, вторая Canon s110. На некоторых моделях, можно отключать экран, здорово экономит батарею.
www.magiclantern.fm/ — официальный сайт
— видеоруководство.
именно как вы говорите- 2 канона и цшдк, но результат не очень- если разносить по разным комнатам -3 метра база, то теряется синхрон
Сейчас любой телефон может снимать таймлапс при установке соответствующего приложения.
А при частоте 30-50 кадров в сек, качество исходного кадра не играет особой роли, т.к. глаз «замыливает» отдельную картинку и воспринимает движение. Я уже молчу о том что при конвертации видео половина деталей каждого кадра будет потеряна…
Как чисто инженерное решение — это интересно. хотя и не ново…
Практического смысла не имеет, равно как экономической эффективности.
Кроме того, есть незеркалки, которые снимают не хуже, как ни странно.
Например Nikon P7000.
И про экономическую эффективность не надо, некоторым за это платят.
Делал на Pro Mini с управлением через ИК и пультом 433МГц. Еле код для соньки нашел. Особенно на видео, так как родной пуль только фото делает.
Самая большая проблема — батарейное питания фотиков
Ресурс затворов камер Canon
Очень рекомендую прошивку Magic Lantern там это механизм реализован через съемку видео, т.е. с постоянно открытым затвором. В ней кстати очень много интересных возможностей, так что ставьте ни чуть не пожалеете!!!
Единственное что батраея в таком режиме садиться намного быстрее за 30-40 минут, так что лучше использовать батарейную ручку, или внешнее питание.
Касательно переживаний за затвор камеры, могу сказать что сам этим тоже озабочен. Тем не менее для каких-то ответственных и качественных Time-lapse использую зеркалку, для вариантов типа как я кладу плитку в ванной, пользуюсь GoPro, там Time-lapse хорошо реализован, можно хоть ежесекундно клацать, и нет насилия над затвором.
Программа которая позволяет управлять зеркалками canon и nikon по USB, в ней есть специальный режим для съемки таймлапс, в котором есть возможность автоматической коррекции экспозиции различными способами, основываясь на анализе фотографий с камеры (периодически скачивает с камеры фотографию и считает ее среднюю яркость).
CHDK также имеет право на жизнь.
А вообще проще всего конечно обычный интервальный пульт.