ArduinoでEOS制御 | Nature | Photography | Music | Art

Nature | Photography | Music | Art

日々好奇心の趣くまま

サイト内の写真の使用ならびに無断転用を禁じます。

以前から時間を見つけてやってみたかった、EOSをUSB経由でコントロールする技術の試行錯誤に少しずつ着手しています。
USBからEOSを制御することのモチベーションはざっと考えただけでも下記くらい思いつきます。(実現難易度は大小さまざま)

・4枚以上の自動ブラケット撮影。
・フォーカス・スタッキング用自動撮影。
・動画撮影中のフォローフォーカス。
・ドリーTimelapse撮影時のSMS(Shoot Move Shoot)
・リモート撮影&制御。
・変則的なTimelapse撮影。例えば露光時間や撮影モードを切り替えながら夕暮れから星景にシームレスに移行するとか。
・etc...

EOSをUSBからコントロールするライブラリは幾つもありますが、代表的なものは以下のとおりです。

1. EDSDK

Canon純正のライブラリ。なぜか日本国内は簡単にはダウンロード&使用させてくれないようです。EOS Utilityなどもこれをベースに作られています。

2. gPhoto2

オープンソースのカメラコントロールライブラリでCanon,Nikonをはじめ多くの機種をサポート。機能も豊富。ただしWindowsはサポートされていない。(Windows非公式版はあるようですが)

3. Arduino PTPライブラリ

これはかなりすごい。Arduino+USB Host Shieldからカメラをコントロールできるというオープンソースライブラリ。

以上を踏まえて個人的な使用環境を考えると、登山などで重くて電力消費の多いPCを持ち歩きたくないことが多いので、まずは手始めに、軽量で電力を食わないArduino環境で動作する、3のPTPライブラリから弄ってみました。
これを動作させるには以下の環境が必要です。

・Arduino UNO R3 (たぶん他のArduino互換機でも動作するはず。)

Arduino Uno Rev3

Arduino本体です。

Arduino用 USB Host Shield

これを刺すことでArduinoをUSB Hostにできる。このサイトに説明があるように少々(自己責任で)改造が必要。

あとUSBケーブル、USB給電バッテリー類などが必要です。

Arduino本体と組み合わせるとこんな感じ。左から給電、右からEOS制御という感じです。

Todos os Tons

このサイズと軽さでEOSをコントロールできるのは魅力です。

ライブラリにサンプルが付属してくるので理解するのはさほど難しくはありません。
手始めに、上の中から難易度の最も低いフォーカス・スタッキングをやってみました。
「フォーカス・スタッキング」が何かというと、フォーカス位置の異なる複数枚の同じ構図の写真をフォーカスの合っているところだけを切り出して合成する手法です。これによって極端なパンフォーカスな画像が得られます。
以下のPhotoshopの解説ビデオを見れば分かりやすいです。実際合成するのはPhotoshopでほぼ全自動で行えます。

http://adobe.ly/MyoIB4

ただ、フォーカス位置をずらした写真を手動で何枚も撮るのは手間なので、これをArduinoで自動化してみました。

最も近い位置にフォーカス->撮影->フォーカス位置を一定量後方へ->撮影...

を自動的に繰り返すわけです。
5D2を動作させた様子は以下の動画のような感じです。使用しているのはArduino+USB Host Shield+バッテリ+USB接続ケーブルだけなので非常に軽くてコンパクトです。



この環境を持って近くのヒマワリ畑で実地撮影をして見ました。
こんな感じでフォーカス位置の異なる写真を40枚程度撮影。

Todos os Tons

Todos os Tons

Todos os Tons

持ち帰ってPhotoshopでスタッキング処理をするとこんな感じのパンフォーカスな絵になりました。

Todos os Tons

風があってヒマワリが揺れたので、前景が変なことになってますが、画面全部にうまくフォーカスが当たっているのが分かるかと思います。

第一弾が成功したので、これを皮切りに動作のバリエーションを増やしていこうと考えてます。

ちなみにフォーカススタッキングに関しては専用ソフトがあるようなので、これを使えばもっと綺麗にできるかもしれません。