IM920を使ってみた

皆さんこんにちは!
今回は、インタープラン株式会社様の「IM920」を使ってみました。
IM920は前回紹介したIM920sと同じサブギガ帯の920MHzを用いた無線機です。
IM920はUARTを用いたデータ通信以外にも「接点モード」と呼ばれるモードを持っており、リモコンの様に使うことができます。送信側は「接点入力モード」に設定し、受信側は「接点出力モード」(接点出力モードには何種類か有り、用途によって使い分けます。)に設定します。送信側には押し釦スイッチ、受信側には動かしたい負荷(ランプやモーターなど)の駆動回路を接続すれば、特にマイコンは要りません。
また、IM920はスペクトラム拡散技術を使った長距離モードを持っており10mWと言う小さな出力電力にも関わらず7km(見通し距離)の通信が出来ます。そんなに通信距離は要らないと言う場合でも、通信距離が長くとれると言うことは、短い距離で使っている時には余裕度が高くなると言う事になります。無線機器は周囲の建物や雑音を出す種々の機械に影響を受けます。安定した動作のためには余裕度が高いほうが良いです。
それでも余裕度が高すぎる!と言う人はコマンド設定で電波の強さを小さくできます。10mW出力では約40mAの消費電流がありますが、これを1mW出力にすると大体30mAの消費電流となり、エコになり、電池使用機器の場合は長寿命化に貢献します。電波の出力はコマンド設定により、0.1mWまで小さくする事が出来ます。(10mW、1mW、0.1mWの3段階に設定できます。)
近距離で使うのであれば他の無線機に妨害を与えないようにするためにも出力を下げた方が良いでしょう。
今回はIM920を使ってリモコンの実験を行ってみたいと思います。
前回と同様に説明は、
 ・用意するもの
 ・事前設定
 ・実験
の順に進めて行きます。

準備

1.用意するもの

IM920 2台
手持ちのIM920はワイヤアンテナ付きのものです。

IM920表面
IM920表面
IM920裏面
IM920裏面

IM315 -16SW-RX 2台
リモコンの実験を行うためのスイッチ、表示灯(LED)が実装されているボードです。これが有ると実験がお手軽に出来て非常に便利です。

IM315 -16SW-RX
IM315 -16SW-RX

・DC5~12V ACアダプター 2台
リモコン評価ボードはφ2.1mm、センタープラスのACアダプターに対応していますので、これに適合するプラグを持ったACアダプターを選定して下さい。

ACアダプター(参考)
ACアダプター(参考写真)

・(有ると便利)IM920-USB 1台
単純なリモコンの実験には無くても構いませんが、通信周波数の設定や出力の設定などを行うにはIM920-USBとUSBケーブル、パソコン、通信ソフト(TeraTermなど)が必要です。
IM920-USBはIM315-USB-RX(現在は生産終了)でも代用可です。(下の写真はIM315-USB-RXです。)

IM315-USB-RX表面
IM315-USB-RX表面
IM315-USB-RX裏面
IM315-USB-RX裏面

2.事前設定

2-1.送信側の設定

IM920IM315 -16SW-RXに載せます。

IM315-16SW-RX
IM315-16SW-RXに
IM920搭載済みスイッチボード
IM920を載せる

モード設定とTX/RX切り替えジャンパーの設定(JP1~JP4)
MODE1~3を接点入力モードに、TX/RX切り替えのジャンパーをTX側にセットします。

スイッチボード送信用設定
スイッチボード送信用設定

MODE1~3をH,H,Lに設定し、Tx/Rx設定をTx側にセットします。

2.2受信側の設定
IM920IM315 -16SW-RXに載せ、送信側と同様にモード設定とTX/RX切り替えジャンパーの設定(JP1~JP4)をします。
MODE1~3を接点16出力モード、プッシュ動作に、TX/RX切り替えのジャンパーをRX側にセットします。

スイッチボード受信用設定(プッシュ動作)
スイッチボード受信用設定(プッシュ動作)

MODE1~3をH,L,Hに設定し、Tx/Rx設定をRx側にセットします。

2-3.受信側へのID登録

送信機から送られてきた信号を受信機が受け取っても、その送信機の番号(ID)が受信機に登録されていなければ混信防止のため受信機は動作しません。よって、事前に送信機のIDを受信機に覚えさせる事が必要です。受信機には64台の送信機のIDを登録する事が可能です。
以下に登録の手順を示します。

(1)送信側の電源を入れる
IM315 -16SW-RXの電源スイッチ(SW18)がオフになっていることを確認の上、ACアダプターをJ1に挿してからコンセントに接続し、電源スイッチをオンにします。

