Adafruitの315MHz微弱無線モジュールに続いて、今度はSparkFunの赤外線コントロールキットを買ってみた。
IR Control Kit Retail – RTL-11761 – SparkFun Electronics
https://www.sparkfun.com/products/11761
赤外線コントロールキットの内容
キットの内容は以下の通り。
- 赤外リモコン 完成品 (1個)
- 赤外線リモコン用 ボタン電池 CR2025 (1個)
- 赤外線レシーバーモジュール TSOP38238 三端子 (2個)
- 赤外線LED (2個)
- 330オーム抵抗 (25本)
赤外線リモコンには9個のボタンがあり、それぞれ異なる4バイトのデータを送信する。レシーバーが38KHzの赤外線シグナルを受信してパルスに複合化し、それをマイコンで読み取ればどのボタンが押されたかを識別できる。赤外線LEDも付属しているので、自前で赤外線発信機を作ることもできそうだ。
公式チュートリアルをなぞってみる
とりあえずはSparkFunのサイトに載っているチュートリアルをなぞって、赤外線レシーバーを繋いだArduinoを赤外線リモコンからコントロールしてみる。
IR Control Kit Hookup Guide – Learn.SFE
https://learn.sparkfun.com/tutorials/ir-control-kit-hookup-guide/example-1-using-the-remote
Arduinoへの結線は、赤外線レシーバーとリモコンのA/B/Cボタンに割り当てるLEDのみ。チュートリアルではフルカラーLEDを1個だけ使っているが、僕はフルカラーLEDを持っていないので3個のLEDで代用。Arduino側の赤外線シグナルの処理はKen Shirriff氏が公開しているIRemoteライブラリのお世話になった。
shirriff/Arduino-IRremote · GitHub
https://github.com/shirriff/Arduino-IRremote
SparkFunのサンプルプログラムをコピーしてコンパイルし、Arduinoへ焼き込む。
チュートリアルとは違ったLEDを使ったのでLEDの明るさの変化は若干違うものの、総じて期待通りに動作することを確認。Arduinoのシリアルモニターを開いておくと、ArduinoからPC側にシリアルで上がってくる状態メッセージを表示できる。リモコンから放射される赤外線はいい感じに拡散されるようで、距離にも因るだろうけどリモコンがレシーバーと直角方向を向いていても受信に問題は無し。LEDの代わりにリレーモジュールを接続すれば100V機器の制御も可能だろう。
SparkFunのサイトには、もう1つのチュートリアルとして、家電などの赤外線リモコンの信号を中継するサンプルも用意されている。テレビなどの家電製品のリモコンデータを解析するのは面白そうだし、C言語で簡単にArduinoをプログラムできるのも楽しい。できれば時間を作っていろいろ遊んでみたい。