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[384] 12m FT8の状況

ATAS-120Aを使って12m FT8では初めてカザフスタンの局とコンタクトできました。

コンディションが安定していなかったようでドキドキしましたが、QSOは成立しました。

ロシアと異なりカザフスタンとはあまりつながっておらず、再開局してから1年以上経ちますが40mで1回、15mで2回のみです。従って今回で4度めのコンタクトとなります。

ちなみに12mでの伝搬状況は次のとおりです。

アンテナを設置しているベランダは南東向きですのでカザフスタンは反対方向ですが、おそらく反射によってそちらの方にも飛んでいるのだと思います。そう思うと、反対側の部屋では西アジアや欧州方面は安定してQSOができそうで、うらやましいですね。

bookmark_border[383] 南クック諸島との初QSO

最近はHFではSD330アンテナを使うことが多かったのですが、この週末は久しぶりにATAS-120Aを使いました。やはりSD330と比べると大きさも重さも、ひと回りふた回りほどコンパクトな感じがします。それでも性能的にはSD330と遜色無い印象です。

いつもこのアンテナを使うと何か良いことがあるのですが、今回はこれまでコンタクトができていなかった南クック諸島の局とQSOができました。30mバンドのFT8です。結構安定して届いていますね。

またエクアドルやアルゼンチンの局も見えており、何度も呼んでみましたがこちらの方は全くダメでした。でも、何かのんびりしたバンドで良い感じです。

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の関係により最適値を自動設定

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