2012年10月5日金曜日

フォーカス微動装置の改善

先日作成したフォーカス微動装置で、L字に曲げたアルミ板の剛性が足らなかったものですから、10mm厚のアルミブロックに穴開けとフライス加工をして剛性を高めてみました。接眼部についていたカバーを取り外し、軸押さえの部品(2点止め)をむき出しにしてそこにブロックを取り付けています。

剛性はかなり高くなり、良い感じに仕上がりました。あとは実戦投入して試してみたいと思います。

2012年9月28日金曜日

フォーカス微動装置の自作

またまた自作します。知人がFS-60CにMEF-3を取り付けたというので、羨ましく思っていたんですが、あるWEBサイトで微動装置を自作されている方を発見しました(こちら)。とても良くできていらっしゃるので同じ物が作れないだろうかと考えていたのですが、バーニアダイアルなるものが今日ではなかなか入手が難しそうだということが分かって来ました。これは昔、アマチュア無線の無線機のチューニングパーツとしてよく使われていたもののようです。現在はデジタル化され、このような減速機は必要なくなってしまい、製作していた会社も多くは廃業されているとか。しかし、WEBサイトを漁ること1時間。ようやく見つけました(TMT SERVICE)。これを使って自作したいと思います。お値段も1個¥2,300とMEF-3の1/10で購入できます。

届いた部品はこんな感じ。自作されていた方と全く同じです。


同じように旋盤で軸を削り、ハンドルに穴をあけ、同じように加工しました。



微動側のハンドルは適当に転がっていた内径Φ6の歯車を使ってしまいました。

1点だけ異なるのは、バーニアダイアルを固定するのに先の方は接眼部にタップを立ててネジを切られているようですが、勇気がなかったのでアルミ板を曲げてネジ止めしてあります。1mmのアルミ板なので強度不足が否めません。5mm厚程度のアルミブロックを使うか、やはり接眼部へタップを切ったほうが良いかもしれません・・・。まぁ¥2,300にしては十分の出来栄えです。

ちなみに、失敗した時に備えてこのピニオンギアの付いた軸、ハンドルだけを販売してくれるのか高橋製作所に問い合わせたところ、「ε180と同じなのでお分け出来ますよ」とのこと。失敗せずに済んだのでよかったのですが、バックアップがあると安心して加工ができます。



2012年9月17日月曜日

EM200B 導入支援装置自作(8) -導入テスト-

もう先月のことになりますが、M27をベガとアルタイルを使ってキャリブレーションして導入してみました。M31とかM45のように見える天体を撮影使用とするならば、見えるので導入するのは簡単ですが、肉眼では見えないような天体はやはり導入支援が欲しくなります。テストは自宅の庭で行ったので完全に光害地であり、3分も露光してしまうと真っ白になってしまうぐらいの土地です。当然M27は肉眼では全く見えません。しかし2等星から3等星ぐらいなら何とかなるレベルですので、ベガとアルタイルでキャリブレーションします。
恒星の座標はStellariumをみて入力しました。

  • ベガを視野の中央に導入
  • Arduinoのシリアルデバッグコンソールからベガの座標を入力
  SetPosition 18:36:56 38:47:03

  • クランプを緩めて、アルタイルを視野の中央に導入
  • 同様にシリアルコンソールからアルタイルの座標を入力
  SetPosition 19:50:47 08:52:08

これでLCD上に現在、望遠鏡が向いている方向への座標が表示されています。次に、M27の座標である19:59:36 22:43:00 になるようにクランプをゆるめ大まかに向け、コントローラ微調整します。実際には、分解能が細かくないのでぴったりこの座標になることはありませんが、できるだけ近くなるように微調整して導入します。この手順で2回試して撮像したM27が以下のようになりました。

EM200B+自作導入支援装置にて導入したM27
ε160+EOS 40D無改造
2012/08/19 21:23 ISO800 60sec