(2)受信側の電源を入れる
IM315 -16SW-RXの電源スイッチ(SW18)がオフになっていることを確認の上、ACアダプターをJ1に挿してからコンセントに接続し、「ID REG」のスイッチを押しながら電源スイッチをオンにします。電源が入ると「STATUS」LEDが2回点滅します。
これでID登録モードに入りましたので「ID REG」スイッチから手を離します。

(3)送信機の登録
この状態で送信機から電波を出します。(SW1~SW16のどれかを押します。)
この電波を受信側が受け取ると「STATUS」LEDが3秒間点灯するとともにIDが記憶されます。受信機の電源を切って登録操作完了です。

リモコン送信機の自作
リモコンの実験には送信側と受信側でIM920IM315 -16SW-RXが2台ずつ必要ですが、手持ちでIM920は2台有るものの、IM315 -16SW-RXが1台しか無かったため、送信側の回路を手作りしました。と、言っても丸々IM315 -16SW-RXの回路を作ったわけではなく、4個のスイッチとIM920が載ったものです。IM920本体のコネクタが1.27mmピッチのため、通常の蛇の目基板で作ることは難しいですが、インタープラン様からIM920用コネクタが実装出来、無線モジュールの固定用ネジ穴も付いているユニバーサル基板が販売されています。自作をされる方はこれを利用すると簡単に回路が組めます。また、無線モジュールと組み合わせるコネクタも販売されています。

1.27mmピッチコネクタ実装用ランド付きユニバーサル基板
1.27mmコネクタ実装用ランド付きユニバーサル基板
1.27mmピッチコネクタ
1.27mmピッチコネクタ各種

実験用に製作した送信機の写真を載せます。この送信機は単三型アルカリ電池×2本で動かしています。作った送信機の回路図はコチラ

IM920実験用送信機
IM920実験用送信機

IM920に4個のスイッチを付けた実験用の送信機です。
IM920の下側に並んでいるタクトスイッチは左側から順にIM920のIO1~IO4に接続してあります。上側にあるスイッチはREG端子に接続してありますが、送信機として使う場合は未使用となります。
LEDは左が「STATUS」端子に、右側が「UPDATE」端子に繋がっています。

実験

ここからは実際にIM920を動作させてみましょう。

1.プッシュ動作でのリモコンの実験

スイッチを押すと受信側の該当するLEDが点灯し、離すと消灯します

IO1を押した場合
1番のスイッチを押した場合
IO2を押した場合
2番のスイッチを押した場合

左の写真の様に、送信側の1番(IO1)のスイッチを押すと受信側の1番のLEDが、2番(IO2)のスイッチを押すと2番のLEDが点灯します。プッシュ動作ではスイッチから手を離すとLEDが消えます。(見やすくするためにLED表示部を拡大して写真の右上に載せています。)

スイッチ多重押し
スイッチ4個同時押しの場合

上の例ではスイッチを一つずつ押していますが、複数同時押しをしても正しく動作します。(左の写真ではスイッチ1~4を同時に押しています。)

スイッチを押すと、送信機はどんなデータを出すのか見てみましょう。以下の表は送信機が出したデータを「データ通信モード」に設定した受信機で受信し、TeraTermで時刻付きログを取った物です。(データモードでの使い方はこちら)
データの読み方ですが、生データの角括弧([])内はTeraTermが付加した時刻情報で、実際に受信機が出力しているデータは終わり角括弧(])の後ろからです。受信機から出力されるデータは16進数で表現されています。
最初の1バイトの「00」は送信機のノード番号、続く2バイトの「49BC」は送信機の固有ID番号、その後の1バイト(C9とかCAなど、変化している部分)は受信された電波の強さです。肝心のスイッチ情報はコロン(:)に続く2バイトです。(間にカンマが入っていますが)先頭の1バイトの各ビットにIO1~IO8のスイッチ情報が、次の1バイトの各ビットにIO9~IO16のスイッチ情報が反映されています。最初の表は1番のスイッチを押してから離した時、二番目の表は1番から4番のスイッチ全てを押してから離した時の結果です。1番のスイッチを押した時は先頭の1バイトのスイッチ情報が「01」に、1番から4番のスイッチ全部を押した時は「0F」になって居る事が判ります。今回の実験用送信機ではスイッチをIO1~IO4の4つだけに付けていますので、1バイト目の上側4ビットと2バイト目は常にゼロになっています。

