DSC の詳細3 ファーム編 [天体・DSC]
DSC(Digital Setting Circles)を作る場合、多くの方がDave Ekさんのコ-ドを使うのが一般的というか、普通は自分で新たにソフトを書く意味はあまりないと思います。しかし、1/26に書いた実験架台のように通常のエンコーダじゃないものを使用する場合は、自分でプログラミングをする必要があると思います。
私は、PIC16F648Aを使用して、インターバルタイマ割り込みで、エンコーダの値を読み込み、mainルーチンのループでUARTの処理を行いPCとの通信を行っています。これはエンコーダの状態遷移によるポートの変化で割り込みをかける処理を行った場合微妙な位置では割り込みが多重にかかったり、頻繁にかかることによる弊害があると考えたためです。PCとの通信は9600bpsと非常に低速なのでmainルーチンのループ処理で充分実行可能です。
Cartes du Cielではエンコーダ設定をNGC-MAXに設定したときには、以下の2つのコマンドのみサポートすれば動作することが判りました。
az = エンコーダの方位の現在の値(符号付き)
alt = エンコーダの高度方向の値(符号付き)
az_max = 方位方向に360度動かしたときのエンコーダの最大値(符号なし)
alt_max = 高度方向に360度動かしたときのエンコーダの最大値(符号なし)
\t = <tab> = 0x09
\n = <cr> = 0x0a
表記はC言語のprintfに準拠しています
垂直軸に加速度センサ、水平軸に方位センサをつければ、回転軸にメカ的な工夫をしなくても簡単に取り付けられるDSCが実現できるのではないかと考えています。CelestronのSkyScoutとかはたぶんこのようなセンサを使っていると思います。でも、これらを使うためには温度や電圧、また一番大きいのが取り付けに関する誤差をどのようにすれば補正して楽にセッティングできるかということと、それらの精度を使用範囲(2000tics程度は必要)に収めるかという点です。
PCは、望遠鏡を買う(作る)人ならほとんど所有している時代だと思うので、DSCを望遠鏡に標準装備して私のような星空の迷子をなくしたい。。。なんて、ちょっと大袈裟ですね。
今日もビールを飲んで、しかも記憶だけで(ソースぐらい見て確かめろ)書いている部分があるので間違いがあるかもしれません。
そのときは密かに修正しますのでよろしくお願いします。
私は、PIC16F648Aを使用して、インターバルタイマ割り込みで、エンコーダの値を読み込み、mainルーチンのループでUARTの処理を行いPCとの通信を行っています。これはエンコーダの状態遷移によるポートの変化で割り込みをかける処理を行った場合微妙な位置では割り込みが多重にかかったり、頻繁にかかることによる弊害があると考えたためです。PCとの通信は9600bpsと非常に低速なのでmainルーチンのループ処理で充分実行可能です。
Cartes du Cielではエンコーダ設定をNGC-MAXに設定したときには、以下の2つのコマンドのみサポートすれば動作することが判りました。
コマンド |
PCからの返り値 |
コメント |
Q |
("%+05d\t%+05d\n",az,alt) |
現在のエンコーダの値を返す(16ビットの符号付データ) |
("R%+05d\t%+05d\n",az_max,alt_max) |
R |
PCからエンコーダのtics値を設定する |
az = エンコーダの方位の現在の値(符号付き)
alt = エンコーダの高度方向の値(符号付き)
az_max = 方位方向に360度動かしたときのエンコーダの最大値(符号なし)
alt_max = 高度方向に360度動かしたときのエンコーダの最大値(符号なし)
\t = <tab> = 0x09
\n = <cr> = 0x0a
表記はC言語のprintfに準拠しています
垂直軸に加速度センサ、水平軸に方位センサをつければ、回転軸にメカ的な工夫をしなくても簡単に取り付けられるDSCが実現できるのではないかと考えています。CelestronのSkyScoutとかはたぶんこのようなセンサを使っていると思います。でも、これらを使うためには温度や電圧、また一番大きいのが取り付けに関する誤差をどのようにすれば補正して楽にセッティングできるかということと、それらの精度を使用範囲(2000tics程度は必要)に収めるかという点です。
PCは、望遠鏡を買う(作る)人ならほとんど所有している時代だと思うので、DSCを望遠鏡に標準装備して私のような星空の迷子をなくしたい。。。なんて、ちょっと大袈裟ですね。
今日もビールを飲んで、しかも記憶だけで(ソースぐらい見て確かめろ)書いている部分があるので間違いがあるかもしれません。
そのときは密かに修正しますのでよろしくお願いします。
コメント 0