« SP赤道儀用一軸制御コントローラ8号機(3)~PEC機能の検証~ | メイン | 三カ月間の成果・・・・・・ »

2016年3月28日 (月)

digiCamControlの外部トリガー用リレーボックスの製作

PDH2でのディザリングを調べていたら、以前書いたニコンカメラをコントロールできるフリーソフトのdigiCamControlとの組合せで自動ディザリングができることがわかりましたが、私の天体写真撮影の主力機のNikon D5000がdigiCamControlでのバルブ撮影に対応していない(USB経由でのバルブ撮影コマンドがない)ので、利用はできないものと思っていました。

しかし、さらに調べてみると、digiCamControlには外部トリガーを使用するための仕掛けが用意されており、USB経由で可能となることがわかりました。
その接続方法は、下図のとおりです。

Photoこれ用の外部トリガー用リレーボックスに相当するものとして、digiCamControlのホームページにも対応製品の紹介がありますが、簡単そうなので自作してみました。

digiCamControlの設定は、「setting」の「Devices」を選択し、「add」をクリックして、下の画面で新しいデバイスを登録します。

Digicamcontrol_deviceConfiguration na・・・適当な名前を入力
Driver・・・・・・・・・・・・・・USB Relay Releaseを選択
Com port・・・・・・・・・・・有効なポートを選択
Init sequence・・・・・・・適当な数値を16進数で入力①
Shutter On・・・・・・・・・・適当な数値を16進数で入力②
Shutter Off・・・・・・・・・・適当な数値を16進数で入力③
でOkをクリックすれば、デバイスの登録は終了です。

天体写真モードで「EXTERNAL SHUTTER RELEASE」でUse configuを設定したデバイスを選択し、Enableにチェックを入れれば、動作するようになります(下の画面)。

Digicamcontrol_device2実際のシャッター動作では、シャッターオン時に上記で入力した①②のデータが送信され、シャッターオフ時には③のデータが送信されます。

これをArduinoのシリアル通信で受けて、シャッターを開閉するリレーを動作するようにすればよいことになります。

これを最近使い慣れているArduino nanoで動作させるようにしてみました。シリアル通信ができればなんでも良かったのですが・・・。

スケッチ(プログラム)は非常にシンプルで、LEDチカチカに毛の生えた程度です。

--------------------------------------------------------------------------------------------
// リレー接続ピン
#define RELAY_1             4
// モニターLED接続ピン
#define RED_1                2
#define INIT_CODE1   0x51
#define INIT_CODE2   0x00
#define SHUTTER_ON  0x41
#define SHUTTER_OFF 0x40

void setup() {  
     Serial.begin(9600);  
// USB接続では、この待ちルーチンが必要
     while(!Serial);
     pinMode(RELAY_1,OUTPUT);
     pinMode(RED_1,OUTPUT);
}

void loop() {
  unsigned char val[4];
  int              i,n;
  n = 0;
  while(1){
       while ( Serial.available() > 0 ) {
          val[i] = Serial.read();
          n += 1;
       }
       if ( n != 0 ) {
          // シャッター開動作
          if ( (val[0] == INIT_CODE1) && (val[1] == INIT_CODE2) && (val[2] == SHUTTER_ON) ){
                 digitalWrite(RELAY_1,HIGH);
                 digitalWrite(LED_1,HIGH);
          }
          // シャッター閉動作
          else  if ( val[0] == SHUTTER_OFF ){
                 digitalWrite(RELAY_1,LOW );
                 digitalWrite(LED_1,LOW);
          }
          n = 0;
      }
  }
}
------------------------------------------------------------------------------------------------

でも、最初setup()の「while(!Serial);」の待ちルーチンが必要だということが分からず、1回目の動作部分の通信データが取れなかったり、データの先頭0x51が取れなかったりと動作が不安定でした。

Arduino IDEのスケッチ例を見てみたら、この注意書きをみつけました。
この待ちルーチンを挿入すると、嘘みたいに安定して全てのデータが受信できました(当然なんでしょうが)。

このリレーボックスの出来上がりの写真です(用意したボックスに納まらず裸のままです)。

20160328_3297Arduino nanoを使うまでもなかったのですが、これだけでUSB経由のシリアル通信が出来ること、互換品ですので750円と安いことから、まあーいいかです。

これで、天体写真メイン機のD5000でもdigiCamControlでの撮影が可能になり、PHD2と連携してディザリング撮影もできることになります。

でも、実際の撮影で有効かどうかは試してみるまでわかりません。

