OLYMPUS AIR A01 モーター回して深度合成撮影

ちょっと前に、Olympus Captureを使った深度合成用の撮影方法を載せたが、今回はAIR A01でもってフォーカススタッキングをやってみることにした。ただ、ピント面の移動を行うAPIは今のところ存在しない(あるいは公開されていない)ので、レンズのピントリングをステッピングモーターで回すことにした。
CAMERA KIT SDKの一部であるImageCaptureSampleを改造した、Capture1 というアプリにモーターを回して撮影する機能を追加して実現した。

ちょっと長めのブラケット板に、ステッピングモーターとMZD60mmマクロを着けたAIR A01を固定し、モーターの軸に着けたプーリーからプーリーベルトを介してレンズを回す。レンズにはゴム製のフォーカスギヤと呼ばれる器具をつけてプーリーベルトを掛けやすくした。
動作としては、スマホのアプリ(Capture1)からの指示により、撮影、モーター回転、撮影、…を繰り返す。モーターの回転角度や速度はスマホのアプリから指示している。
ピント面をずらす量はモーターの回転角(ピントリングを回した角度)で決まるはずなのだが、MZD60mmの場合角速度によってもずれ方が変わるようで、角度や速度を試行錯誤する必要があった。

モーター上雑然としているが、上から見るとこんな感じ。AndroidアプリからUSB経由でコマンドをもらい、都合よくステッピングモーターを回すための基板を使っている。
フォーカスギヤの平たい面は滑りやすいため、テープだの輪ゴムだのを巻いて摩擦を稼いでいる。そのため、回転時にカックンとなるところがある。

スマホ画面から見た撮影の様子。ファイルが少々大きくなってしまったのでYoutubeに置いた。55枚撮影するのに210秒ほどかかったので、途中から早回しにしている。

撮影結果

今回はISO400, f/2.8,1/60秒で撮影した。口の先から尾の先まで55枚写したものの最初と最後。

金魚 口f/2.8で近く(センサー面から28cmくらい)を写すと、背景はそれなりにボケてくれる。

金魚 尾55枚目。だいたい尾の先にピント。
今回試していて気になったのはスマホ画面では、やはりピントが見にくいことだった。このアプリには、しばらく前にライブビューの拡大表示機能も付けたので、ピントリングの回転に応じて拡大表示位置をずらしていくような、気の利いた機能もあってよいだろう。

金魚 合成55枚の撮影結果を、CombineZPでもって深度合成した結果。金魚の頭の上あたりに元の画像になかった円弧状の模様いうかノイズがでているのが気になるが、もうちょっと均一な背景ならば結果も違ってくるだろう。

基板上の緑色のが、Arduino ADKというマイコンボードで、下側が、工作用のブレッドボードに載せたステッピングモーターの駆動用基板である。
実のところ、今年の8月の初めまでArduinoというマイコンボードがこの世に存在し、なおかつ数年前にずいぶん流行っていたことを知らなかったのだが、しょうしょう調べて使ってみると、こういう用途が実に手軽に実現できた。AIR A01の楽しみ方が広がる感じ。