ボクにもわかる |
[IchigoJam メニューへ戻る] | |||||||||
IchigoJamを使った超簡単ワイヤレス通信実験の様子 | ||||||||||
はじめに IchigoJam Uの登場で2台以上のマイコンボードを保有されている方も多いと思います。ここでは、赤外線LEDと赤外線リモコン受信モジュールを使った超簡単な赤外線ワイヤレス通信の実験を紹介します。Wi-FiやBluetoothで通信実験をされている方も一息ついてみませんか? | ||||||||||
ハードウェアの製作@受信側(冒頭の写真の左側)
赤外線リモコン受信モジュールには秋月電子通商で販売されている「GP1UXC41QS(参考価格50円)」を使用しました。3.3Vで動作可能なものであれば、他のモジュールでも動作すると思います。但し、本ページの後ろの方に書かれている実験では結果が異なってしまう場合があります。
モジュールのピン配列は、受光部側(ドームのついている方)を正面にして、左から順に信号出力OUTピン、GNDピン、電源VCCピンです。OUTをIchigoJamのRXD端子に、GNDをIchigoJamのGNDに、VCCをIchigoJamのVCCにそれぞれ接続します。 赤外線リモコン受信モジュール
受信モジュールに接続したジャンパー線を下図のようにIchigoJamに接続します。黄色がOUT信号、黒色がGND、赤色がVCCです。 IchigoJamへの接続
完成したら、電源を入れてコマンド「BPS 300」を実行します。あるいは「10 BPS 300」と入力し、「SAVE 0」で保存しておくと、IchigoJamのタクトスイッチを押しながら電源を入れると自動的に命令を実行してくれます。キーボードを1台しか持っていない場合は、この方法が便利です。
受信側の最小構成は本回路と電源だけです。もしテレビを2台もっていれば、受信文字をテレビに表示できるので実験が分かりやすいです。圧電ブザーを付けても良いでしょう。通信エラーによって文字化けしたコマンドなどによるエラー音を鳴らせます。 | ||||||||||
ハードウェアの製作A送信側(冒頭の写真の右側)
次は送信側のハードウェア製作です。IchigoJam BASICのファームウェアにはVersion 1.1.0以降を用います。予めIchigoJamに書き込んでおいてください。 IchigoJamへの接続(LEDのリード線の長い方をOUT5に接続する)
完成したら動作確認を行うために以下のコマンドを入力します。受信側のIchigoJamのLEDが点灯すれば実験成功です。もし、点灯しない場合は、赤外線LEDと受信モジュールを近距離で対向させて再送信してみて下さい。
追加情報(2020/1/16) 前野 様(Facebook IchigoJam-FANグループ) より
この実験で、少しでもワクワクと感じた方は、もう少し付き合ってください。感動も何もない方は実験終了です。お疲れ様でした。ワイヤレス実験ってこんなものなので、これで嬉しく無ければ、この先も嬉しくないでしょう。 | ||||||||||
ワイヤレス通信のためのサンプルソフトウェア
次に送信側(冒頭の写真の右側)に下記のプログラムをキーボードから入力します。パソコンからシリアルで転送することも可能です。IchigoJamのTXDにはLEDが接続されていますが、RXD側は空いているのでUSBシリアル変換器のTX側をIchigoJamのRXD端子に接続すれば転送することが出来ます。
これは送信側のIchigoJamに接続したキーボードから入力した文字を、受信側に送信するプログラムです。また「!」キー(「Shift」を押しながら「1」)を押すとLEDが点灯または消灯します。 | ||||||||||
ご注意:実験後は必ず電源を切ってください。
この実験ではICに直接、赤外線LEDを接続していますが、本来は電流制限用の抵抗を直列に挿入します。そうしないと、マイコンが壊れるかもしれないし、LEDが壊れたり発熱するかもしれません。場合によっては火災につながる可能性もゼロではありません。このため、実験が終わったら必ず電源を切っておくようにしてください。 | ||||||||||
PWM 5,1,3とは? 副搬送波とは? ASKとは?
ここからは、赤外線通信の仕組みの話です。PWMはIchigoJamから特定の周波数の信号を発生させる命令です。PWM 5,1,3を実行するとOUT5端子に、ON区間10us、OFF区間20usの連続パルス信号を出力し続けます。PWMに続く5がOUT5を、1がON区間のパルス幅10usを3は周期の30usを示します。つまり、OUT端子に33kHzのON/OFF信号が出続けます。これを副搬送波と呼びます。 赤外線LEDの送信(発光)に使用するASK変調の様子
赤外線リモコン受信モジュールは、副搬送波に38kHzのASK変調された赤外線信号を受信し、ASK変調を元に戻す「復調」を行います。IchigoJamの変調は33kHzなので、少し周波数が違っていますが、なんとか受信することが出来ました。 | ||||||||||
CHR$(27,16);とは?
行番号220のCHR$(27,16)は何でしょう。これはプログラムを停止するためのESCコマンドと、それまでに受信したエラーなどの不要文字を削除するための制御文字です。この実験では、送信側のIchigoJamは受信側のIchigoJamの状態が分からないので、受信側のIchigoJamが命令を受け付けるような状態にしてからコマンドを送信します。 | ||||||||||
さぁ実験だ。エラーレート
ワイヤレス通信は失敗します。と、書くとネガティブな気持ちになりますが、ワイヤレスに限らず有線通信であっても距離が離れれば通信エラーが発生しやすくなるという原理に変わりありません。とくに、ワイヤレス通信の場合、使用状態や環境により、通信可能距離が変化しやすいので、通信エラーが発生する条件に至る確率が高くなります。 | ||||||||||
どこまで飛ぶのか
動作確認が出来たら、まずは1mくらい離して実験してみましょう。赤外線LEDと受信モジュールを正確に対向させれば問題なく通信が出来ると思います。ところが、少し傾けると文字化けしたり、通信が出来なくなったりします。 | ||||||||||
光の反射
赤外線は白い紙などで反射する特性があります。1m離した距離で45°の向きなど通信の出来ないことを確認したうえで、白い壁もしくは壁に白いA4用紙を貼って反射させてみましょう。壁の場所や角度によって、受信できる場合があります。 | ||||||||||
よりハイパワーに
「PWM 5,1,3」だと、30usの周期で10usの区間がHレベルになります。もし20usにしたらどうなるのでしょう。計算上のエネルギーは2倍になるので、通信可能な角度や距離が増大します。ただし、受信モジュールによっては副搬送波を捉えにくくなるものもあるので、必ずしも良い結果が出るとは限りません。
| ||||||||||
どうやって使うの
いよいよ応用に取り組んでみましょう。ワイヤレス通信の実用的なプログラムで考慮しなければならないことは、既に、お気づきだと思いますが、通信エラー対策です。通信エラーが起こっても不具合が出ないように設計します。 | ||||||||||
応用例1:超狭域の見えるラジオ
IchigoJamに受信モジュールと液晶を接続し、展示会やIchigoJamファンの集まりで配布する/もしくは製作したものを持参してもらうというアイデアです(ユーザ側の端末)。商品や展示物には送信用LEDつきのIchigoJamをセットしておき、ユーザ端末に商品説明を送信します。 | ||||||||||
応用例2:ワイヤレス認証IDカード
上記の送受信機を入れ替えた場合です。IDの送信機を持ち歩けば展示側に、その人に合わせたデモができそうです。「ようこそ〇〇さん」といった表示だけでも面白いでしょう。また、その展示を見た証拠にもなり、IchigoJam関連展示リストに自動的にチェックしてゆくスタンプラリーのような使い方も出来そうです。 | ||||||||||
応用例3:超小型IchigoJamへのプログラム転送
この受信機はマイコンに直接、立体配線をしたような超小型IchigoJamや、表面実装パッケージを使った超小型IchigoJamプリント基板などのプログラム転送用にも使えそうです。 | ||||||||||
応用例4:双方向通信
以上までの例は片方向通信でした。双方向通信にするには、一工夫必要です。送信中に受信モジュールをOFFにしないと同じデータを受信してしまうからです。また、他の機器からのデータ受信時に自己の送信が被ると受信エラーが発生します。 | ||||||||||
その他
IchigoJamにLEDを追加して送信するというアイデアは先行例(https://fukuno.jig.jp/1042)がありした。先行例との違いは、副搬送波を使用し、より通信距離を伸ばせるようにしたことです。 | ||||||||||
掲載情報について
|