天体写真メモ

天体写真を撮る上でわかったこと、気がついたことをメモしていけたらいいかな?

小型2軸自作赤道儀計画 その2(動かない!)

2021-03-03 19:51:05 | 天体写真

まずは、外付けのLEDが点灯しない。で、ウンともスンともいわない。
この際だからと、Automatically Start TrackingをYesに変えて書き込んでみる。これで、すぐにトラッキングが始まるはずだ・・・・が、やはりウンともスンとも。

さぁ、どうしましょう??

兄につきかえすのは容易だけど、それじゃあんまりにも私の存在感が無いよねぇ。う~ん・・・しょうがない。onstepを少し読むか・・・

まずは、arduinoだな。ふむふむ。まずは(onstep.inoの)init が最初に動いて、次にloopを繰り返すのか・・・なるほど。onstep.inoの中を読んでみよう。文法はC言語そのものだな。define 関係が並んで、ifdefで接続されてるハードの部分だけ初期化して・・・うむ、読めないことはなさそうだ。でもいろいろ試すには、せめて何かデバッグのための道具が必要だな・・・よし取り敢えずLEDを点灯させよう。

などとわからないところはWebのページで調べることで、LEDの点灯(外付けLEDはではなくteensyのボード上のLEDがついてびっくり。外付けLEDは何をやっても点灯しなかった)とdelayの使い方がわかったから、LEDで点滅パターンを作って、取り敢えず最低限のデバッグ環境を手に入れて。

さて、ステップモータ見てみよう。動作させる startGuideAxis1 かな?あれ?エラーが出てる・・・LEDの点滅パターンでエラー番号を調べて・・・そっか、enableStepperDriversを呼ばないとダメなんだな・・・

などと、進めていき、デバッグコードとして、「外付けLED点滅 => ステップモータ1 正回転 => ステップモータ1 逆回転 => ステップモータ2 正回転 => ステップモータ2 逆回転」を繰り返すプログラムを作成してみたが、やっぱりモータはウンともスンともいわない。
フェイズの切り替えを告げるLEDの点滅だけが空しくチカチカ。

ここでギブアップ。兄のところにもっていこうといったん赤道儀をバラしかけたが、ふとLEDの点滅だけでも動画に取っておこうと、もう一度組み立てて直して動かす。「ギギギギギ・・・」あれ?? ステップモーター1が振動してる?? うむ? そこで気がついてモータのコネクタをグショグショと抜き差し。で再び電源を入れると「・・・ぎゅぃーん」お・・・動いたぞ!お・・・逆に回ったぞ・・・

どうやら、コネクタの接触が悪いようだ。症状としては、モーター1は刺し方によって、1.うごかない 2.振動 3.動作、 モータ2は 1.動かない 2.振動 となる。 兄に連絡すると確かにコネクタがチープで気になっていたとのことで、まともなやつに交換することに。もう一つ、外付けLEDだがどうやら、電圧を間違えて計算したらしくつけていた抵抗の抵抗値が大きすぎたのに気がついたらしい。ということで、いったん兄に刺し戻し。

ちなみに、テストコードはこんな感じ。myLEDは16000msのLED点滅、ERROR_LEDはエラー番号をLEDの点滅で通知するための関数です。

  enableStepperDrivers();
  int err;
  while(true){
    if((err=startGuideAxis1('e', 9, 16000))!=CE_NONE){
      ERROR_LED(err);
    }
    myLED(3);
    stopGuideAxis1();
    if((err=startGuideAxis1('w', 9, 16000))!=CE_NONE){
      ERROR_LED(err);
    }
    myLED(4);
    stopGuideAxis1();
    if((err=startGuideAxis2('s', 9, 16000))!=CE_NONE){
      ERROR_LED(err);
    }
    myLED(5);
    stopGuideAxis2();
    if((err=startGuideAxis2('n', 9, 16000))!=CE_NONE){
      ERROR_LED(err);
    }
    myLED(6);
    stopGuideAxis2();
    mySLED(1);
  }


小型2軸自作赤道儀計画 その1(まずはハード到着 ⇒ ソフト設定)

2021-03-03 18:19:23 | 天体写真

早速、赤道儀のハードが出来てきた。

メカ部分は、ケンコートキナーのNEW KDSマウントII をベースにステッパーモータを取り付け、ベルトでドライブする機構。

NEW KDSマウントIIは歯数は88ではあるが、高いだけあって非常に滑らかな動きでガタもない(少々重いようだが)。なかなか精度も良さそうだ。

コントローラは、

http://norikyu.blogspot.com/p/blog-page_81.html

で「のりきゅう」さんという方紹介されているもので、ベースはTeesny4.0 にDRV8825をのせて、ついでにLEDをつけたものです。基盤も「のりきゅう」さんから非常に安価で分けていただいたようです(ありがとうございました^^)。

さて、私の役割はこのコントローラにonstepもソフトウエアを入れて動作を確認することです。

私はWindows10の環境で導入したので、まず開発環境として、

arduino IDE: https://www.arduino.cc/en/software

Teensy用のプラグイン:  https://www.pjrc.com/teensy/td_download.html

の2つをインストールして、

onstepファームウエア: https://github.com/hjd1964/OnStep

から、最新バージョン(私の入れた時はrelease-3.16でした)を選んで、codeを落とします(私はzipファイルで落としました)。

OnStepというフォルダに解凍する必要があるようです。

次に解凍したフォルダにある Config.h を編集する・・というフェーズですが、

http://www.stellarjourney.com/assets/downloads/OnStep-Calculations.xls

このエクセルファイルを落として、薄緑の部分を自分の環境に合わせて変更して、

http://o.baheyeldin.com/

ここからたどれるページで、エクセルに合わせて埋めていき、最後に一番下にあるGenerateのボタンを押すと、Config.h がダウンロードされるのでそれに置き換えるとOKです。私の環境では以下の様になりました。

Steps Per Worm Wheel Rotationはエクセルが計算してくれたものです。

GR1 GR2はモータと最終的な軸との回転比。プーリーが3:1 なのでGR1が3で、歯数が88なので、88回まわると最終軸は1度まわるということで、GR2は88にしました(間違っていたら最後に修正する予定)。

Desired Slewing Rate [SLEW_RATE_BASE_DESIREDはデフォルトのまま1でいいかなとも思いましたが、遅いという話読んだ気がするので1.5に。大きくするほど、GOTO時の移動速度が速くなるようです。MAXは10と書いてありますが10では大きすぎるという話も見かけました。

これで、生成されたConfig.h をもとのファイルに上書きして準備完了です。
arduino IDEを起動して、OnStepフォルダの直下にあるOnStep.inoというファイルを読み込みます。

次に、本体に電源をいれて、PCとUSBで接続、ツールメニューのボードでTeensy 4.0を選び、ポートを設定します(ポート番号はWindowsのデバイスマネジャを起動してシリアルポートを確認)。

最後にスケッチメニューにある「マイコンボードに書き込む」を選ぶと、ファームをコンパイルし、ボードにダウンロードしてリセットされて、動作が始まります。

うまくいけば、これで出来上がりとなるはずですが・・・・