« オートガイダーの導入 | メイン | SP赤道儀2軸制御用コントローラ(2) <<内部構成-1>> »

2015年6月 2日 (火)

SP赤道儀2軸制御用コントローラ(1)

SP赤道儀用の2軸コントローラを作成するについて、いくつか経験のない事項がありましたので、あらかじめテストしながら作成しました。

<<L6470とArdiunoのSPI通信について>>
2軸制御するためには、当然2台のモータを別々に制御しなければなりませんが、手慣れたL6470を使うためには、SPI通信で複数のスレーブを制御することになります。
ネットで検索すると、複数のL6470を制御する場合、デイジーチェーンでないとうまくいかないような記事が多く、並列接続+CSピンでの制御を考えていた私としては非常に不安でした。
テストすると、なかなかうまく動作しません。 いろいろとあたってみたところ、ArduinoのSPI通信に1つ落とし穴にはまっていました。
それは、ArduinoのCSピンは「10」が標準ですが、他のピンを割り当てることも可能と言うものです。
試しに、CSピンを「9」ピンにするとうまくいきません。
何回かの試行錯誤とネット検索の結果わかった原因は、ArduinoのSPI通信ライブラリでは、「10」ピンが「OUTPUT」でマスタ、「INPUT」でスレーブとなるよう設定されており、CSピンとしてなにを使ってもよいが、SPI通信ライブラリを呼び出す前には、「10」ピンを必「OUTPUT」に設定しておかなければならないと言うことです。

/* -------------------- SPI port の初期化 -------------------------- */
void SPI_init(){
  pinMode(10,OUTPUT);                     // SPIライブラリを使用する場合10番ピン(CSpin)をアウトプットにしておくことが条件 
  SPI.setBitOrder(MSBFIRST);              // 入出力データのビット並びを7→0の順に設定
  SPI.setClockDivider(SPI_CLOCK_DIV4);    // SPIクロックをシステムの1/4(8MHz)に設定
  SPI.setDataMode(SPI_MODE3);             // SPIモードを3(CPOL = 1,CPHA = 1)
  SPI.begin();                            // SPI通信を開始
}

そこで、実際のCSピン割り当てには関係なく、SPI通信の初期化ルーチンの最初に10ピンを「OUTPUT」モードにする一文を入れて解決です。
これ以降、2つのL6470を並列に接続し、CSピンで選択してのコマンド送/受信は、今のところうまくいっています。
まあ、2つのモータの同期等難しい制御はいりませんので、これで良しとしています。
ちなみに、ステッピングモータドライバは秋月電子のL6470キットを使っていますが、同じ秋月電子で、「Arduino用モーター・シールドキット V2.3」と言うものが売っています。
これは、2つのステッピングモータをドライブできて、2,370円ですので、L6470キットを使うより安上がりなのですが(1,800円×2個)、また1から勉強しなおすのも億劫なのと、1個は既に持っているので、追加としては1個のみと言うことで、L6470キットを選択しています。

<<オートガイダCCDカメラQHY5L-IIMの端子について>>
QHY5L-IIMのガイド端子はRJ11、いわゆる6ピン6線のモジュラー端子です。 各端子の配置は、ネットの情報検索では、
1番・・・NC
2番・・・GND
3番・・・RA+
4番・・・DEC+
5番・・・DEC-
6番・・・RA- となっています。
これをRJ11→2.54mmピッチ変換基板で受けて、コントローラ内へ接続しました。
ここで心配したのは、調べた限りの情報では各ピンはリレー出力みたいだというだけで、QHY5L-IIM内の回路構成等がわからないため、へたにつないでだめにしてしまうのではないかということです。
テスタを使ってチェックしただけですが、単純なリレー出力で、GNDもUSB側とは繋がっていないみたいです。
そこで、各ピンをスイッチと同様に取扱い、プルアップ抵抗を入れて、ATMega328、ボタン、PIC12F683(RAのみ)の入力ピンに並列で接続しました。
これで手動用ボタン、オートガイダからの信号、ATmega328からの信号のいづれかからも正常に動作しています。

<<LCDキャラクタディスプレイのI2C化>>
前回までのコントローラに対して、赤経・赤緯駆動用ボタン4個分が追加となり、ATMega328のピン数が不足してしまいました。
そこで、LCDキャラクタディスプレイで使用している6ピンをI2C化することで2ピンとし、4ピンをひねりだすことにしました。
I2Cのディスプレイを使用しても良かったのですが、種類が少ないこと、3.3V駆動がほとんどであることから、昔使って余っているPIC16F88を使って、I2C化ディスプレイとしました。
これは、大きなつまづきもなくスムースに動いています。

<<モータ電源コードについて>>
3号機は、本体内にモータ及びコントローラを全て収納しましたので、特にモータ電源コードについて悩む必要がなかったのですが、今回は、モータが2個で設置場所が離れているため、どうしてもコントローラ-モータ間のモータ電源コードが必要になってしまいます。
先々代は、4ピンプラグを利用したのですが、非常に高く(1,000~2,000円/組)、今回は4組も必要なため使う気になれません。
作りやすさや価格など、LANケーブル、Dsub9、ミニDINなど今まで使ったことのあるいずれも線の細さ(許容電流量が小さい?)、コネクタ製作時のハンダ付けがしにくいなど、いまいちの感がありました。
いろいろ悩んでいたのですが、灯台もと暗しで、結局SP赤道儀の純正モータでも使用されているDIN4Pプラグに行き着きました。
ミニDINプラグに比べてはるかにハンダ付けは楽ですし、安いですし、それなりの太いコードが使えます。 1組360円+120円/mの4心スピーカーコード(0.3sq)で、格安に仕上がりました。

20150602_1471

今回のSP赤道儀用2軸モータを使ったオートガイダにかかった費用は、

SP赤道儀・・・・・・・・・・・・・・・・・・・・13,500円
オートガイダ(スコープ含み)・・・・・43,500円
コントローラ部品・・・・・・・・・・・・・・・18,000円(モータ2個を含む手持ちの部品の価格も含む)
計・・・・・・・・・・・・・・・・・・・・・・・・・・・75,000円也です。

安かったのか高かったのか?です。
プログラムのデバックはほぼ完了したので、とりあえず天体写真撮影用赤道儀3号機を使って1軸でのガイドテストに向けて準備中ですが、なかなか天候に恵まれません。
SP赤道儀は自宅待機中すので、本番は次の帰省のときまでお預けです。

トラックバック

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

SP赤道儀2軸制御用コントローラ(1)を参照しているブログ:

コメント

コメントを投稿

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