Monthly FB NEWS 月刊FBニュース 月刊FBニュースはアマチュア無線の電子WEBマガジン。ベテランから入門まで、楽しく役立つ情報が満載です。

My Project

第32回 IC-705のワイヤレスリモコン(製作編)

JP3DOI 正木潤一

前号から2回にわたってIC-705をワイヤレスでコントロールするリモコンの製作を紹介しています。

9月号ではシリアル通信に使うBluetoothモジュールについて説明しました。今号では、実際に製作したリモコンを紹介します。


歩きながらHFバンドを運用。『移動運用』ではなく『機動運用』。

リモコンの仕様

仕様の検討とポート割り当て


スイッチとLCDをマイコンに接続して、ブレッドボード上で実際に動作させながら仕様を実装していきます。今回はスイッチを8個も使うので、それらをまとめて蛇の目基板上に実装しました。

まずLCDの表示機能を実装し、それからBluetoothモジュールを接続して、表示通りのCI-Vコマンドが送出されるように機能を実装しました。IC-705の挙動を確認しながらプログラムの実装と修正を繰り返しますが、結構時間の掛かる作業です。

当初はバンド切り替え専用のキーを設けようと思いました。しかし、限られた数のポートに機能を割り当てるうちに、バンド内QSYとSSBでのチューニングのほうが頻繁におこなわれると思い、バンドの切り替えは『ファンクションモード』内でおこなう仕様にしました。その代わり、『ファンクションモード』内の一番最初にバンド切り替え項目を配置したので、他のバンドへの移動も比較的スムーズです。


ブレッドボードに回路を組んでソフトウェアを開発している様子。部品が少ないので開発環境もコンパクト。

キーの配置
このリモコンを左手で操作しながら右手でSPマイクを握って運用することを想定し、片手で操作できる点にこだわりました。2つのキーを同時に押す操作もありますが、キー同士を近づけることで押しやすくしています。ただ、入手できるキー(押しボタン)が小さいものばかりなので、見た目も押し心地もあまり良くないのが残念です。


キーをひし形に並べることで2つのキーを同時に押しやすくしている。

チューニング操作
周波数の変更は押しボタン([UP]キーと[DOWN]キー)でおこないます。

周波数を大きく動かせる[100kHz]キーにより、目的周波数に早く合わせられます。また、[100Hz]キーにより100Hzステップでのチューニングができます。SSBモードで受信する際、復調音を聴きながら合わせられます。

操作方法は、[100kHz]キーを押しながら[UP]/[DOWN]キーを押下すると100kHzステップで周波数送り。[100Hz]キーを押しながら[UP]/[DOWN]キーを押下すると100Hzステップでチューニングします。

各種パラメータを設定する『ファンクションモード』
実装できるキーの数に限りがあるので、パラメータを変えるためのモードを用意しました。無線機によくある『セットモード』です。バンドを切り替えたり、チューニングステップを変更する場合、一旦『ファンクションモード』に入って、[UP]/[DOWN]キーで選択します。ただ、音量のアップ/ダウンは頻繁におこなうため、専用のキーを割り当てました。

『ファンクションモード』で設定できる内容:
・バンド
・モード(バンドごとに記憶)
・チューニングステップ(TS)(バンドごとに記憶)
・送信出力
・スケルチレベル
・マイクゲイン(バンドごとに記憶)

なお、リグのレピーター機能により、レピーター周波数に合わせるだけでD-STARレピーターやFMレピーターにアクセスできます。また、ロック機能をONにしていてもCI-V制御は有効です。IC-705の電源キーを短く押して画面を消しておけば本体の消費電流を抑えられます。

RSSI
前号では言及していませんでしたが、信号強度を見られるように、RSSIを表示できるようにしました。(CI-Vの生データ: 0~255)


画面左下のRSSI値表示。IC-705からはRSSIは“0、1~255”(無信号、弱~強)の値で送られてくる。

実はRSSIの値というのが曲者です。実機のRSSIインジケータを見ると分かるように、電界強度が安定していても常に小さく変動しているため、取得したタイミングによって値がバラツキます。本当は、複数回計った平均値を表示するなどしたほうがよいと思います。

SWR表示
こちらも急遽搭載した機能です。IC-705本体に付けたアンテナを使ったHFやVHF運用を想定しているので、SWRが気になるところです。送信時には画面左下のRSSI表示がSWR表示へと変わります。
※ただし、CI-VデータをSWR値に換算する計算式がよく分からないため、参考値となります。

コントローラーの製作

回路
回路と言っても機能のほとんどをマイコンとBluetoothモジュールが担っているので、必要な部品はごく僅かです。本来はスイッチ入力や通信ラインにプルアップ抵抗が必要ですが、それらもマイコンに内蔵されています。


マイコンのポートを使い果たして機能を実現。高周波の回り込みに配慮する必要も無いため部品は極めて少ない。

LCDの制御とCI-Vコマンドの送出には14ピンのマイコンを使用します。マイコンにはプッシュスイッチ用に8つの入力ポートを、LCDの制御(I2C通信)に2つの出力ポート、そしてCI-Vコマンドの送受信(UART通信)に入力/出力ポートを2つ割り当てます。


