1.概要
最近巷ではUSBリレーなるものが人気です。そこで私も一つ購入して遊んでみました。
2.USBリレー
AmazonやAliexpressで販売されている格安中華USBリレーの使い方を研究して、アマチュア無線に使えないか検討してみました。今回私が購入したUSBリレーは中華製で下記のものです。一般的な電子回路用のリレーはDC12Vやそれ以上の駆動電圧が必要なものが多く、USBバスパワー(DC5V)で動くこのリレーは簡単に使えるのがメリットと思います。それでここが一番重要なんだけど、このリレーの良い点はUSBポート経由で送られてくるシリアルデータによって制御できる点です。もちろんシリアルデータだとかプログラムだとかはめんどくさいという方は基板裏のリレーの端子に+5Vを印可すればちゃんとリレーは動作しますから安心してください。
3.USBリレーの使い方
USBリレーとは読んで字のごとくPCのUSBポートに挿してPCから送られてくるコマンド(シリアルデータ)でリレーの開閉を行うというすごくシンプルにして超便利なモジュールです。いろんな種類のUSBリレーが販売されていますしウェブ上に応用例も数多く上がっています。
私が使ったものはLCUS-1というタイプのものでHIDドライバ不要という、、PCのUSBポートに差し込むだけですぐ使えるという優れものです(コントロールICが内蔵されているというだけの話なんですが・・・)。
実際の動作を確認しながらUSBリレーの使い方を解説します。
先ず、USBリレーをPCのUSBポートに差し込むとデバイスマネージャに次のとおり表示されます。
ポート(COMとLPT)にUSB-SERIAL CH340(COM3)と表示されていればPCがUSBリレーを認識しています。
次にソフトウェアで制御するためのプログラムを作成し、PCのWindowsツールの中にあるコマンドプロンプトを立ち上げます。コマンドプロンプトにPCのキーボードから下記のように文字列の入力を行います。
【御参考・・・文字列の説明】
C:\Users\User>python・・・pythonを立ち上げます
import serial・・・シリアル通信を使えるようにするためのモジュールを呼び出すコマンド
s=serial.Serial('COM3',9600)・・・sにserial.Serial(......)を代入(文字sを文字列で定義)
serial.Serial(...,...)・・・デバイス名と通信速度を設定しポートを開けるコマンド
hex_num=........・・・pythonでは16進数の数値や文字列を扱うことが出来る
プレフィックス0xが16進数である事を示している
16進数の文字列がポートから出力されるシリアル通信の信号でリレーのON/OFFが別に定義されている。
通信プロトコルの説明
0xa0・・・起動ロゴ
0x01・・・アドレスコード:最初のスイッチ
0x00・・・off、0x01・・・on
0xa1・・・チェックコード(全ての和)
print・・・文字列や数値を出力するためのコマンド
s.write・・・文字列を書き込むためのコマンド
s.close・・・書き込みを終えて、ファイルを閉じるコマンド
【御参考・・・プログラムの説明】
プログラムの上2/3ぐらいまではUSBリレーの初期状態設定のプログラム(何もしない状態でリレーはオープンの状態維持)
プログラムの下1/3ぐらいはUSBリレーを動作させるためのプログラムで、この部分を実行するとリレーからカチッという音がしてリレーの接点が動くのが分かります(同時にテスター等で導通の確認が出来ます)。
4.まとめ
ソフトウェア無線機のソフトウェアに上記のコマンドを書き足せばソフトウェア無線機からリレーを自由に制御できます・・・送受切り替えやアンテナの切替え等が複雑な電子回路を使わなくても出来ます(USBリレー用のソフトが付いているソフトウェア無線機も市販されています(笑))。
最近気が付いたんだけれども、電子ホビーと言われているロボット、宇宙(キューブサットとその周辺回路や地上管制局)にアマチュア無線・・・アマチュア無線以外は若者でにぎわっているのにアマチュア無線は爺さんばっかり(私もそうですが(笑))、、この違いって案外ソフトウェア開発をやっているかいないかの差じゃないんですかね??
今回これを機にpythonを勉強しなおしました(笑)。上記のようなプログラムを書くだけで1週間かかりました(ほとんど忘れてます笑笑)。