fc2ブログ

シリアルの問題

ここ数年でカメラ、フォーカサー、マウントなどの天体機器を統合制御出来るアプリが増えて来ました。
うまく使用できれば便利なのですが、以前のように各機器を別のアプリでバラバラに操作していたら起きなかった問題がこのような統合制御のアプリでは問題になります。

原因はシリアルで制御を行う機器のPCでの管理方法にあります。(USBシリアル変換チップを使うものも同様)

シリアルはモデム通信などで使われていた非常に古い通信方法(現在のPCには端子すらありません。)ですが、USBなどと比較してドライバの開発が容易なので、いまだに制御機器などで使われています。

機器を制御する場合、通信量自体は非常に少ないので、このような古い規格でも機器とPCを一対一で制御を行う場合は問題ありませんが、天体撮影のように複数シリアル制御機器を連携させる場合は必ずといっていいほど問題がおきます。

問題が出るのは
・機器の自動接続機能
・複数アプリの連携機能(マウントのSync、PlateSolving、ディザリングなど)


一つのアプリで完全に全て連携などを行えれば自動接続以外は問題が出ませんが、ほとんどのアプリは統合制御といってもいくつかのアプリと連携が必須、遠征時などに常にケーブルの接続をし直すことになりますので、上記2項目に対しての対処が必要になります。

シリアルの扱いはOS毎に異なりますのでそれぞれ対処法を記載します。

●Windowsの場合
Windowsはシリアル信号を連番のCOMとして認識します。
天体機器の多くはそれぞれのアプリが独自にCOMとの接続を扱い制御するドライバか、汎用ドライバのASCOMを使用します。

COMで取り扱われる機器はレジストリを制御するので本来であれば、管理者モードでの動作が必要です。(アプリによっては回避して使用できるようになっているものもありますが使ってみるまで対応はわかりません。)

COMとして認識される機器は、その機器本体のドライバによって挙動が変わります。(常に新たなCOM番号を作るもの、常に同じ番号で接続しようとするもの、インテリジェンスに空いているポートを探し、空いているところに接続するものなど)

そしてシリアルが古い規格なので対応しているアプリなども古いものが多く、互換モードや32ビットで動作するものがほとんどの状態になります。

具体的には以下の制約があります。

・アプリでの複数機器の自動接続は不可能(機能がついていたとしても事前にそれぞれのCOM番号を確認し、ドライバと正しく接続しないと動作しない。)

・COMを扱うアプリは原則として管理者モードで起動させないと、制御が出来ない部分がでる可能性がある。(レジストリを書き換える処理をするため、このような処理は原則管理者モードが必要)

・ディザリング、PlateSolving、マウントのSyncなど連携が伴う制御項目は、ドライバ含めそれらを全て統括制御出来るように設計されたアプリ(知る限り、ステラショットとTheSkyX+エクステンションのみ)以外は動作が自己責任。

・汎用ドライバのASCOMで連携するアプリは連携を必要とするドライバがマルチクライアントに対応しているか、PothHub機能、その改定板であるデバイスHubで正確に動作しないと使用出来ない。

・COM番号が増え続ける機器や、番号が競合する機器があるため、デバイスマネージャーで管理、調整が必要。

・PothHub後継のデバイスHubの仕様が管理者モードでは動作しないため、管理者モードで動作するドライバがある場合はPothHubを使用する必要がある(2021年2月現在)

・ASCOMを利用する場合、.NETのバージョンが3.5のまま停止しているため互換モードでないと動かない場合がある(正式対応しているのはWindows7まで)



と、注意事項が非常に多いです。
確認抜けが起きるとトラブルが出ますので注意しましょう。
Windowsの場合は独自ドライバで単独機能を制御するアプリも多いので、統合制御アプリやPlateSolving、ディザリングなど連携機能を使用せず機器ごとに個別のアプリで制御を行うのも一つの手です。
(COMの場合は一対一だと安定していても連動使用で問題が出ることが多いため)