今回使用した『PIC16F18325』。4回路入りオペアンプ(クワッド・オペアンプ)と同じ大きさで12本の入出力ポートを持つマイコン。

ディスプレイには16文字×2行のLCDを使います。6月号で使用したものより大きく、表示できる情報量が増えています。


16文字×2行のLCD。大阪日本橋の『シリコンハウス』での取扱い。

組み込み例
タカチのタブレット型プラスチックケースに組み込む例です。LCDはICソケットに挿して取り付けます。ここで紹介するのは1つの例ですので、大きさに余裕のあるケースを使うことをお勧めします。


スイッチを蛇の目基板に付けてあるので、蛇の目基板の穴を目印(テンプレート)に使えば全く同じ間隔で穴を開けられる。

電源
今回はワイヤレスコントローラーのためバッテリーが必要です。使用するBluetoothモジュール(RN42)のデータシートによると、データ送出時に40mA以上(※)流れるそうで、近距離通信の割に電気を喰います。CR2032などのボタン電池ではそれほどの電流が取り出せず、すぐに消耗してしまいそうです。今回私はリチウムポリマー電池(3.7V/260mAh)を使いました。専用の充電器が必要ですが、小型で容量が多く、何度も使えます。もちろん、回路を収納するケースの大きさによっては乾電池などを使ってもよいでしょう。私はできるだけ小さく組みたいので小さなバッテリーを使いました。
※バースト送信のため、連続で流れるわけではありません。


リチウムポリマー電池の例。IC-705のオプション『VS-3』でも使われている。

電源に関する注意点としては、電源電圧によってLCDのコントラストが変わることです。電圧が高いほどコントラストが濃くなり、電圧によっては黒く潰れてしまいます。本当は、マイコンのアナログポートで電源電圧を検出し、それに合わせて自動的にコントラストを調節する仕組みにしたいところですが、すでにポートを使い切っています。そこで、後述のように3.0Vと3.7Vの2種類の電源のソースファイルを用意しました。


電源スイッチにはマグネットスイッチを使用。磁石(左端)を本体側面に近づけると電源が切れる。

プログラムについて
プログラムに少し触れると、各入力ポート(スイッチ)がGNDに落ちたことを検出して、割り当てられた関数を呼び出すのが全体の構成です。そこに、『ファンクションモード』に入っているか? 同時に押されているキーはあるか? という条件で処理を分岐させることで、同じキーに複数の機能を割り当てています。


プログラムのソースコードはこんな感じ。“RA3”や“RA5”が入力ポートで、“Pushed”が“0”。つまり、それらのポートがGNDに落ちているかどうかを調べることを示す。

回路(ハードウェア)と違ってプログラム(ソフトウェア)はこのように開発環境の画面を見てもらわないと、どのように組んでいるか、工夫しているかを分かってもらえません。私はプログラムをできる限り合理的に書いているつもりなので、その点を詳しくご紹介したいのですが。。。(といっても、私はまだまだC言語初心者ですが)

<参考: もう少しだけプログラムのはなし>
第30回の『多機能スピーカーマイク』でも同じですが、プログラムでは『配列(Array)』という概念を多用しています。配列とは変数の一種で、その内容を0番目、1番目、2番目・・・ と、列に並ぶように格納するものです。配列の要素(中身)を示す番号(添え字)を指定することで格納された内容を取り出したり入れたりします。配列は、C言語だけでなくPythonやJava、Visual Basicなどの他言語でも使われます。

配列のメリットは一意の要素(中身)を番号(数字)だけで簡単に参照できる点です。具体的には、イテレート(反復処理)させながら添え字をインクリメント(カウントアップ)させて配列の中身に順にアクセスする用途が多いと思います。

特に、配列の中に配列を入れた『2次元配列』はより多くの要素を格納することができ、やはり番号で内容を参照することができます。ちなみに、配列の中の配列にさらに配列を入れると『3次元配列』となるように、高次元に拡張させることができます。今回のプログラムでは、各バンドごとの設定を記憶させるために2次元配列を使用しています。


使い方(ソフトの仕様)


・[UP]/[DOWN]キーを押すと周波数が選択されたステップでアップ/ダウンします。
・[100kHz]キーを押しながら[UP]/[DOWN]キーを押すと、100kHzステップでアップ/ダウンします。
 離れた周波数に早く合わせられます。
・[100Hz]キーを押しながら[UP]/[DOWN]キーを押すと、100Hzステップでチューニングします。
 SSBモードでの受信に使用します。
・下の3つのキーの両端は音量キーです。
・真ん中は[MONI](モニター)キーで、押すとスケルチを強制的に開きます。(もう一度置くと閉じます)
 送信中に押すとSWRを表示します。
・[FUNC]キーを押すと『ファンクションモード』に切り替わり、[FUNC]キーを押すごとに設定を変更するパラメータが画面右下に表示されます。
・『ファンクションモード』で[UP]/[DOWN]キーを押すと、各パラメータが変わります。

