ファームウェア・コントロールソフト共にジワジワと進化しています。
とりあえず天球を上下2分して仰角と俯角の表示をつけています。あと影になってるけど、モーターの速度を表すグラフもあります。
他にいくつかのパラメータを設定したり、RTCを設定する機能とか。
TLEの指定はコントロール側にはつけていませんが、ファームウェアでは実装済みで、ターミナルソフトを使えば指定できます。RTCで現在時刻を基準に計算できますが、観測地点はまだべた書きの状態です。TLEと観測地点をコントロール側で指定できるようになれば、最低限使えるようにはなります。
とりあえず仰角と俯角の図は同じ大きさですが、基本的に俯角で使うことはないので、このあたりはもうちょっと工夫したいところ。
あと天球図は色々機能を追加したいです。例えば可視の人工衛星を表示したり、スターカタログを表示したり、それらをクリックして目標に指定できるようにしたり。
ただ今回はスタンドアロンで動くことを主目的としているので、PC側のソフトばっかり強化するのもなぁ、と思っています。ま、結局メイン機材はWebカメラなので、PCは必須になるんですけども。
前回作った時は、マイコンはステップ位置を受け取ってモーターをその位置に指向するだけの機能でした。それ以外の計算はすべてPCで処理していたので、自然な流れでコントロールソフトが肥大化していきました(プラグインとして実装して、TLEやスターカタログ、ADS-Bをデータソースとして使えるようになりました)。ただ、そのときはSTM32F1の84MHzだったので、あまり凝ったファームウェアは動かないだろう、という予想があったので、PCメインとしました。
今回はSTM32F4の上でC++で書いているので、ある程度複雑な処理も可能になっています(フルスペックのC++じゃないので、制限も大きいですが。new deleteが使えないとか)。自前で計算できるので、TLEやスターカタログなら(データの読み込みを別にすれば)スタンドアロンで処理できます。一方で、ADS-BはPCのサポートが必要になりますし、満足なUIを作るにはやはりPCで作るのが楽でしょう。
そういえば、Cortex-M4FのSTM32F4とはいえ、実際はdoubleのソフトウェア演算ですから、実質的にはSTM32F1との違いはクロック周波数だけのはずです。で、衛星位置の計算が1msec未満ですから、F1でも2msecで計算できるはずです。ということは、STM32F1でも十分にスタンドアロンで衛星を追尾できそうですね。
開発環境は4k液晶ですが、実運用のときはノートPCを使う予定で、画面解像度は1280x800です。なので、制御ソフトもその大きさで足りるように作る必要があります。今の制御ソフトがだいたいそれくらいの大きさなので、コレ以上は大きくできません。
パラメータ画面とか、目標選択画面とか、タブにわけるにしても、かなり狭い気がします。天球を表示してスターカタログとか衛星をクリックできるようにするには、かなり心もとない解像度ですね。
例えば初期のイージス艦は、おそらく低解像度なブラウン管の見づらい画面なわけですが、その画面でも最大で200個程度のターゲットが表示される想定のはずで、そういったときに必要な情報を表示できるようなインターフェースというのが作られているはずです。高度や速度の情報を含め、脅威度の推定とかも適切に表示できているはずですが、どうやってるのかなぁ。
もっとも、その表示がうまくできなくて民間人およそ300人の犠牲が発生してしまった、といえるのかもしれませんが。実際、当該機が上昇しているにも関わらず、それを監視していた乗員は降下していると判断した瞬間がありました。ということは、その時点でのイージス艦では、そのあたりの情報は人間が判断しづらい表示だったということでしょう。
とりあえず、実際に運用に入るのは暖かい季節になってからですから、しばらく時間があります。その間にいろいろと考えてみようと思います。
0 件のコメント:
コメントを投稿