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[105] SD330調整用コントローラの製作

SD330付属のスイッチは少し固めのシーソースイッチで、上下バンド間の移動中数十秒間に渡って押し続ける必要があるため、なるべく指への負担を軽くしようとプッシュ式のコントローラを作りました。

1回路2接点(無押下時はCOM-NC間接続、押下時はCOM-NO間接続)のプッシュスイッチを2ヶ準備し、100円ショップで買ったゼムクリップの容器をケースとして利用しました。透明ケースですので内側を黒のアクリル系塗料で着色しています。外側が透明ですので、良い感じの光沢ブラック仕様になりました。

回路はこのような簡単なもので、あくまでマニュアルスイッチとしてSD330付属スイッチの機能を置き換えるものです。

極性は対称のため記載していませんが、二つのスイッチのNC同士、NO同士は必ず同じ極性で接続します。最後にテスターで動作チェックをして完成です。直流のスイッチ回路で単純なためチェックも楽です。

ケースには商品吊り下げ用の穴が開いているため、デスク脇のマグネットフックに吊り下げることにしました。スイッチはクリック感のある軽いタッチのもので吊り下げたまま操作ができ、とても便利です。