TVの赤外線リモコンを用いた制御

作製していた自動掃除機に、赤外線受信機能を追加しまして、 TVのリモコンで制御できるようにいたしました。

Updated on Aug. 8, 2010.
動作状況の動画(YouTube)
TVのリモコンで制御している様子です。 途中で音量ボタンの↑により、速度が増しているのが分かります。
A hand-made model car controlled by a TV channel changer.
The direction and speed are changable by the buttons.

TV用リモコンにより制御したモデルカー
アルドゥイーノ、田宮ギヤボックス、マブチモータ使用。
アナログ回路はTA7291Pを用いて自作。

赤外線信号の解析

赤外線の信号の詳細については以前の赤外線信号の解析に記載があります。 まずは赤外線リモコンからの信号を 読み取ってみます。 例えばCH2のボタンは「00000010111111010100000010111111」です。 これは8bitが4つつながった信号と見ることができて、

1st byte: 00000010
2nd byte: 11111101
3rd byte: 01000000
4th byte: 10111111

のようにあらわされます。 以前にも検証しましたが、最初の1byteが機器番号に対応し、 確認用に反転させたものが次の2 byteめに送られます。 3byte目がCH2に対応する値で01000000ですから「64」の数字を読み取ったら CH2であることがわかります。最後の8ビット(4th byte)は3番目の反転で 128+32+16+8+4+2+1=「191」の数値となっています。 リモコン信号の読み取りでは誤作動を防ぐために、 3バイト目と4バイト目の信号の和が「255」になっていることを 確認すれば良いことがわかります。 今回はリモコンに上下左右と「決定」のボタンがありましたので ぞれぞれを前進、後退、左回転、右回転、停止、に割り当てました。 スピードを調整するために音量ボタンを使うことにいたしました。 それぞれの信号は以下の通りです。

go forward 124
turn left 250
turn right 218
go backward 252
stop 188
speed up 88
speed down 120

赤外線受信部

赤外線を受信するセンサー回路の作製は以前に記述したとおりですが Arduinoと同じところから電源を取る時には注意が必要です。 電源のノイズによる誤作動が生じやすいため、 電源部に容量が大きい平滑コンデンサを入れるとよいと思います。 赤外線リモコン受信モジュール データシートではR=100Ω、C=22uFのRCフィルターを取り付けることが 推奨されています。

プログラム

最後に、制御のためのArduinoのスケッチを示します。 メインのプログラムに対応するloop()部分は赤外線からの 信号を繰り返し読んでいるだけです。ここで4バイト分の情報を 読んで、3バイト目と4バイト目の情報が反転していることをチェックして 正しい信号がどうかを判断します。この入力に基づいて、DecideMotion()で マシンの動く方向を変えます。 全体のコードはここからコピーしてください。 コーディングはほとんど練っていませんので、 不必要な部分がたくさん残っていると思います。 ご自由に改変してご使用ください。


広告
自動掃除機と言えば、アレですね。
戸田システムウェア

ここで公開するアイデア/装置は安全性を保障しておりません。 用途に応じた設計を行い、十分な安全検査を行ってからご利用ください。 本サイトの情報の営利目的での利用はご遠慮ください。 本サイトの内容の無断転載を禁じます。© 2010 TYK