それと、この撮影方法では、USBが3ポート(PHD2,digiCamControl,リレーボックス)必要になりますが、私のレッツノートは2ポートしかありませし、せっかくコントローラの7号機でケーブルの整理をしたはずなのに、またまたケーブルが増えてしまいます・・・・・。

ですから、作ってはみたものの実働するかどうかは未定です。

実は先日コメントいただきましたリュウさんのブログで、OnStepと言う望遠鏡コントロールソフト(Arduinoベースでプログラムはオープンソース)を知り、そのASCOMドライバを使えば、自分のコントローラでも自動導入ができるのではないかと思ったこともあって、Arduinoでのシリアル通信にトライして見たわけです。

最初はうまく送信されてくるデータを拾えませんでしたので、半ばあきらめたけていたのですが、先に書いた待ちルーチンできっちり受信できるようになりましたので、試してみる素地は出来上がりました。

まあ、これについては、おいおいと進めることにして、また別の機会に書きたいと思います。

トラックバック

このページのトラックバックURL:
http://app.blog.bbiq.jp/t/trackback/562191/33781807

digiCamControlの外部トリガー用リレーボックスの製作を参照しているブログ:

コメント

こんにちは。DigiCamControlを検索してい辿り着きました。
私もD7000を使用していてBulb撮影に対応していないので、Bulb撮影ができなくて困っておりました。
リレーのことも探したのですが、見つけれなくてコメント致します。
自作リレーどうでしたか?

ナムさん、こんばんは。

作成したリレーは、このあとケースにも入れて実際に数回使ってちゃんと動作することは確認しています。
ただ、その後D610やD7100へ変更したので、機械そものもはD5000と一緒にバックアップに廻ってしまって現在は使っていません。

良いですねぇ
電気素人でも作れそうですかねぇ?

ナムさん、こんばんは。

Arduinoでリレーを動かす方法を理解していただければ、プログラム自体は簡単ですし、ハンダ付けが必要な部品も少ないですから、勉強されてみてはいかがですか。
必要な部品は、
(1)Arduino nano(互換品は安いですが、ドライバーでトラブルかもしれません)
(2)リードリレー(SS1A5D)・・・5V極少電流で動作するリレーなら他で代替え可
(3)φ2.5mmステレオミニプラグ(メス)
(4)MCDC2互換ケーブル(φ2.5mmステレオミニジャック付き)
(5)ユニバーサル基板
(1)、(2)、(4)、(5)はアマゾンで入手でき、(2)は電子部品店(秋葉原等)になると思います。
最後にこれらを納めるケースが必要です。

ご丁寧なご回答ありがとうございます。
超難解です(^_^;)
機会は得意ですが、電子になると、、、

何も繋がりもなくて申し訳ないのですが、もし良かったら販売していただけませんか?(>_>)

ナムさん、こんばんは。

私のものは、素人がハンダ付けした代物で、とても代金をもらえるようなものではありません。

でも、私も今後使う予定はなりませんので、活用していただけるのなら、動作や使用したことで万が一損害等が生じても一切当方が責任を持たないと言うお約束でしたら、無償でお譲りすることも可です。

その条件でよろしければ、お送り先をコメントいただければお送りいたします(このコメント欄は、私が承認するまで公開されませんので、住所等がブログに表示されることはないと思います)。

おはようございます

本当ですか⁈
凄く嬉しいです(T . T)
あれから部品構成調べてArduino シャッター 制御とか色々調べてみたのですが、どこに何を繋いで良いのか全くわかりませんでした。フォトダイオードを使った記事しかなく、おそらくフォトダイオードをリレーに置き換えるんだろうなぁくらいまでは理解できました(苦笑

ナムさん、こんにちは。

品物は月曜日には発送出来ると思います。
素人作品ですが、活用していただければうれしいです。

いえいえ、私なんて全く理解もできませんでしたし、配線を教えて頂けたとしてハンダ付けしてもスケッチ書けません。学生時代に、ポケコンを使ってプログラムの授業がありましたが、一つのプログラムを作っただけで深く勉強したわけではないのです。なので、本当に助かります。

ドラゴン様

先日、リレーが届きました。
着払いで送っていただけたら良かったのに、負担かけて申し訳ありません><
動作も問題なくとてもうれしいです。
気持ちのこもったお手紙もうれしかったです。

大事に使わせていただきます。
本当にありがとうございます。

ナムさん、こんばんは。

動作確認できたとのこと、一安心です。
天体写真の世界ではマイナーなニコンユーザーの方に役に立てればうれしいです。

コメントを投稿

コメントは記事の投稿者が承認するまで表示されません。