赤外線リモコン受光モジュールでシリアル通信

お金を掛けずに赤外線通信したい

赤外線を使ってシリアルデータを送る方法としてはIrDA用のモジュールを使う方法がありますが、専用の受光モジュールはちょっと高くて気軽に手を出せない感じ。しかも、IrDAよく分からない。

IrDA赤外線通信トランシーバ・モジュールRPM851A(2個入)

一方、赤外線リモコンの受光モジュールは結構安く売られています。(今回の実験につかったPL-IRM-2161-C438は、秋月電子のカタログから消えてしまいました…)

赤外線リモコン受信モジュール PL-IRM2161-XD1

実験してみる

今回は、この赤外線リモコンの受光モジュールを使って実際にシリアル通信が行えるかどうか、実験してみました。

全体の構成はこんな感じ。送信部、受信部はそれぞれUSBシリアル変換器経由でPCに接続されています。PCからは2つのシリアルポートに見えます。

PC(COM3)→USBシリアル→AVR(32KHz変調)→赤外線LED→→→ 受信モジュール→USBシリアル→PC(COM2)

受信部は、赤外線受光モジュール(PL-IRM-2161-C438)の出力にUSBシリアル変換器のRxDを直接つないでいます。

送信部は、USBシリアル変換器のTxDの信号にAVRマイコンを使って38KHzの変調を掛け、それを赤外線LEDに出力しています。

プロジェクトファイルはこちら(AVR Studio):irtrans.zip

ソースだけみたい人はこちら:irtrans.c

全体

赤外線受光モジュールの「PL-IRM-2161-C438」。秋月電子で2個100円でした。GND-VCC間に0.1uFのパスコンを挟んでます。この、「Vout」を直接シリアルのRxDにつなぎ込みます。

PL-IRM-2161-C438

送信部。電流アップ実験のために複数のポートを束ねてます。TxDに32KHzで変調を掛けられさえすればいいので、AVRマイコン使わずにNE555とかでもいいかも。赤外線LEDは、ごく普通のタイプです。秋月電子で5個100円でした。秋月電子大好き!

送信部

通信できた!

通信速度4,800bpsで受信してみます。ちゃんと通信できた!

4800bpsのとき

赤外線LEDの波形(上)と、受光モジュールの波形(下)を比較。これは、通信速度2,400bpsのときの波形です。おおよそ、200us遅延してますね。

2400bps波形

受光モジュールのデータシートではパルス幅Twl、Twhは600us(typ)と書かれています。そもそも赤外線リモコンの信号とは違うので保証外の使い方ですが、趣味で使うということで結果オーライです。(参考:ELM – 赤外線リモコンの通信フォーマット概要)

PL-IRM2161-C438

もうちょっと見てみましょう。通信速度2,400bpsのときの受光モジュールの波形を重ねて表示してみました。色が薄いところが信号のブレです。許容範囲ですね。

2400bps波形

こっちは、通信速度4,800bpsのとき波形。若干ブレてますね。上の実験ではちゃんと受信できてたけど、受信側によってはアウトかもしれない。

4800bps波形

ちなみに、9,600bpsだと、波形がくずれて受信できませんでした。しょんぼり…

9600bpsのとき

まとめ

赤外線リモコンの受光モジュールでも、低速ならシリアル通信出来ることがわかりました。もちろん、モジュールの種類でも結果が変わってくると思いますが、趣味の範疇なら問題なさそうです。

実際に使う場合は、蛍光灯のノイズや他のリモコン、障害物の影響等を考慮して、受信データのエラーチェックが必要になると思います。

応用編

今回の元ネタは、去年のMake Fair Tokyo 2012用に作った「ちっちゃい掲示板(写真)」です。

PCから文字のデータを赤外線で縦16ドットずつ送って、それを赤外線受光モジュールで受信してマトリクスLEDに文字をスクロール表示しています。送信データにはチェックサムを付けて、受信時にチェックサムが合わなかった場合(データ受信に失敗している場合)はデータを読み捨てる処理を入れています。

YouTube Preview Image

PC側のソフト。

掲示板データ送信ソフト

こんな感じで、マイコンのUARTを使った部分をちょっとワイヤレス化したいときに、赤外線のリモコン受光モジュールを使うとお手軽で良いのかなぁ、と思いました。

コメントを残す

メールアドレスが公開されることはありません。