小さい赤道儀製作 AstroEQ基板をOnStepで動かす

製作・実験中の小さい赤道儀は、AstroEQ+EQMODでのフィールドテストを経て、うまく動くことが確認された。が、前にも述べたように、
 ・星図ソフト連携して使用することを前提にしているようで、赤径赤緯を指定して
  GOTOできない
 ・任意の位置でのSYNCができない
 ・電源ONの時のHOMEポジションが北極星をなっている
などの自動観測をしようとする私にとっては、非常に使いにくい面がある。これらのこともASCOMインターフェイスを利用してアプリやPARK機能をうまく使うことで解決できるとは思うが。

なので、これよりは使いやすそうな、OnStep で PINアサインを変更して、AstroEQ基板で動かしてみることにする。基板の回路図を参照しながら、いくつかのファイルを変更する。

Pins.h ファイルでのPIN MAP変更の主なところは、
 ・Motor Driverの DIR/STEPなどのPINをAstroEQ基板にあわせる
 ・Motor DriverのFAULTなどのPIN設定やReticle LEDなど、使用していない
  PINの設定をコメントアウトする。

Config.sys ファイルで
 ・#define StepsPerDegreeAxis1
  #define StepsPerDegreeAxis2
  を変更
これには、計算用のEXCELファイルがあり、Step数、ギア比などを入力すれば、求められる。
イメージ 1

 ・ステップレートを1/32に設定する
 // micro-stepping modes: 5=32x, 4=16x, 3=8x, 2=4x, 1=2x, 0=1x
 #define AXIS1_MODE 5
 #define AXIS2_MODE 5

AstroEQ基板では、Motor Driver をリセットする RST0、RST1がそれぞれ、A1,A0に接続されている。アナログ入力ポートでデジタル出力に設定して、起動時にリセットパルスを出すようにする。Initialize ルーチンで実行しても良いと思うが、メインルーチンのSetup()の中で以下のように実行するようにした。
  pinMode(A0,OUTPUT);             //A0 /RST1
  pinMode(A1,OUTPUT);             //A1 /RST0
  digitalWrite(A0,LOW);
  digitalWrite(A1,LOW);
  delay(10);
  digitalWrite(A0,HIGH);
  digitalWrite(A1,HIGH);

OnStep は、Arduino MEGA2560、Teensy で動作するように作られており、ソースコードを見ると、条件コンパイルの山である。なので、非常に分かりにくいものとなっている。実際には、すこしずつ変更してコンパイルしてエラーがでないことや、それぞれのPINの信号出力を確認しながら進めなければならなかった。

例によって、シンプルな LX200 CONTROL を使って動作を確認する。イメージ 2
室内での動作確認、GOTO、SYNCなど問題なし。
例によって、フィールドテストの「 天候+体調 」待ち。

あと、OnStep でも初期位置が北極星となっているので、南中・赤道になるように変更したいのだが、どこを修正すればよいのか見つけきれていない。