先ずは、リモコンから出ている赤外線信号を知る必要があります。オシロスコープがあれば波形を見て解読することができますが、残念ながら持っていませんので、TWE-Liteで赤外線信号を受信してデコードするプログラムを作りました。
回路図
赤外線リモコンデコーダ回路図 |
計測方法
赤外線リモコンの信号については、検索すれば山ほど出てくるので説明は省略します。デコードの方式はいろいろありますが、リーダーパルスの幅と、ビットパルスの立下り間隔で見ることにしました。赤外線受光モジュールからの出力をDI2とDI3に同時に接続し、立ち上がりと立下りの各々で発生する割り込みでエッジを検出します。割り込みハンドラの中で、プリスケーラを調整したTIMER2のカウンタ値を読んで記録します。
デコード方法
最初のパルスはリーダーコードなので、幅の違いからフォーマット(NEC/家電協/SONY)を判定します。フレームの間には長めの無信号期間があるので、信号が途絶えたらフレームをデコードします。リーダーコードに続いて、0/1をエンコードしたビットのパルスが続くので、短間隔を0、長間隔を1として判定し、フレーム全体をデコードします。ファームウェア
赤外線リモコンデコーダーのファームウェアは、サンプルアプリのSamp_ContTxをベースにして作りました。ソースコードはgithubに置いてあります。TWE-Liteで動いていますが、親機も子機も無く単体で動作し、電波の送受信は行いません。リモコン信号を受光モジュールに送信して暫く待つと、デコード結果をUARTに表示して、受信待ちに戻るという動作を繰り返します。出力は下記のようになります。
1 2 3 4
cnt=4
type:SONY , bits:20, 88 b4 f0
type:SONY , bits:20, 88 b4 f0
type:SONY , bits:20, 88 b4 f0
type:SONY , bits:20, 88 b4 f0
1 2 3
cnt=3
type:AEHA , bits:40, 34 4a 90 14 84
type:AEHA , bits:40, 34 4a 90 14 84
type:AEHA , bits:40, 34 4a 90 14 84
1 2 3 4 5
cnt=5
type:NEC , bits:32, 6a 95 8e 71
type:NEC(R), bits:0,
type:NEC(R), bits:0,
type:NEC(R), bits:0,
type:NEC(R), bits:0,
ブレッドボードでデバッグ中の赤外線リモコン受信機 |
0 件のコメント:
コメントを投稿