まずは、外付けの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);
}
※コメント投稿者のブログIDはブログ作成者のみに通知されます