レリーズ制御システムを組んでみた | Nature | Photography | Music | Art

Nature | Photography | Music | Art

日々好奇心の趣くまま

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

事の発端は昨年購入したGH5。


外部のシステムからカメラをコントロールしたいので時間を見つけてはカメラの制御プロトコルを解析しているのだが、どうもうまく行かない。以下、自身のメモ書きを兼ねて。

現状GH5を外部からコントロールできる経路は3種類

1. レリーズ端子
2. Wifi
3. USB

1は最も単純だがシャッター半押しと前押しの2つの操作しかできない。

2はカメラ側がAP、スマホ側がSTAとして接続確立後、専用アプリ"Panasonic Image App"というアプリを使用して各種コントロールでき、その通信プロトコルはパケットを抜き出してみると以下のような感じ。


HTTPプロトコルを使用しているようでWifi接続さえできれば基本的な制御ならできそうなのだが、どういうことかスマホ以外・例えばPCからWifi接続を試みると強制切断されてしまう。
それではと思いLinuxマシンやRaspberryPiからも接続を試みるがこれも同様に切断される。
Wifiの下位のプロトコルは余り詳しくないのだが、どうやらスマホ以外から接続されると強制切断する仕様になっているみたい。
スマホ用のアプリを自作すればよいのだろうが、現状そのスキルを持ち合わせていないのでとりあえずWifiコントロールは保留。

3の機能はファームウェアver2.0から使えるようになったが、まだ時間がなくてあまり解析できていない。
"LUMIX Tether"というアプリから制御できるのだが、カメラ制御によく使われるPTPプロトコルの拡張とかの単純なものではなさそう。更にUSB3.0必須でそれなりのマシンパワーが必要そう。
ということでUSBコントロールも現状保留中。

当面の策として(最小限のことしか出来ないが)1を使って外部からコントロールできるようにしてみた。

各社カメラのレリーズ端子の仕様はここに詳しく書かれている。この記事は永久保存版だと思う。
 

レリーズ端子の仕様に関してはとりわけIEEEで規定されているわけでもないので各社各様だが、いずれにしても端子を短絡させるだけなので回路的には簡単に制御できるし、端子の物理的形状以外の部分は共通化できる。

今回製作したのはArduinoUNOの上に載せて使うこういうもの。
 

 

部品はほんの数個しか載っていない。主要部分の回路図はこんな感じで至極単純。
 

 

写真の白い部品はフォトカプラとか光アイソレータと呼ばれるもの。これを挟むことによって、制御する側(Arduiono)とされる側(Camera)の電源系を分離したままON/OFFすることができて、仮にAuduino側で変な配線や操作をした場合でもカメラ側に損傷を与えることが(ほぼ)なくなる。

 

CAMERAx_RELEASEとCAMERAx_GNDをカメラ側の半押しもしくは前押しの短絡させる端子に接続。
ArduinoからはARDUINO_Dx端子に0.1秒かそれ以上のパルスを与えることによってカメラ側の端子が短絡して半押しや前押し状態にすることができる。

さしあたって2端子を独立制御できるので、Arduino側のプログラム次第で2台同時シャッターなどいろいろな制御が可能。 

GH5と5D3を繋げた図。

 


 

更に端子を増やせばマルチカメラで面白いこともできそう。
端子ケーブルは自作のものと以下のようなモノが各社カメラ向けに密林で売られていたのでそれを使用。(現在は入手不可の模様)
 

JJC リモートコントローラー用 ケーブル (JJC Cable A for キヤノン C1)


ただし現在でもebayやAliexpressなら同じ製品が売られている。