どちらも無改造のEOS 40Dで、JPEGの撮って出し画像です。ダークもフラットも処理していません。2回とも視野に収まっており、ここまで導入できれば問題なさそうです。
あとはStellariumのプラグインが作れれば良いのですが、なかなか作業が進みません(汗)。

    2012年9月11日火曜日

    EM200B 導入支援装置自作(7) -座標系変換プログラム-

    なかなか導入支援装置自作の投稿ができずにいます。忙しいです・・・。
    もう1ヶ月ほど前にはプログラムしているのに、その記録を残せないでいるという状態です。良くないですね。とりあえず、作成したプログラムを記録として残しておこうと思います。
    dsc06.zip


    • dsc06.ino : Arduinoメインスケッチ
    • AngleCalc : 座標変換クラス
    • Matrix : 3次元行列
    • RTClib : Real Time Clock クラス(RTClib-github)

    一応、これだけの処理が詰まってます。RTClibに関しては上記リンクから拾ってきたものです。それ以外は自力で記述しました。

    まず、Matrixクラスですが、これは3x3行列演算を行うためのクラスです。何も難しいことはやっていません。行列式を求めたり、逆行列を求めたり、3次元ベクトルとの乗算などをやることがこのクラスの責務です。

    次に、AngleCalcです。これはTaki's Homepageの「Equations for Pointing Telescopeを簡易実装したものです。このHomepageでは、経緯台でのAlt/AzとRA/DECの座標変換を行うことを前提に書かれていますが、3次元ベクトルの異なる座標系への変換ですので赤道儀に対しても使えると思い試して見ることにします。理想的なRA/DEC座標へ、赤道儀に取り付けたエンコーダカウンタから得られる座標系の値を変換することになります。要するに、エンコーダのカウンタから、RA/DECを取得することがこのクラスの責務となります。
    このクラスは、コンストラクタでRA/DECの分解能を渡します。その後、setPosition()関数にて、キャリブレーションに使用した星1の座標(pos1)、その時のエンコーダパルス(enc_pos1)、その時の時刻(t1)、星2の座標(pos2)、その時のエンコーダパルス(enc_pos2)、その時の時刻(t2)を渡してキャリブレーション完了となります。キャリブレーションが終了したら、getPosition()関数にエンコーダのパルス(enc)と時刻(t)を渡すことでRA/DECが得られることになります。

    RTClibはこの時刻を取得するために使用します。そもそもこの時刻が撮りたいがためにArduinoにRTCを載せました。

    最後にメインスケッチですが、まだ簡易的なものなのでArduinoの開発環境から接続するシリアル通信画面を使って制御するように組んで有ります。有効なコマンドは、

    • 時刻設定:SetTime yyyy/mm/dd hh:mm:ss 
    • 時刻表示:Time
    • RA/DEC表示:Pos
    • エンコーダカウンタ表示:Pulse
    • キャリブレーション1:SetPosition1 HH/MM/SS dd/mm/ss
    • キャリブレーション2:SetPosition2 HH/MM/SS dd/mm/ss
    です。時刻設定は24時間表記で設定します。キャリブレーション1・2はRA/DECをそれぞれ時分秒、度分秒で渡します。Time/Pos/Pulseはデバッグ用コマンドなのでどうでも良いです。現在の実装では、500[msec]ごとにエンコーダのカウンタを拾ってRA/DECを計算しLCDに表示させます。
    今回はとりあえずここまで。次回は先月デネブベガとアルタイルでキャリブレーション後、亜鈴状星雲を導入してみた時の精度について見てみます。

    2012年8月27日月曜日

    遠征

    おととい土曜日の夜に、豊田市の元気村へε160をもって出かけました。初めてのε160の出番です。GPVでは日が変わる頃まで雲が少し残る予報でしたが、23:00あたりから雲がなくなり元気村にしては素晴らしい星空が堪能できました。西は豊田・名古屋の光害でダメですが、東及び北ならば何とかなります。

    初めてですので、メジャーな天体を狙いました。M31とM45です。このε160にはフォーカスの微動装置がついていないため、フォーカス調整がしんどいです。やむなくライブビューのある、無改造40Dを使用しました。今回は「見える」天体ですので導入支援装置も必要ありません。設営に1時間、とりあえず撮ってみたM31とM45です。

    2012/08/26 EM200B赤道儀
    ε160+Canon40D無改造 ISO800
    300sec 12枚


    2012/08/26 EM200B赤道儀
    ε160+Canon40D無改造 ISO800
    300sec 10枚 + 450sec 3枚

    まず、オートガイドがうまく行っていません。RAがずれていってます。原因がよくわかりません。ガイド鏡をガイドマウントに載せていますが、剛性が足らないのかもしれません。ガイドカメラにQcam4000を使っていますが、ノイジーなのも良くなさそうです。
    次に、フォーカスが甘かったです。特にM31。更に、よく見ると光軸もズレているように思います。反射望遠鏡は初めてなのでどう判断して良いのかよくわかりませんが・・・。
    更に、気温が高かった(外気温20度ぐらい)せいもあって、画像自体にノイズがたくさん載っています。これに関しては今の機材では仕方ないですが、なんとか解決したいです。

    今回は、元気村にいらしていた方々に色々お世話になりました。次から次へと色々な天体を見せていただいたり、機材のことを色々お話させていただいたり・・・。夜なのでお顔まではわかりませんが、皆さんありがとうございました。

    2012年8月18日土曜日

    EM200B 導入支援装置自作(6) -Arduinoと周辺回路-

    ArduinoにLCDを取り付けてRAとDECを表示させようと思います。2つのReference Starでキャリブレーションした後は電源が入っていればRAとDECを表示し続けて欲しいため、RTCを搭載する必要があります。RTCは秋月で入手できるものもありますが、電源が落ちたら時刻を忘れてしまうためバッテリーとDS1307を搭載したもの共立エレショップで選択しました。バッテリー保持による時刻の精度はそれほど高くないようですが、まぁ念のためというところでしょうか。

    マトモな回路図を書こうとしたのですが、面倒だったのとドロー系ソフトを持っていないこともあり、GoogleDriveをつかって図形描画したものを以下に載せておきます。








    あとはReference Starを使ったキャリブレーションと、LCDへの表示、RTCからの時刻差分を考慮した座標変換あたりのソフトを組み込むことで使えるようになると思います。それはTaki's Home PageEquations for Pointing Telescopeが参考になりそうです。

    2012年8月4日土曜日

    EM200B 導入支援装置自作(5) -Arduinoプログラミング-

    先日Arduinoを購入したのには、プログラミングがしやすそうなことと、もう既にArduinoをつかって導入支援装置を作っている方がおり、そのプログラムが公開されているからです。
    Arduinoのプログラムはsetup()とloop()がエントリーポイントとして用意されており、setup()で初期化、loop()でループ処理を書けばOKです。しかし、ロータリーエンコーダの変化の取得は当然ながら割り込みで処理すべきであり、公開されている方のソースもそのように書かれています。

    まずはこのプログラムを利用させてもらい、エンコーダのパルスを拾ってみます。
    // DSC01
    #include 
    #include 
    
    const int    RA_enc_A  = 6;     // digital pin 6 = PD6
    const int    RA_enc_B  = 7;     // digital pin 7 = PD7
    const int    DEC_enc_A = 9;     // digital pin 9 = PB1
    const int    DEC_enc_B = 10;    // digital pin 10 = PB2
    const double RA_RES    = 500 * 2 * 44.0 / 11.0; // RA  500P/R * 4(A/B相) * (大プーリ歯数) / (小プーリ歯数)
    const double DEC_RES   = 500 * 2 * 40.0 / 11.0; // DEC 500P/R * 4(A/B相) * (大プーリ歯数) / (小プーリ歯数)
    long         DEC_pos   = DEC_RES/2; // initial position of encoders(DEC)
    long         RA_pos    = RA_RES/2; // initial position of encoders(RA)
    
    void setup()
    {
      Serial.begin(9600);
      // initialize the encoder inputs
      pinMode(DEC_enc_A, INPUT);
      pinMode(DEC_enc_B, INPUT);
      pinMode(RA_enc_A , INPUT);
      pinMode(RA_enc_B , INPUT);
    
      // Pin change interrupt control register - enables interrupt vectors
      //  Bit 2 = enable PC vector 2 (PCINT23..16)
      //  Bit 1 = enable PC vector 1 (PCINT14..8)
      //  Bit 0 = enable PC vector 0 (PCINT7..0)
      PCICR |= (1 << PCIE2);
      PCICR |= (1 << PCIE0);
    
      // Pin change mask registers decide which pins are enabled as triggers
      PCMSK2 |= (1 << PCINT23);  // arduino pin 7 = PD7 = RA  encoder A
      PCMSK0 |= (1 << PCINT1);   // arduino pin 9 = PB1 = DEC encoder A 
    
      // enable interrupts
      interrupts();
    }
    
    void loop()
    {
      delay(500);
      Serial.print(RA_pos, DEC) ; Serial.print(" "); Serial.println(DEC_pos, DEC);
    }
    
    ISR(PCINT2_vect){ 
      if (digitalRead(RA_enc_A) == digitalRead(RA_enc_B)) {
        --RA_pos;
        if (RA_pos < 0) {
          RA_pos = RA_RES - 1;
        }
      }
      else {
        ++RA_pos;
        if (RA_pos >= RA_RES) {
          RA_pos = 0;
        }
      } 
    }
    
    ISR(PCINT0_vect){
      if (digitalRead(DEC_enc_A) == digitalRead(DEC_enc_B))
      {
        ++DEC_pos;
        if (DEC_pos >= DEC_RES) {
          DEC_pos = 0;
        }
      }
      else
      {
        --DEC_pos;
        if (DEC_pos < 0) {
          DEC_pos = DEC_RES - 1;
        }
    }
    
    
    これで、500ms間隔にSerialPortに対してRA/DECのパルスカウントを表示するはずです。

    おっと、このプログラムを走らせるために組んだ回路を公開するのを忘れていました。また次回にでも回路を公開します。

    最終的には、Stellariumのプラグインまで作成しし、Stellarium上に現在望遠鏡が向いている方向のレチクル表示が出来ればいいのですが、結構面倒です。一旦キャリブレーションさえ出来れば、あとは単体だけでRA/DECの表示が出来ればそれでも十分なので、座標表示のためのLCDと時刻取得のためにRTCを搭載する予定です。