Androidで一眼レフカメラのシャッターを制御する(MicroBridge接続)
2011年8月6日
Tweet
以前書いた、Androidで一眼レフカメラのシャッターを制御するでは、AndroidとArduinoをSoftModemで接続して、一眼レフカメラのシャッターをコントロールすると言うものでした。
今回はMicroBridgeの勉強も兼ねて、それをMicroBridgeで接続するように変更してみました。
今回もまた、回路図・ソース付きで紹介したいと思います。
デバイスの説明
ADK(Android Open Accessory)と同じく、Arduino + USBホストシールドがメインとなります。
AndroidとArduinoとの通信は、タイトル通り、MicroBridgeによって行っています。
MicroBridgeとは、ADB(Android Debug Bridge)をマイコンからアクセスしようと言うもので、端末の制限がほぼ有りません。
Android AccessoryはAndroid 2.3.4以降・3.1以降が必要でしたが、MicroBridgeはHT03AやIS01等Android 1.6の古い端末でも動作します。
Arduinoとカメラとの通信は、リモート・レリーズ端子を使って行います。
カメラによっては、リモートレリーズの規格が異なる場合があり、そのカメラには使えません。
どのカメラに対応しているかは、はっきりとは分かりませんが、多くのデジタル一眼で採用されているっぽい。
今回の記事では、CANON EOS KISS X3を使っています。
リモート・レリーズ
カメラのリモートレリーズには、2.5mmのステレオプラグを使います。
(僕のEOS Kiss X3では)3.5mmでは無く、さらに小さい2.5mmなのでお間違いなく。
回路図中では、プラグの部品がFritzingに用意されていなかったので、ジャック(差し込み口)を使って代用しています。
カメラのリモートレリーズでは、2.5mmのステレオプラグの根元と真ん中をショート(短絡)させると半押し、根元と先端をショートさせると、全押し状態となります。
今回の回路では、フォトカプラを使い、それぞれの端子をショートさせています。
フォトカプラとは、発光ダイオードとフォトトランジスタを1つにしたICで、Arduinoとカメラを絶縁状態でコントロールできる優れものです。
パーツリスト
| 名前&メーカーリンク | 数量 | 記号 | 備考&販売店リンク |
| Arduino Duemilanove | 1 | スイッチサイエンス(UNO) | |
| Sparkfun USBホストシールド | 1 | スイッチサイエンス | |
| 赤色LED | 1 | LED1 | 動作確認用(秋月) |
| フォトカプラ | 2 | IC1-2 | PC817C(秋月) |
| 抵抗 – 1k | 3 | R1-3 | 秋月 |
| 2.5mm ステレオケーブル | 1 | 共立 / 金メッキが良い感じな延長ケーブル(千石) | |
その他・オススメパーツ
Sparkfun USBホストシールドには連結用のピンヘッダが付属していないので、別途購入の必要があります。
ブレッドボードで作る場合
回路図
今回は、回路図を作成するのにもFritzingを使ってみたので、実態配線図に近い回路図になっています。http://fritzing.org/
実際には、ArduinoにUSBホストシールドを接続してから、各部品の配線を行って下さい。
2.5mm ステレオプラグの部品がFritzingに無かったので、ジャック(差し込み口)で回路を書いています。
ブレッドボードで作る場合(実態配線図)
作成時の注意点
上記の回路図や実態配線図をもとに部品を接続し、ArduinoIDEを使って後述するプログラムをArduinoに書き込めばデバイスは完成です。
USBホストシールドのUSB給電問題
SparkfunのUSBホストシールドは、USBから給電で動作させる場合、電圧不足でAndroid Accessoryのデバイスとして認識されません。 これはMicroBridgeでも同様です。 その原因と対策は、Arduino + USBホストシールド で ADK を試す(その2)のUSBホストシールドの項 を参照してください。
![]() ブレッドボード |
![]() ケーブルは、ユニバーサル基板の切れ端に半田付けして、ブレッドボードに差しやすくしています。 |
Android アプリ

※画像はsoftmodem用の物で、今回の物と若干違う場合が有ります。
マニュアル撮影
シャッターボタンを押している間は、カメラのシャッターを全押ししている状態に、AFボタンを押している間は、カメラのシャッターを半押ししている状態になります。
ボタンを放すと、カメラのシャッターも開放されます。
インターバル撮影モード
インターバル撮影モードをONにすると、スライダーで指定した秒数の間隔で、連続撮影が行えます。
インターバル撮影モード時には、マニュアル撮影は出来ません。
注意点
端末の設定で、USBデバッグをONにしてください。
USBデバッグをONにしていない場合、MicroBridgeで通信ができません。
設定の方法は、
設定 > アプリケーション > 開発 > USBデバッグ
アプリのダウンロード
AndroidMarketにアップしても、需要がそれほど無いと思うので、今回は野良apkで公開しておきます。
ダウンロード用QRコード
動作確認は、 Nexus One, IS01, HT03A で行いました。
XOOMではなぜか動きませんでした・・・(TーT
プログラム(ソース)
↓のzipファイルに、本記事のソース一式をまとめています。
Androidアプリは、MicroBridgeで公開されているプログラムを基に作っています。
Arduinoのプログラムは、なんでも作っちゃう、かも。で公開されているプログラムを基に作っています。
最後に
今回は、MicroBridgeの勉強の為に作ってみました。
実は、僕はAndroid Accessoryに夢中で、MicroBridgeは手つかずだったのですが、今回実際に触れてみて、噂通りと言うか何と言うか・・・Android AccessoryよりもMicroBridgeの方が優れている部分が多く感じました。
とは言うものの、今回ブログを書いて、最後にアプリの動作チェックを行った時に、XOOMでは動かないことに気付きました・・・
原因は良く分からないのですが、そう言えば以前からDDMSもエラーメッセージを吐きまくってるので、adbの仕様自体が違うのかも・・・とか、憶測ながら考えています。
何かご存知の方、助言下さい、お願いします(´・ω・`)
参考リンク)
MicroBridgeについて
MicroBridge – Arduino (本家)
MicroBridge – PIC
シャッター制御の元ネタ
iPhoneで一眼レフカメラのシャッターを制御する – なんでも作っちゃう、かも。
Arduinoで遊ぼう – 一眼レフカメラのシャッターを制御する – なんでも作っちゃう、かも。
Category: Androidと電子工作
TrackBack URL :









はじめまして。icoo D70wというandroid pcを購入しまして、dslr controllerというアプルを購入し、5d mark2と接続させようとしても、android側が認識してくれません。android側にソフトが足りないのでしょうか?お分かりでしたらご指導ください。
コメントありがとうございます。
残念ながら、icoo D70wもdslr controllerも使ったことがありませんので、僕には良くわかりません。
この記事で紹介している、リモートレリーズ制御とはまったく違ったもののようですので・・・
Futaba さん ありがとうございました