生データスイッチ情報前データとの間隔(秒)状況
[2021-01-27 15:48:07.550] 00,49BC,C9:01,0001,001番SW押下
[2021-01-27 15:48:07.771] 00,49BC,CA:01,0001,000.221
[2021-01-27 15:48:07.970] 00,49BC,CA:01,0001,000.199
[2021-01-27 15:48:08.170] 00,49BC,CA:01,0001,000.200
[2021-01-27 15:48:08.370] 00,49BC,CA:01,0001,000.200
[2021-01-27 15:48:08.590] 00,49BC,CA:01,0001,000.220
[2021-01-27 15:48:08.770] 00,49BC,CA:01,0001,000.180
[2021-01-27 15:48:08.990] 00,49BC,C9:00,0000,000.220SW離す。自動送信
[2021-01-27 15:48:09.190] 00,49BC,C9:00,0000,000.200
[2021-01-27 15:48:09.390] 00,49BC,C9:00,0000,000.200
1番のスイッチを押した場合

生データスイッチ情報前データとの間隔(秒)状況
[2021-01-27 15:48:26.600] 00,49BC,CA:0F,000F,001番~4番SW押下
[2021-01-27 15:48:26.820] 00,49BC,CA:0F,000F,000.220
[2021-01-27 15:48:27.020] 00,49BC,CA:0F,000F,000.200
[2021-01-27 15:48:27.220] 00,49BC,CA:0F,000F,000.200
[2021-01-27 15:48:27.420] 00,49BC,CA:0F,000F,000.200
[2021-01-27 15:48:27.620] 00,49BC,CA:0F,000F,000.200
[2021-01-27 15:48:27.820] 00,49BC,CA:0F,000F,000.200
[2021-01-27 15:48:28.020] 00,49BC,C9:00,0000,000.200SW離す。自動送信
[2021-01-27 15:48:28.240] 00,49BC,C8:00,0000,000.220
[2021-01-27 15:48:28.420] 00,49BC,C8:00,0000,000.180
1番から4番のスイッチを同時に押した場合

スイッチの情報は上で説明した通りですが、電波が受信されている時間間隔(=送信している時間間隔)を見ていただきたいと思います。
スイッチを押している間は200mS間隔で(無線通信速度設定が長距離モードの場合。高速モードの場合は100mS間隔になります。)スイッチ情報を含んだデータが送信され、スイッチを離すとスイッチがオフになった事を伝えるためのデータ(データ「00,00」)が3回自動で送信されています。プッシュ動作の場合、受信機は送られてきたデータ中の「1」が立っているビットに応じたスイッチをオンにします。送信側のスイッチが離されますと、全てのビットが「0」になったデータが送信されますので全てのスイッチがオフになります。測定した時間間隔は、TeraTermのログから計算していますので、若干の誤差はあると思いますが、概ね200mS間隔で送信されている事が確認出来ます。正確に測定するのであれば、スペクトラムアナライザーを使って実際に電波が出ている間隔を測定した方が良いと思います。
上のログで示したように、IM920では「接点モード」で送ったデータを「データモード」で受信する事や、逆に「データモード」で送ったデータを「接点モード」で受信するなど、組み合わせての動作をさせる事も出来ます。この機能を利用すると、送信側にはマイコンを搭載せず、簡単にスイッチで送信し、これを「データモード」で受信してマイコンで処理するとか、マイコンから「データモード」で送信したデータを「接点モード」で受信してマイコンを介さず直接ライトをオンするとか、ヒーターの電源を入れるとかの機器制御に使うことができます。

2.ホールド動作でのリモコンの実験

受信側のIM315 -16SW-RXのモード設定を以下の写真の様に変更すると「接点 16出力モード、ホールド動作」に、なります。送信側は何も変更をする必要は有りません。先のプッシュ動作では、スイッチを押している間だけ受信側がオンしていましたが、ホールド動作では一度スイッチを押すとオン、(一旦スイッチを離してから)もう一度スイッチを押すとオフになります。受信側をホールド動作に設定する方法を以下に示します。

スイッチボード受信用設定(ホールド動作)
スイッチボード受信用設定(ホールド動作)

ホールド動作に設定するには、MODE1~3をH,H,Hに設定し、Tx/Rx設定をRx側にセットします。

ホールド動作での動作例を以下に示します。

IO1を押した時(ホールド動作)
1番のスイッチを押した時
IO1から手を離してもオンになって居る写真
スイッチから手を離した時

ホールド動作では、スイッチを押すと共に出力がオンになり、スイッチから手を離しても出力はオンのままになって居る事がわかります。(もう一度スイッチを押すと出力がオフになります。)

