[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); //間格時間如果要手動設置,直接改這裡
}
你好…
想請問你知不知道如何透過手機的左聲道.右聲道輸出聲音(這部份的控制我會),
來啟動快門的兩個線路(對焦跟快門),目前查到的資料可以靠續電器跟三極體,
可是手機耳機訊號輸出的電流跟電壓太弱,別說續電器,
連三極體的導通電壓都達不到…我在想arduino雖然可程式控制,
可是畢竟還是得多帶一塊板子,如果定時觸發控制靠手機來處理,
一段時間送出聲音訊號,然後聲音訊號啟動快門,不知道可不可行…
版主回覆:(07/25/2014 12:42:57 PM)
你好~
因為看工作原理,是透過相機自身的壓差做判斷
有兩種方法我有稍微想了一下,如果不透過ARDUINO
1.兩個SWITCH改成光耦合開關,但我不知道現在手機出來是多少電壓到多少,因為光偶和開關驅動的電壓可能會比較低一些
2.透過電壓調整IC,送個外部到相機的壓插做驅動,只是這樣比較危險,要確定相機是工作在多少電壓以及壓差的範圍是怎麼樣…,如果一有閃失就燒相機了
聲音訊號其實在這裡應該只能作為控制的一個管道,還是要有一塊要處理
因為這不像紅外線控制這麼單純@@
http://hackaday.com/2012/05/21/a-dslr-shutter-cable-for-android/
似乎就是這種概念的電路做法
版主回覆:(09/30/2012 07:03:16 AM)
如果照這樣看來,我想耳機出去的電壓應該也有0.2V以上
要不然電晶體根本不能WORK阿~"~
還是謝謝你這麼熱心地找連結讓我知道
等有空我再來實測
請問全按時, 半按那一顆也要短路嗎?
版主回覆:(10/14/2012 04:33:05 PM)
依照我的接線圖判斷,
是不需要的喔~~~!