GPエンコーダーポジション読み取りプログラム実験

最近になってGPエンコーダーを入手したのでデコードプログラムを作ってみました。
エンコーダーからのパルスをカウントして回転角度に変換するだけですがこれをPCソフトでやってみようということです。

エンコーダーからのパルスをPCに取り込むのに何らかのハードウエアが必要ですが手軽にUSB経由でデーターを取り込めるFT245RLを使用しました。このFT245RLにたった4個の抵抗を追加するだけで取り込みハードウエアが完成します。外部電源もいらず極めてシンプルです。


問題はエンコーダーからのパルスを取りこぼしなく処理できるスピードが得られるかということですが、これはUSBのデーター転送速度に制限されることは以前の実験から分かっていました。PC側がFT245の状態を見に行くというという行為をしないかぎり勝手にFT245側からデーターを送ってくることはないのでエンコーダーの回転を監視するためにPCプログラムは常にFT245にリードコマンドをかけ続けなければなりません。従ってこの実行速度があまりに遅いとエンコーダーの取りこぼしが発生して実用になりません。
このため通常この部分はハードウエアが担当するのですが今回はソフトで実用になるかというのがこの実験です。

VIXENステラガイドの説明書では180度回転させるのに3秒以下のスピードで回すとエンコーダーパルスの取りこぼしが発生すると解説されていますので一応これを実用範囲の目標ということにします。
GPエンコーダーは750pprの2相なのでプログラム上での解像度は4倍の3000となります。すなわち1回転3000カウントの分解能があることになります。(1カウント=360/3000=0.12度)
単純に計算するとこの3000カウントを3秒以内にカウントできないと実用目標に達しないことになります。

そこで簡単なデーター転送速度計測プログラムを作って6000回のリードコマンド計測すると

PC本体のUSB2.0ポートでは24秒かかり、3000回換算でも12秒でとても実用になりません。これは今までの実験や経験から予想していたことなのでそれほど驚くことではありません。
 かといってどんなPCでもそうかというとそうでもなくてPC本体のUSBポートでも早いものは早いのです。明確な理由は分かりませんが外付けのUSBアダプターとかハブを経由すると劇的に早くなります。この辺の理屈は浅学な工房主には分かりませんがintelのUSBコントローラーchipが関係しているように思えます。

スピード計測プログラム



 PC本体に直接接続すると24秒なのに
 途中にUSBハブを入れると2秒!


     何故?



 誰か教えて!

まあともあれ、このUSBハブ経由では2秒なので3秒間では9000回のサンプリングができることになり十分実用になると思います。

GPエンコーダーからのパルスをカウントして回転角に変換する簡易プログラムです。


一応経緯台、ドイツ式赤道儀、フォーク式赤道儀に対応できるようにしていますがまだ実際に取り付けてはいません。
角度表示は本物の目盛環と同じように方位は0〜360度、時角は0時〜24時、高度/赤緯は-90〜+90度を循環するようになっています。

机上での実験では180度あたり3秒程度のスピードならエラーカウント(取りこぼし)なしにカウントできるようです。

基準星を設定して現在望遠鏡が向いている方向を確定すれば目標天体の導入支援ができると思います。
寒くて実装テストする気が起きません。 ・・続く・・

2012.12記

その後、もう少しプログラムを煮つめてこのようになりました。


一つの基準星を導入してその基準星の時角と赤緯を入力して現在望遠鏡が向いている方向をプログラムに教えてやります。以降望遠鏡をどこに向けても向いている方向の時角と赤緯を表示します。(極軸の合った赤道儀)
Vixenステラガイドでは赤経、赤緯を表示するようですがこのプログラムでは赤経でなく時角表示というのが特徴です。赤道儀から見ると赤経座標は時間とともに動いていきますが時角座標は動きません。なので時角と赤緯はその観測場所の絶対座標となり時間がたとうが赤道儀のクランプを緩めようがエンコーダーが正常に働いている限り望遠鏡の方向を示すことができます。

昔は天体の時角を求めることは面倒な計算をしなければならず実用的でなかったためなのか、赤道儀の目盛環は赤経、赤緯表示が一般的です。PCやスマホで簡単に時角が計算あるいは取得できる現在では赤道儀の目盛環は赤経と同時に時角も表示してあれば目盛環導入が極めて楽になると思うのですが一部の赤道儀にしかないのはなぜでしょう?まあ赤経目盛を逆に読めば良いだけですが・・・。

話が横に反れましたがこのまま目標天体の座標(時角、赤緯)まで望遠鏡を動かせばそれを導入できるはずです。一方目標天体の座標を入力しておけば現在位置から目標天体までの距離に相当するカウンター値が表示されるのでこの値がゼロ(0)になるように望遠鏡を動かしても良いです。市販の○○ナビゲーターやステラガイドのPC版というところでしょうか。

先日寒空の中、僅かな時間ですが検証テストしました。北極星の見えないベランダにVixenGP赤道儀を適当に設置してPentax75+LV25(20倍)でオリオン座リゲルを導入し基準星としました。リゲル→ベテルギウス→スバル→リゲルと導入できることを確認し早々に部屋に引き上げました。
心配していたエンコーダーの取りこぼしは通常の望遠鏡操作では問題ないようですが強引にすばやく動かすと取りこぼしは発生します。ちなみにスカイセンサー2000の1200倍速程度なら十分に余裕でカウントできることも分かりました。

座標の入力は少しの手間とはいえキーボードから入力するのは面倒なので何か別の方法を考えたいと思います。
一応実用になりそうなのでもう少し使い勝手を考え検証できたら公開プログラムとしたい思います。

2013/01記





inserted by FC2 system