●MACの場合
シリアルを唯一独立した個別の名称で管理できるOSになります。(tty.○○○○○○や○○○○○○など、アプリによって識別名の表示は異なります。)
そのため、一回設定すれば再接続しても常に同じ名前で接続出来ますので、シリアルの問題は出づらくなります。
Macの場合はシリアルよりも制御するアプリとOSの互換性が最重要になります。(バージョンが一つ違うだけで動作しなくなる事が多いです。)

Macの場合は天体機器の制御はINDI、INDIGOの2つの汎用ドライバと、SkySafariやTheSkyXなどに代表されるような独自ドライバの3種になります。
それぞれで若干注意事項が異なりますので記載します。

●INDI・INDIGOの場合

・ドライバの設定で接続するシリアル機器を指定して、その設定を保存する。

以上です。
事前にドライバに接続機器を指定してその設定を保存しておけばそれ以降は問題なくその機器に接続されるようになります。
上記を済ませれば複数機器の自動接続も可能です。(当然ですが上記が設定していなければ自動接続はできません)

INDI・INDIGOドライバはいずれもマルチクライアントに対応していますので、複数アプリでの連携も可能です。

●SkySafari、TheSkyXなど独自ドライバを使用する場合

TheSkyXのみが複数機器の制御に対応しており、他のアプリはマウント制御のみです。

・シリアル機器の固有識別名を覚える

記載するのも馬鹿みたいですが(苦笑)、その機器の固有識別名を覚えておけばOKです。

以前はドライバ自体が無いという状態でしたが、現在は最もシリアル機器の管理が楽なOSです。


●Linuxの場合

udevというシステム機能で管理されています。
デフォルトではWindowsのCOM同様連番管理(dev/ttyUSB0など)ですが、ユーザーがルールを書き換えることでMac同様機器の固有名で管理できます。

追記:INDI環境がインストールされていれば固有名管理されるようになりました。(サーバ側で処理)


シリアル機器を制御するドライバはINDIとINDIGOがありますが、INDIGOはクライアントアプリがMacとWindowsしかありませんので(LinuxはINDI互換モードのみ)INDIで説明します。

Mac同様注意事項は両者同じです。

●INDI・INDIGOの場合

・udevルールを書き換えて固有名で機器を扱えるよう変更する→ドライバの設定で接続するシリアル機器を指定して、その設定を保存する。

※INDI環境がインストールされていればサーバ側で自動的に固有名登録されるようになりました。

以上です。
これを事前にしておけば、自動接続で問題が出ません。
Macと異なりデフォルトではWindows同様連番管理になっていますので、この状態では機器の自動接続が出来ません。(Ekosなどは自動でシリアルを探す機能がついていますが、ドライバの接続に失敗することが多いです。)

Mac同様INDI、INDIGOドライバはマルチクライアント対応のドライバなので、複数アプリの連動も問題ありません。

しかし、一般ユーザーがudevルールを書き換えるのはとても面倒です。。
ターミナルを使用し、書き換え毎にudevの再起動が必要になりますが、AstroPi3に同封されたudevルール変更スクリプトを使用すると若干楽です。

天体機器の制御は屋外で複数機器を都度設置して行うため、トラブルに会いやすくなります。
PCの接続以外にも電源の問題や、端子の接触不良、ケーブルの断線などありとあらゆる問題に対処出来る必要があります。
PCでのシリアルの取り扱いは知識を持てば解決出来る要素(しかし、環境によっては解決がしづらいものもあります)になります。

アプリの統合環境だけが進化してもこれらの準備が出来ていなければ絵に描いた餅になってしまいます。
(自動接続、PlateSolving、ディザリングなどは使えるように事前準備が必要)

本当はこんなことを注意しなくても簡単に使えるようになるのが一番いいのですが。。。(天体機器は早くシリアル制御から脱却してほしいです。)

関連記事
スポンサーサイト



非公開コメント

プロフィール

TーStudio

Author:TーStudio
色々工夫しながら星空を楽しんでいます。
興味あるカテゴリを選択してお楽しみください。

カレンダー
01 | 2024/02 | 03
- - - - 1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 - -
カテゴリ
最新記事
最新コメント
月別アーカイブ
アクセスカウンター