bookmark_border[405] 週末のDX状況

この前の週末はDX中心にFT8を運用しました。前回の週末は全くQRVできなかったため、その反動で当局としては割とアクティブに出たつもりです。

アンテナも土日で変えてみました。23日(土)はATAS-120A、24日(日)はSD330です。DXの状況は下表のとおりです。

成果としては、ウズベキスタンと南極が初のエンティティで、コンファームされることが条件となりますがDXCCが2つ増えました。

欧州方面はやはり東ヨーロッパ止まりですね。その向こう側には中々飛んで行きません。建物を背にした方向で解決は難しいですが、これからも色々と試してみようと思います。

bookmark_border[392] Pythonコーディング難航

SD330コントローラ用ソフトウェアについて、個々の機能は一応準備したつもりでそれを1本のプログラムに纏めようとしていますが難航しています。

各々のボタンが押されたときのイベント処理や変数の取り込み方、引渡し方など、スムーズに実行するには結構ノウハウが必要な様です。

GUIプログラムのループの中で、ボタン押下や周波数入力などのアクションを認識してリレーやNanoVNAを立ち上げ、刻一刻と変わっていくSWR値を取り込んで表示させ、更にその値に応じてリレーを制御するというリアルタイムでの処理を実現するには、Webで紹介されているようなサンプルコードの応用だけでは済まず、まだまだPythonや関連機能に関する勉強が必要であることを感じます。

ただ、この様に具体的にプログラミングを通じて自然とPythonの使い方も覚えてくるので、学習方法としては効率的かなと思っています。

bookmark_border[386] SD330コントローラ用GUI試作

試しにSD330コントローラ(オートチューナ)用のGUIを作ってみました。PythonのTkinterという標準モジュールを使っています。

少し見難いですが、上段と中段はそれぞれFT8/FT4のQRGを並べており、ボタンをクリックするだけでオートチューニング動作に入るように考えています。また下段は周波数を設定してチューニングしたり、UP/DOWNボタンを押してマニュアルでチューニングできるようにしています。NanoVNAのOSC動作を止めるためのボタンも付けました。

なぜかこれを見ているうちにTR-7300を思い出してしまいました。

なお、下段のSWR表示は2以下で「緑」、3以上で「赤」、その間は「黄」になるように色を設定しようと思っています。「赤」では完全にチューニング不能、「黄」ではマニュアル操作でもう少し追い込める可能性あり、「緑」はマニュアル操作不要というイメージです。

最終的にはあまりPC画面上で邪魔をしないようにコンパクトに纏めたいと思いますが、Pythonはインタープリタで動くため、コーディングしながらその都度画面で状態を確認できて便利ですね。

あとはコントローラのメイン部分のプログラミングが残っていますので、また時間をみてコードの勉強をしながら進めていこうと思います。

bookmark_border[378] アルゴリズム再考

SD330の実際の動作が確認できましたので、チューニングのアルゴリズムを再考しました。

① PCにマニュアルで設定周波数(freq_new)を入力し調整開始ボタン押下

② アプリ立ち上げ後に初めて動作させる場合はエレメントを基準点に戻してfreq_oldを30MHzにセット

③ freq_newとfreq_oldを比較
a) freq_new>freq_oldの場合はエレメントを縮める方向に「T1」秒間※リレーON
b) freq_new<freq_oldの場合はエレメントを伸ばす方向に「T2」秒間※リレーON
c) freq_new=freq_oldの場合はその旨をPCに表示しプロセス終了

④ NanoVNAにfreq_newを設定しSWRを測定開始
SWRが2以下になった時点でリレーを停止し調整完了フラグを立てて表示。freq_old = freq_newとしてデータを更新

⑤ SWRが2以下にならない場合はエレメントを基準点に戻してfreq_oldを30MHzにセットし、調整不能フラグを立てて表示

⑥ NanoVNAの動作を停止しプロセス終了

※「T1」「T2」はfreq_oldとfreq_newの関係により最適値を自動設定

なお、④では微調整の動作も必要かも知れませんが、机上で悩むよりも実際に動作させて修正するという形が良いと思います。しかしながら未だコーディングの技術が備わっておらず、この先も時間がかかりそうです。

bookmark_border[377] SD330動作

これまでSD330の動き自体を確認していなかったため、じっくりと観察してみました。

エレメントを最長および最短にしたときの挙動ですが、最長にした状態で更に伸ばそうとするとモータが空回りします。逆に最短にするとモータが停止しますのでそこがベースになるのだと思います。チューニングのアルゴリズムを考える中で、同調が取れていない状態から新たに周波数を設定してチューニング動作に入る場合に一旦エレメントを最短にするか最長にするか悩みましたが、最短にするのが良いことがわかりました。

次に、FT8で使用している周波数に同調させた場合の目盛と、エレメント最短の状態からどれ位の時間がかかるかを測ってみました。

この様に最短部から最長部への所要時間は実測で88秒かかっていますので、80mバンド(72秒地点)からエレメントを伸ばす方向には更に10秒以上の余裕があります。しかし先にはエレメントを伸ばす必要はありませんのでこの部分の動作は余分です。従って、この点からも最短部を基準点とするのが合理的であること理解しました。

下図は周波数、目盛、最短部からの到達時間の相互関係を表したものです。

時間は目盛と時計を見ながら測定したものですので若干バラつきはありますが、リニアの関係にあること確認できました。

上記を踏まえ、チューニング自動化のアルゴリズムを再検討したいと思います。