Fotografi

MEMBUAT SENDIRI INTERVALOMETER UNTUK FOTOGRAFI TIMELAPSE


     Timelapse adalah sekumpulan still foto yang diambil dengan periode yang beraturan untuk menggambarkan proses, pergerakan, atau perubahan suatu objek. lalu diproses editing dengan menambah kecepatan (speed Duration). misal, matahari terbenan atau terbit, pergerakan suasana kota, pergerakan bintang-bintang, siang-malam, dan lain sebagainya.

Untuk membuat sebuah efek timelapse yang oke kita butuh

kamera

tripod

dan yang paling penting intervalometer

     sebagai alat pengatur waktu untuk mengambil gambar biar tangan ngga capek mencetin tombol shutter. Ngga mungkin kan kita menunggu selama 24 jam per 1 jam sekali kita ambil gambar di posisi sudut yang sama. Pasti capek dan bosen kan nungguin kalau ngga pakai alat…..

     Intervalometer ini lumayan juga harganya kalau beli di pasaran dan kebanyakan cuma sync sama DSLR. Gimana kalau kamera yg ingin kita pergunakan sebagai peralatan membuat time lapse tsb bukan kamera DSLR?

Ternyata semua bisa diakali dengan :

– Arduino

– LCD shield with 6 key button

– Micro Servo Motor

– kamera apa aja yang ada tombol shutternya 😀

Skematik-nya :

Codingan-ya :

=============================

// INTERVALOMETER

– TIMELAPSE V. 1.0

// AULIA WIKA PRATAMA

// PASCA AGH IPB

//2015

=============================

#include LiquidCrystal lcd(8, 9, 4, 5, 6, 7);
byte newChar[8] = {
B00000,
B01110,
B01010,
B01110,
B00100,
B11111,
B11011,

B11111 };

#include       // built in servo library to control the servo motor
Servo servoA;
int position = 0;
int readkey;
int buttonstate = (readkey<555);
int buttonstate2 = (readkey<50);
int timeup = (readkey<195);
int timedown = (readkey<380);
int analogpin = (readkey<195);
int buttonPushCounter = 0; // counter for the number of button presses
int buttonState = 0;       // current state of the button
int lastButtonState = 0;
int counter = 0; // how many times we have seen new value
int ButtonVal;
int up = 1;

int down = 0;
int setupActivated = 0;
int servoPos;
int timeCounter = 1;
int pushDelay = 3000;   // how long the camera trigger is pushed, may need to be tweaked depending on camera

void setup() {
Serial.begin(9600);
lcd.begin(16, 2);
lcd.createChar(1, newChar);

lcd.setCursor(0, 0);
lcd.print(” INTERVALOMETER”);
lcd.setCursor(0, 1);
lcd.print(” PASCA AGH 2013″);
delay (1500);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print(”

AULIA WIKA P”);
lcd.setCursor(0, 1);
lcd.print(” 081333157163″);
delay (1500);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print(“MENYALAKAN”);
servoA.

attach(2);
lcd.setCursor(12, 0);
lcd.write(1);
delay (300);
lcd.setCursor(13, 0);
lcd.write(1);
delay (300);
lcd.setCursor(14, 0);
lcd.write(1);
servoA.write(0);
delay (500);
lcd.setCursor(0, 1);
lcd.print(“MOTOR SERVO”);
lcd.setCursor(12, 1);
lcd.write(1);
delay (300);
lcd.setCursor(13, 1);
lcd.write(1);
delay (300);
lcd.setCursor(14, 1);
lcd.write(1);
servoA.write(20);
delay (500);
servoA.write(0);
lcd.clear();
lcd.setCursor(4, 0);
lcd.print(“MENUNGGU”);
lcd.setCursor(14, 0);

lcd.setCursor(4, 1);
lcd.print(“PERINTAH”);
lcd.setCursor(14, 1);

pinMode((readkey<195),INPUT);
}

void loop() {
readkey=analogRead(0);

if (readkey<50) {
lcd.clear();
lcd.setCursor(0, 0);
lcd.print(“MENGUBAH ARAH”);
lcd.setCursor(14, 0);
lcd.write(1);
lcd.setCursor(0, 1);
lcd.print(“KE KANAN”);
delay(10);
kanan();
}
else if(readkey<195) {
lcd.clear();
lcd.setCursor(0, 0);
lcd.print(“MENAMBAH WAKTU”);
lcd.se

tCursor(0, 1);
lcd.print(“NAIK”);
delay(200);
lcd.clear();
timecounterup();
}
else if(readkey<380) {
lcd.clear();
lcd.setCursor(0, 0);
lcd.print(“MENGURANGI WAKTU”);
lcd.setCursor(0, 1);
lcd.print(“TURUN”);
delay(200);
lcd.clear();

//down
timecounterdown();
}
else if(readkey<555) {
lcd.clear();
lcd.setCursor(0, 0);
lcd.print(“MENGUBAH ARAH”);
lcd.setCursor(14, 0);
lcd.write(1);
lcd.setCursor(0, 1);
lcd.print(“KE KIRI”);
delay(10);
kiri();
}

else if(readkey<790) {
lcd.clear();
timeLapse();

}

}

