[Arduino]_自製電子快門線 For Panasonic GX1

從好久以前就想玩縮時攝影了

但礙於只有小DC一台,沒辦法外接快門線

所以縮時攝影只能是個伸手不及的領域

 

不過最近入手了一台GX1,高階微單眼

終於可以來實現一下這個念頭

 

可是可以定時的電子快門線實在貴到炸掉,也不是很常在拍縮時

 

想到之前有人用ARDUINO來做NIKON單眼的無線快門線

GOOGLE研究了一下Panasonic的快門線構造,很簡單…三顆電阻加上兩段式開關,跟接頭還有電線就結束了

來源:http://www.instructables.com/id/Panasonic-G1-GH1-Remote-Shutter-Release/

 

不過我找的是G1跟GH1的圖,為求保險,還是把手邊的副廠快門線拆開確定…

很好拆,只有兩根螺絲卸下來就好,用電表量阻值,確定跟我找到的圖一樣後,上周買材料,一直拖到今天晚上才開工

 

先來看一下成品的影片(當然之後還要把它包裝好才上相@@):

 

 

我做的材料主要用到的有:

36K、3K、2K、1K、330歐姆的電阻各一

以及一個5V的Relay

5K VR(這是拿來控制間格時間的,越小越好越精確,這裡因為沒有材料只好拿5K)

一個彈跳按鈕(用來觸發開始拍攝的)

一個LED(用來表示有沒有按下觸發按鈕用)

一個2.5MM的耳機插頭,要四環三極

 

Relay換成SSR會比較安靜…不過機械式還可以確定作動有沒有OK就是,在Prototype的情況下是比較好抓bug

 

既然要用ARDUINO控制,就不只接成上面那樣的圖,而需要搭配Relay作動

我捨棄了Half Press(半壓),只裝了個Relay在Full Press(全壓)

 

因為通常要拍縮時,拍攝參數跟對焦位置都是固定的,不需要有半壓的功能

以下是電路圖(軟體很好用…http://fritzing.org 但畫起來要漂亮還是很殺時間= =+)

 

所謂第三圈是2.5MM接頭從最尖端往線材的方向數過來

程式方面,目前由讀入VR的ANALOG值來做處理,演算法沒有優化的很好,所以設定的時間間隔沒辦法到很廣

要久的話倍率要乘上很高,但相對的在短時間的控制處理就會被跟著倍率化,比較好的寫法是多用CASE語法去判斷哪個程度要用哪個演算法處理間隔時間

 

以及我沒有寫中斷副程式進去,所以如果再跑shoot()裡面的間格時間delay,會卡死要等時間到,未來有需要在加上

現階段如果要用的話就直接拔掉快門線就好了(炸

 

基本功能有出來就好,要在電腦上key固定的間格時間讓他下去跑也是ok,程式架構我寫的應該不糟(吧?),要改自己就拿走吧~

 

 

程式:

int VRPin = 0; //Port0設定為可變電阻進入腳
int VRval = 0; //讀取可變電阻之暫存值

unsigned long TrigTime = 1000; //預設一開始觸發時間為1秒
int TrigPin = 12; //觸發腳為13號

int TrigSwitchPin = 8; //啟動定時快門的開關腳位
int TrigLEDPin = 7; //判斷定時快門按下的燈
int TrigFlag = 0; //判斷定時快門是否按下的判斷旗標

void setup() {
Serial.begin(9600);
pinMode(VRPin, INPUT);

pinMode(TrigSwitchPin, INPUT);
pinMode(TrigLEDPin, OUTPUT);
pinMode(TrigPin, OUTPUT);
}

void loop() {
VRval = analogRead(VRPin);
TrigTime = (VRval*100); //這裡改間格時間,可以自己帶運算子進去處理

Serial.print(“\r\n”);
Serial.print(TrigTime);

if (digitalRead(TrigSwitchPin) == LOW)
{
TrigFlag = TrigFlag + 1;
digitalWrite(TrigLEDPin,HIGH);
delay(2000);
digitalWrite(TrigLEDPin,LOW);
}

if (TrigFlag % 2 != 0 )
{
shoot();
}
Serial.print(“\r\n”);
Serial.print(TrigFlag);
}

void shoot() {
digitalWrite(TrigPin, HIGH);
delay(300);
digitalWrite(TrigPin, LOW);
delay(TrigTime); //間格時間如果要手動設置,直接改這裡
}

3 Comments

  1. 你好…
    想請問你知不知道如何透過手機的左聲道.右聲道輸出聲音(這部份的控制我會),
    來啟動快門的兩個線路(對焦跟快門),目前查到的資料可以靠續電器跟三極體,
    可是手機耳機訊號輸出的電流跟電壓太弱,別說續電器,
    連三極體的導通電壓都達不到…我在想arduino雖然可程式控制,
    可是畢竟還是得多帶一塊板子,如果定時觸發控制靠手機來處理,
    一段時間送出聲音訊號,然後聲音訊號啟動快門,不知道可不可行…
    版主回覆:(07/25/2014 12:42:57 PM)
    你好~
    因為看工作原理,是透過相機自身的壓差做判斷
    有兩種方法我有稍微想了一下,如果不透過ARDUINO
    1.兩個SWITCH改成光耦合開關,但我不知道現在手機出來是多少電壓到多少,因為光偶和開關驅動的電壓可能會比較低一些
    2.透過電壓調整IC,送個外部到相機的壓插做驅動,只是這樣比較危險,要確定相機是工作在多少電壓以及壓差的範圍是怎麼樣…,如果一有閃失就燒相機了
    聲音訊號其實在這裡應該只能作為控制的一個管道,還是要有一塊要處理
    因為這不像紅外線控制這麼單純@@

  2. http://hackaday.com/2012/05/21/a-dslr-shutter-cable-for-android/
    似乎就是這種概念的電路做法
    版主回覆:(09/30/2012 07:03:16 AM)
    如果照這樣看來,我想耳機出去的電壓應該也有0.2V以上
    要不然電晶體根本不能WORK阿~"~
    還是謝謝你這麼熱心地找連結讓我知道
    等有空我再來實測

  3. 請問全按時, 半按那一顆也要短路嗎?
    版主回覆:(10/14/2012 04:33:05 PM)
    依照我的接線圖判斷,
    是不需要的喔~~~!

Leave a comment

這個網站採用 Akismet 服務減少垃圾留言。進一步瞭解 Akismet 如何處理網站訪客的留言資料