プログラムファイル(.hex)はこちらからダウンロードできます。
IC-705リモコン(3.0V電源用)
IC-705リモコン(3.7V電源用)

PICへの書き込み方については、『第12回 ハードとソフト、両方を取り入れて作る回路 (2017年9月号)』を参照してください(説明動画があります)。

なお、あらかじめリグの『機能設定』メニューでCI-Vアドレスを“86”に設定しておきます。

使用感

機能の実装に時間がかかり、プログラムの完成がギリギリになってしまいました。また、台風による悪天候も重なってまだほとんど実運用(QSO)出来ていません。

前回の『多機能スピーカーマイク』に比べて機能がおよそ倍に増えていますが、プログラムは単純に2倍とはなりませんでした。各機能を呼び出すための仕組みについて改めて検討した結果、プログラムは新規作成になりました。

また、RSSIやSWRを取得するためのシリアルデータ受信プログラムに難儀しました。思えば、『第11回 CI-Vでハンディー機をリモート制御 (2017年8月号)』の記事でも、シリアルデータの受信に手こずりました。シリアルデータ通信の送信は簡単ですが、受信は例外的な場合も含めた処理が必要です。

電源のON/OFF
今回は電源にマグネットスイッチを使っているので、磁石を付けたケースにリモコンを収めるようにしました。使用するときにケースから出すだけで電源が入ります。


フタに磁石を付けたケースを開けると電源ON(左)、閉じるとOFF(右)。

IC-705に内蔵のBluetoothモジュールは、ペアリング済みの端末を見つけると自動的に接続します。電源投入時にペアリング端末を探しますが、見つからなければその後しばらくはデバイスを探さない仕様のようです。つまり、IC-705の電源を入れる前にBluetoothリモコンの電源を入れておくとすぐに繋がります。

リストストラップ
このリモコンは片手で保持して操作します。ふいに落としてしまわないように、ストラップを付けておいたほうが安全かつ便利です。手首からぶら下げておくことで、ログの入力などでペンに持ち替えることも出来ます。


リモコン用ストラップ。携帯電話ストラップにコードストッパーを通して手首にフィットさせる。

アンテナ
せっかく手元でバンドを切り替えられるので、できるだけ多くのバンドに対応したアンテナを使ってマルチバンド運用したいものです。私は米軍の無線機用の広帯域アンテナを使うことにしました。30~512MHzに対応しているという代物です。これで4バンド運用できます。


30~512MHzをカバーする広帯域アンテナ。全長約115cm。耐入力8W。米国Harris社製。(TNC型のため変換コネクターが必要)

アンテナはこれでよいとして、28MHzと50MHzバンドでは筐体アースでは不安があります。そこで数メートルのリード線をラジアル線として取り付け、バッグの中でグルグルと這わせてみたところ、SWRはおおむね2以下となりました。

<参考: マグネットスイッチ>
今回初めてマグネットスイッチを使ってみました。磁石を近づけると「断」するスイッチです。磁石を近づけると導通するタイプもあり、いろいろな用途で使えると思います。

私が初めてこのスイッチを知ったのは、ハムショップで貰った解約済みの携帯電話(デジタルムーバ)を分解した時でした。テンキーを覆うカバー(開くと口元の位置に内蔵マイクが来る)の開閉検出に使われていました。「何かに使える!」と思い、バイブモーターやスピーカーなどの部品と共に取っておいたのですが、長い年月が経った今でも部品箱に残っています。

最後に

今回もほとんどがソフトウェア要素でした。より良いプログラムを考えるのは、部品の最適レイアウトを考えるのと似ていて、ロジックを工夫する楽しみがあります。今回のリモコンはユーザー・インターフェースを含めたソフト設計に頭を悩ませました。それだけ製作を楽しめたということですが、実際の使用を想像して合理的な操作方法を決めるのは難しいことだと分かりました。すなわち、たくさん機能を実装するだけでなく、それらを呼び出すための最適な操作方法も考えなくてはいけません。物理キーとタッチパネルの両方を持つIC-705はとても操作性が良いので、今回のチャレンジはIC-705の操作性をできるだけ落とさずに運用できる仕様を考えることでした。(すべてがボタン操作の時点で程遠いですが・・・)

ただ、「1から手作り」を掲げる本記事としては、出来合いのモジュール(Bluetooth)を使う点は残念でした。まあ、もはや現代のスタンダードということでICと同じ扱いとしましょう。Hi

歩きながらの運用(『移動運用』ならぬ『機動運用』)をするには、HFにも対応するマルチバンドアンテナが必要になります。こういったリモコンが使われ始めることを願うとともに、次はマンパック運用に適した小型HFバンドアンテナの研究や製作が盛んになることに期待します。

このリモコンはとにかく部品が少ないですから、ぜひソースファイルをダウンロードしていただき、作ってみていただきたいと思います。ソースファイルを書き込むにはPICライターが必要ですが、廉価な互換品も手に入ります。

My Project バックナンバー

2022年10月号トップへ戻る

次号は 12月 1日(木) に公開予定

サイトのご利用について

©2024 月刊FBニュース編集部 All Rights Reserved.