送信側の設定は変更していませんので、送られてくるデータは先の例と同じです。
プッシュ動作では、各スイッチに該当するビットの「1」、「0」が、そのまま信号出力に相当していましたが、ホールド動作では、各ビットの「1」の信号が信号「0」を挟んで交互に来る度に出力が反転します。詳細はIM920ハードウェア取扱説明書/ソフトウェア取扱説明書に記載が有ります。プッシュ動作では、出力をオンさせ続けるには送信機のスイッチを押しっぱなしにする必要がありました。(その間、送信機から電波が出っぱなしになります。)
しかし、ホールド動作ではスイッチを一度押すとオン、もう一度押すとオフとなりますので、長時間出力側をオンにしておく必要がある用途に便利です。ですが、使い方に若干制約があり、受信機側が最後の信号を受信してから次の信号を受信するまでの間に1.5秒以上の時間を空ける必要があります。(送信側のスイッチを離してからオフ信号を3回出しますので、スイッチを離してからだと2秒程度間を空ける必要があります。)
よって、スイッチをオンにして直ぐ切りたいような用途には使えません。プッシュ動作とホールド動作では一長一短がありますので状況に応じて使い分けしてください。

3.通信距離の実験

IM920は通信モードの切り替えが可能で、データレートが50kbpsの高速通信モードと、1.25kbpsの長距離通信モードが選択できます。インタープラン様の資料によると10mWの出力で高速通信モードでは見通し400m、長距離通信モードでは見通し7kmの通信が可能です。私たち技術部門が居る場所と営業部門が居る場所は別々のビルで、直線距離で300mほど有ります。(見通しではなく、間にビルも有ります。)この環境の中で、通信モードや電波の出力を変更して、リモコンモードで使った場合に電波が届くのか、届くのであればどのくらいの出力まで下げても通信が出来るのかを試してみたいと思います。

実験場所の見取り図
実験場所の見取り図

左の絵が実験場所の見取り図です。緑色の枠で示したビルに送信機と受信機を設置し、通信が可能かどうかを試しました。直線距離では300mぐらいですが、間にビルがあり、見通すことは出来ません。また、市街地ですので電気的な雑音も多いと思います。この状態の中で、どのくらいの電力で通信が可能となるのか実験しました。

実験した結果は以下の通りでした。表中の記号の意味は以下のとおりです。
〇:3/3回受信できた場合
△:1/3回又は2/3回受信できた場合
×:3回中1回も受信できなかった場合

モード10mW1mW0.1mW
高速モード×××
長距離モード××
通信実験結果

実験の結果、長距離モードの10mW出力時のみ安定して通信が出来ました。直線距離は約300mなのですが、電波が届き辛い要因があり、左表のような結果になりました。ここで、電波が届き辛かった大きな理由として以下の二つが考えられます。

コンクリート壁での減衰
コンクリート壁での減衰

電波が届き辛かった理由(その1)
お互いが見通しの効かない場所にあった。
→途中に鉄筋コンクリートのビルが建っており、電波が急激に減衰してしまったため。

電波が届き辛かった理由(その2)
今回の実験では、片方のビルは30階、もう一方は4階で実験しました。実験の際は送信側/受信側共にアンテナを垂直に立てていましたが、一般的に垂直型アンテナは水平方向に対しては全方位に指向性(電波の飛びやすさ)を持っていて、移動通信に適しています。しかし、打ち上げ角と言う物を持っていて、地面に対して垂直方向で見ると斜め上に対して電波が良く出るようになっています。(右図)
このため、今回のように階差のあるビルに設置した場合は下図のような事になり、電波が無駄になってしまいます。

垂直型アンテナの指向性
垂直型アンテナの指向性
階差のある実験環境
階差のある実験環境では指向性が合わない

低い方のビルから出た電波は効率的に飛んで行きますが、高いビルに有るアンテナは上空に向かって電波を拾いに行きますので、効率が悪くなります。

ちなみに、今回の実験でも30階に設置した無線機を逆立ちさせると(右図)長距離モードの1mWでも、ほぼ安定して通信が可能でした。
通常の設置方法で実験を行った場合は1mWでの通信は出来ませんでしたが、アンテナの設置方法をきちんと考えれば見通しでは無い場所でも1mWで300m以上の通信が可能である事が判りました。
設置場所が予め判っている場合はアンテナの指向性も考慮の上、取付方法を考える必要があります。”アンテナは上向き”と言う固定観念に囚われず、柔軟に考えましょう。

アンテナの指向性を一致させた図
アンテナの指向性を合わせれば大丈夫

今回の実験では、IM920のリモコンとしての使い方、通信距離の実験を紹介させていただきました。チョットした事であればマイコン不要でお手軽に使う事が出来ます。興味がありましたらご自身で実験なさってください。
無線モジュール.comでは無線モジュールを利用した様々な提案・開発を行っております。是非開発実績もご覧になってください。

前の記事

IM920sを使ってみた

次の記事

IMBLEを使ってみた