Androidで一眼レフカメラのシャッターを制御する(MicroBridge接続)

公開日: 電子工作 | , , ,

以前書いた、Androidで一眼レフカメラのシャッターを制御するでは、AndroidとArduinoをSoftModemで接続して、一眼レフカメラのシャッターをコントロールすると言うものでした。
今回はMicroBridgeの勉強も兼ねて、それをMicroBridgeで接続するように変更してみました。
今回もまた、回路図・ソース付きで紹介したいと思います。

MicroBridge ShutterCtrl

 

デバイスの説明

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のステレオプラグの根元と真ん中をショート(短絡)させると半押し、根元と先端をショートさせると、全押し状態となります。

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ホストシールドには連結用のピンヘッダが付属していないので、別途購入の必要があります。

ブレッドボードで作る場合

 

回路図

MicroBridge ShutterControl 回路図

今回は、回路図を作成するのにもFritzingを使ってみたので、実態配線図に近い回路図になっています。http://fritzing.org/

実際には、ArduinoにUSBホストシールドを接続してから、各部品の配線を行って下さい。
2.5mm ステレオプラグの部品がFritzingに無かったので、ジャック(差し込み口)で回路を書いています。

ブレッドボードで作る場合(実態配線図)

MicroBridge ShutterControl 実態配線図

 

作成時の注意点

上記の回路図や実態配線図をもとに部品を接続し、ArduinoIDEを使って後述するプログラムをArduinoに書き込めばデバイスは完成です。

USBホストシールドのUSB給電問題

SparkfunのUSBホストシールドは、USBから給電で動作させる場合、電圧不足でAndroid Accessoryのデバイスとして認識されません。 これはMicroBridgeでも同様です。 その原因と対策は、Arduino + USBホストシールド で ADK を試す(その2)のUSBホストシールドの項 を参照してください。 

MicroBridge ShutterCtrl3
ブレッドボード
MicroBridge ShutterCtrl4
ケーブルは、ユニバーサル基板の切れ端に半田付けして、ブレッドボードに差しやすくしています。

 

Android アプリ

Shutter Ctrl
※画像はsoftmodem用の物で、今回の物と若干違う場合が有ります。

マニュアル撮影

シャッターボタンを押している間は、カメラのシャッターを全押ししている状態に、AFボタンを押している間は、カメラのシャッターを半押ししている状態になります。
ボタンを放すと、カメラのシャッターも開放されます。

インターバル撮影モード

インターバル撮影モードをONにすると、スライダーで指定した秒数の間隔で、連続撮影が行えます。
インターバル撮影モード時には、マニュアル撮影は出来ません。

注意点

端末の設定で、USBデバッグをONにしてください。
USBデバッグをONにしていない場合、MicroBridgeで通信ができません。

設定の方法は、
設定 > アプリケーション > 開発 > USBデバッグ

設定 > アプリケーション アプリケーション > 開発 開発 > USBデバッグ

 

アプリのダウンロード

AndroidMarketにアップしても、需要がそれほど無いと思うので、今回は野良apkで公開しておきます。

mb_shutter_ctrl.apk

ダウンロード用QRコード 

