2011年1月16日

用arduino製作相機自動控制器-photoduino

最近對電子零件有種狂熱,特別是在認真開始玩arduino之後。

前一陣子在查如何用arduino去控制相機時,查到了一個project,叫作Photoduino
http://code.google.com/p/photoduino/
用arduino來做進階應用的project通常都是叫什麼什麼duino的。


這個Photoduino,用它網站的圖來解釋,就是外接各種感應器,然後透過arduino來控制相機和快門。除了感應的功能以外,也可以設定成每隔一段時間就進行拍照。


來源:http://code.google.com/p/photoduino/


arduino從軟體到硬體,都是開放原始碼,因此基於arduino開發的photoduino也是開放原始碼。如果要自己洗電路板的話,可以在它的網站上免費下載,或者也可以越洋買電路板。

因為懶得洗電路板,所以我決定花些錢買它的電路板來玩玩。一塊版子是10塊歐元,加上國際運費是4塊歐元。因為我想反正沒差那些錢,所以乾脆買了兩塊版子,為了這個,甚至我還申請paypal呢。所有錢加起來,兩塊板子+運費是NT984。


不過有了電路板,其實還沒結束,還得自己去電子材料行採買各種電子零件。因為很多零件是我之前沒用過的,所以光是找材料就找了兩個小時,絕大部分在新竹都買得到,惟獨那顆電晶體BT149D買不到,後來我就改用別的料號來代替。

全部做起來之後的樣子長這樣,中間是那個電路板就是photoduino的電路板,底下插了arduino,外頭的盒子用的是保鮮盒,。




後來做第2個的時候,外面的盒子改用萬用盒來裝。


兩個裝起來之後就長這樣



上面的接頭都是用來外接感應器,每個接頭分接不同的感應器,所以還要貼上標籤識別



以第二代來說,整套就是這樣,一台主機,還有四套感應器,再加上自己做的相機連接線。那個相機連接線,是上網買單眼相機的便宜快門線,剪掉來改裝的。所以只要相機有快門線,就能用這台來控制相機。








接下來就是試試看,這個photoduino有什麼了不起的地方啦。先來拍個水滴的高速攝影。
網路上許多人拍水滴的高速攝影,都是碰運氣滴了水,抓時間按快門。有了photoduino,按快門的事情就交給它吧,我們只要負責滴水就好了。


這裡我用的是紅外線感應,一個是IR的發射,另外一個是IR的接收,中間如果有物體穿過(例如水滴),它就可以觸發相機按下快門。
滴水的地方是我的漱口杯。


來看看拍照的結果吧,超美的啦!而且成功率非常高呦。(我的漱口杯效果怎麼那麼好啊)








接著來試試看定時拍照,也就是縮時攝影。之前我最常用的是webcam來拍照,現在改用單眼相機拍拍看,每隔30秒拍一張。


再把拍出來的結果用mencodec,做成影片。
這裡有點麻煩,用單眼拍的畫質都不錯,可是做成影片就虛掉了,可能要換其他的編碼器試試看。

--

拍日景還不夠,接下來拍拍夜景

--

快門用1.4秒,光圈忘了,每隔2秒拍一張。

--

最後來報告一下價錢吧。
photoduino的電路板約500元
電子零件約1000元
arduino控制板約1000元。

所以單就成本來說,一個photoduino控制器大約是2500元(至3000元)

這個photoduino還可以用來拍:
氣球爆炸(聲音感應,觸發閃光燈)
閃電(光線感應,觸發相機)
玻璃破碎(聲音感應,觸發閃光燈)
野生動物穿越(雷射感應或紅外線感應,觸發相機)
物體掉落(振動感應,觸發相機或閃光燈)

為什麼有些要觸發閃光燈,有些是觸發相機呢?因為相機其實也有反應時間啊,以我的Nikon D80來說,觸發相機快門到拍攝照片,其間會經過80ms,這段時間說長不長,說短不短。拍水滴掉落,因為可以用感應器的位置來對付相機反應時間,反應時間長,就把感應器拿高一點,反應時間短,就把感應器拿低點,可是在拍攝快速的爆破時,這樣的反應時間就會太長,所以最好改用觸發閃光燈。不過我現在有點小問題,不知道為什麼,我的外接閃光燈沒辦法被觸發,不知道問題出在哪啊。