void kiri(){

int potVal = analogRead(readkey);   // read the potentiometer
if(bu

ttonstate ==HIGH && position < 180){ servoA.write(position++); delay(5); lcd.clear(); lcd.setCursor(0, 0); lcd.print(“MENGHITUNG SUDUT”); lcd.setCursor(0, 1); lcd.print(position); lcd.setCursor(5, 1); lcd.print (“DERAJAT”); } } void kanan(){ int potVal = analogRead(readkey); if(buttonstate2 == HIGH && position > 0){
servoA.write(position–);
delay(5);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print(“MENGHITUNG SUDUT”);
lcd.setCursor(0, 1);
lcd.print(position);
lcd.setCursor(5, 1);
lcd.print (“DERAJAT”);
}
}
void timecounterup(){

// check analog pin for the button value and save it to ButtonVal
int potVal = analogRead(readkey);
if(timeup == HIGH){
buttonPushCounter++;
delay(100);
}
lastButtonState = buttonState;

// the division of two numbers:
if (buttonPushCounter % 4 == 0) {
digitalWrite(timeup, HIGH);

} else {
digitalWrite(timeup, LOW);
}
lcd.setCursor(0, 0);
lcd.print(“WAKTU DI SET”);
lcd.setCursor(0, 1);
lcd.print(buttonPushCounter);
lcd.setCursor(4, 1);
lcd.print (“*10 DTK/FOTO”);

}

void timecounterdown(){

{

// check analog pin for the button value and save it to ButtonVal
int potVal = analogRead(readkey);
if(timedown == HIGH){
buttonPushCounter–;
delay(100);
}
lastButtonState = buttonState;

// the division of two numbers:

if (buttonPushCounter % 4 == 0) {
digitalWrite(timedown, HIGH);
} else {
digitalWrite(timedown, LOW);
}
lcd.setCursor(0, 0);
lcd.print(“WAKTU DI SET”);
lcd.setCursor(0, 1);
lcd.print(buttonPushCounter);
lcd.setCursor(4, 1);
lcd.print(“*10 DTK/FOTO”);

}
}

void timeLapse(){
while(1){
lcd.clear();
lcd.setCursor(0, 0);
lcd.print(“TIME LAPSE “);
lcd.setCursor(0, 1);
lcd.print(“DIAKTIFKAN”);
delay(1000);
servoA.write(position);   // move servo horn to push button
for (int timer = (buttonPushCounter * 10);timer > 0; –timer){
if(timer >= 10) {
lcd.setCursor(11,0);

} else {
lcd.setCursor(11,0);
lcd.print(“0″);
lcd.setCursor(12,0);
}
lcd.print(timer);
lcd.setCursor(10, 1);
lcd.print(” DETIK”);
delay(1000);
} // keep horn in position for one second
lcd.clear();
lcd.setCursor(0, 0);
lcd.print(“MENGABADIKAN”);
lcd.setCursor(0, 1);
lcd.print(“OBJEK”);
lcd.setCursor(13, 0);

lcd.write(1);
delay (100);
lcd.setCursor(14, 0);
lcd.write(1);
delay (200);
lcd.setCursor(15, 0);
lcd.write(1);
delay (200);

servoA.write(position – 37); // retract servo horn slightly to release button

lcd.setCursor(13, 1);
lcd.write(1);

delay (100);
lcd.setCursor(14, 1);
lcd.write(1);
delay (200);
lcd.setCursor(15, 1);
lcd.write(1);
delay (200);

delay(pushDelay); // wait for the set amount of time, minus time to push button
lcd.clear();
lcd.setCursor(0, 0);
lcd.print(“SUKSESS”);
delay (100);
lcd.setCursor(13, 0);
lcd.write(1);

delay (100);
lcd.setCursor(14, 0);
lcd.write(1);
delay (200);
lcd.setCursor(15, 0);
lcd.write(1);

delay (200);
lcd.setCursor(0, 1);
lcd.print(“MENGULANG”);
delay (100);
lcd.setCursor(13, 1);
lcd.write(1);
delay (100);
lcd.setCursor(14, 1);
lcd.write(1);
delay (200);
lcd.setCursor(15, 1);
lcd.write(1);
delay (200);
}
}

==============================

Nah Intervalometer ini bisa dipakai di kamera apa aja tinggal gimana kita ngakalinnya.

Petunjuk penggunaan :

  1. Colok kabel USB input power dengan kabel USB Power Bank (5v1A)
  2. Tunggu sampai loading screen selesai
  3. Kalibrasi dulu motor servonya pakai tombol left sama right
  4. ikat servo pakai karet ke kamera
  5. jika gerakan motor start up mengganggu modifikasi menggunakan penambah panjang. Saya pakai penggaris yg saya bor trus saya gunting
  6. Untuk mengatasi lecet pada shutter tambahkan spons trus tempel pakai double tape

Nah ada 6 tombol yg saya setting di codingan yang fungsinya antara lain :

LEFT : Menggeser motor servo ke kiri (berlawanan arah jarum jam) dan simpan posisi secara otomatis
RIGHT : Menggeser motor servo ke kanan (searah dengan jarum jam) dan simpan posisi secara otomatis
UP : Menambah durasi waktu jeda pengambilan foto per 10 detik
DOWN : Mengurangi durasi waktu jeda pengambilan foto per 10 detik
SELECT : Mengaktifkan Intervalometer
RST : Mereset ke menu utama

Video demo-nya bisa dilihat disini :

DIY Intervalometer for Time Lapse Photography

Cara aplikasi-nya bisa dilihat disini :

Take a Pic with Servo Motor

https://instagram.com/p/3vqyVMjMzM/

Selamat berkarya,

Semoga Bermanfaat