動作確認は、 Nexus One,  IS01, HT03A で行いました。
XOOMではなぜか動きませんでした・・・(TーT

 

プログラム(ソース)

↓のzipファイルに、本記事のソース一式をまとめています。

MB_ShutterCtrl20110806.zip

Androidアプリは、MicroBridgeで公開されているプログラムを基に作っています。
Arduinoのプログラムは、なんでも作っちゃう、かも。で公開されているプログラムを基に作っています。

 

最後に

今回は、MicroBridgeの勉強の為に作ってみました。
実は、僕はAndroid Accessoryに夢中で、MicroBridgeは手つかずだったのですが、今回実際に触れてみて、噂通りと言うか何と言うか・・・Android AccessoryよりもMicroBridgeの方が優れている部分が多く感じました。

とは言うものの、今回ブログを書いて、最後にアプリの動作チェックを行った時に、XOOMでは動かないことに気付きました・・・
原因は良く分からないのですが、そう言えば以前からDDMSもエラーメッセージを吐きまくってるので、adbの仕様自体が違うのかも・・・とか、憶測ながら考えています。
何かご存知の方、助言下さい、お願いします(´・ω・`)

参考リンク)

MicroBridgeについて
MicroBridge – Arduino (本家)
MicroBridge – PIC

シャッター制御の元ネタ
iPhoneで一眼レフカメラのシャッターを制御する – なんでも作っちゃう、かも。
Arduinoで遊ぼう – 一眼レフカメラのシャッターを制御する – なんでも作っちゃう、かも。

 

関連記事

Hello Tiny10

米粒AVRでI2C通信を使ってLCD表示

前の記事で紹介したI2Cライブラリを使った、LCDの表示のライブラリ的なもの  

記事を読む

SDFormatter

Raspbianの起動SDカードを再利用

一度、Raspbianのイメージを書き込んだSDカードは、フォーマットが違う為にWindowsでは利

記事を読む

no image

Android+Arduinoでリモコン3 その2(AndroidAccessory接続)

何度か、Android+リモコンのネタを書いたことがあるのですが、今回はAndroid Access

記事を読む

SDカード・マイクロSDカード

ArduinoでSDカード

電子工作で大量のデータを保存する方法を調べていると、 Arduinoでも比較的簡単にSDカードを

記事を読む

no image

AndroidでSoftModemを試してみた

今回、ここで言うSoftModemとは、携帯電話のオーディオ端子(イヤホン・マイク端子)を利用し

記事を読む

no image

Bimeji Client for Arduino

前回紹介したWimeji Client for Arduinoの最後で予告していた、Wimeji c

記事を読む

no image

Android+Arduinoでリモコン3のおまけ

Androidとは関係ないのですが、前回の記事  Android+Arduinoでリモコ

記事を読む

no image

ボツネタ~CAN的な何か

少し前に必死になって作ってたデバイス+アプリですが、気持ちが萎えてしまい、結果ボツと

記事を読む

no image

Android + Bluetoothドングル + PIC24F

@hrdakinori さんと言う方が、PIC24FとBluetoothドングルを使って、Andro

記事を読む

no image

米粒AVRでアナログ入力を試してみた

米粒AVR(ATtiny10)に搭載されている8ビット4チャンネルのアナログ入力を試してみました

記事を読む

Comment (3件)

  1. 5d mark2

    はじめまして。icoo D70wというandroid pcを購入しまして、dslr controllerというアプルを購入し、5d mark2と接続させようとしても、android側が認識してくれません。android側にソフトが足りないのでしょうか?お分かりでしたらご指導ください。

    1. Futaba

      コメントありがとうございます。
      残念ながら、icoo D70wもdslr controllerも使ったことがありませんので、僕には良くわかりません。
      この記事で紹介している、リモートレリーズ制御とはまったく違ったもののようですので・・・

Arduinoで温湿度データロガー
Arduinoで温湿度計 #2

今回は、前回作った温湿度計にRTCモジュールとSDカードアダプタを

Arduinoで温湿度計
Arduinoで温湿度計

秋月電子の温湿度モジュールを使って、温湿度計を作ってみました。 以前

SDカード・マイクロSDカード
ArduinoでSDカード

電子工作で大量のデータを保存する方法を調べていると、 Arduin

秋月電子 リアルタイムクロック(RTC)モジュール
秋月のリアルタイムクロック(RTC)モジュール

今回は秋月電子のI2C接続のリアルタイムクロック(RTC)モジュールを

秋月電子 キャラクタLCD
秋月の小型キャラクタLCD

今回秋月電子で売られている小型のキャラクター液晶2種を買ったので、

PAGE TOP ↑