2020年5月2日 星期六

以ARDUINO操控無反相機對焦與拍攝動作


近代的無反相機都具備了藍芽、WIFI等無線模組,讓使用者以手機操控各式功能,但若是早期機型,就得退回到"原始"的信號線控制方式,而且既然是線控,就有機會搭配開發板,以程式控制相機,下面是最近以Arduino操控GF1對焦與拍攝的操作筆記。

控制GF1的信號線為直徑2.5mm的TRRS線,印象中此種線材都是用在耳機,而且目前市面上,大多是3.5mm或是6.3mm,很難買到2.5mm。就算好不容易買到,又會發現買錯了。原來2.5mm線還區分成TRRS和TRS兩種產品,TRRS會有三個圈,TRS是兩個,多出來的圈,據說是用於"平衡",但就更難買到,價格也要800至1000等級。最後是購買相機快門線之類產品,僅僅100元就解決線材問題(連結)。

TRRS內部有四條線,僅需要使用前兩條,也就是TR,改造時,就在兩條線間,依照下面方式插入三個電阻和三條導線。

紅線
2k歐姆
   ←-- line A
32.7k歐姆 (33k替代)
   ←- line B
3.2k歐姆 (3.3k替代)
   ←--line C
白線

測試方式為,
一、將2.5mm信號線插入相機後,打開相機電源。
二、若完全不接觸,相機應該是待機狀態(此時電阻則是37.9k)。
三、將line A和line B接觸(此時總電阻約5.2k),發現相機開始執行自動對焦。
四、將line A和line C接觸(此時總電阻約2k),就會發現相機開始自動拍攝。或許還有更多複雜功能,但目前為止已經可滿足全需求。參考資料(連結)。

自動化的概念是以兩個繼電器,分別控制A B(對焦)和A C(拍攝)的連結和斷開。對ARDUINO使用者來說,繼電器多半是為了解決控制板電流小,無法控制大功率物件,較少類似這種單純控制線路連通。

這次使用的繼電器,不是以往的機械式,改採體機小,操縱容易的光耦合式。光耦合的價格便宜,也沒有使用次數限制,同時也能承受非常大電壓( 30V以上 ),實用性非常高,例如手邊LETEX 219-1  LT219-1,SPEC(連結)。購自露天(連結)。甚至還可以利用牠開關快速的特性模擬PWM。


如圖,圓圈端連結到ARDUINO的5V電源,另一邊搭配2.2k電阻,接入PINMODE,當程式中設定HIGH(5V)時,另一端是接通狀態,設定LOW時,另一端改為斷電,程式如下。

//start
const int focus = 7;
const int shoot = 8;

void setup() {
pinMode(focus, OUTPUT);
pinMode(shoot, OUTPUT);
digitalWrite(focus, LOW);
digitalWrite(shoot, LOW);
}

void loop() {
digitalWrite(focus, LOW);
delay(2000);
digitalWrite(focus, HIGH);
delay(2000);
digitalWrite(shoot, LOW);
delay(2000);
digitalWrite(shoot, HIGH);
delay(10000);
}
//end

只要套用此機制,就能以ARDUINO控制相機拍攝,各種應用如縮時攝影,或溫度變化時攝影,無線網路遙控攝影等,就依使用情境來決定。目前需要的狀況正好類似以往單眼相機,有兩個狀態,先進行對焦(半按),之後拍攝(全按),作法上自然就延用以往控制棒,用三個鐵片,進行兩段開關。雖然接觸過許多人機介面,但不得不說這真是最棒的設計。

ARDUINO與按鈕搭配可參考(連結1  這裡提到增加電阻的概念   連結2 這裡提到些debounce概念),目前狀況是可以半按和拍攝分別有不同燈光和相機動作。

沒有留言:

張貼留言