RaspberryPi
赤外線リモコン
ADRSIR

Raspberry Pi と 学習リモコン(ADRSIR)で家電を操作する

Raspberry Pi と 学習リモコン(ADRSIR)で家電を操作する

以前、irMagician でエアコンを操作しようとしたところ、データ容量が大きくてできませんでした。
エアコンが irMagician(赤外線モジュール)で操作できない

他に良い赤外線モジュールがないかと定期的に調査していると、以下の製品を発見しました。
ADRSIR ラズベリー・パイ専用 学習リモコン基板

早速、試してみます。

電源接続

Raspberry Pi の5V、もしくは、USBから給電します。
給電方式は、基板上の電源切替ジャンパピンで切り替えます。
今回はUSBから給電します。
Raspberry Pi のUSBポートと基板のUSBポートを接続します。

赤外線信号の学習

  1. 基板上の記憶/送信モード切替SWでLEARNを選択します
  2. 記憶先の基板上の操作スイッチを押します
  3. リモコンを操作し、赤外線を基盤に照射します

記憶モードの際は、インジケータLEDが青色点灯します。
赤外線を受信した際は、緑色点滅します。

今回は、SW番号1にエアコンの停止を記憶させました。

赤外線信号の送信

  1. 基板上の記憶/送信モード切替スイッチでCONTROLを選択します
  2. 送信したい赤外線が記憶されている操作スイッチを押します

操作スイッチ1を押すと、稼働していたエアコンが停止しました。
irMagician では実現できなかった、エアコン操作もできました。

Raspberry Pi からの操作

基板上に保存されている赤外線データを Raspberry Pi に保存したり、保存したデータから赤外線を照射します。
ビット・トレード・ワンよりスクリプトが公開されていますが、 Raspberry Pi で動作させるには少し修正が必要でした。

参考にさせていただいたサイトは以下です。
ADRSIRのコマンドラインツール IR-remocon02-commandline.pyを使ってみる

スクリプトのダウンロード

ビット・トレード・ワンのサイトに公開されているスクリプト群をダウンロードします。
リモコンいじり放題!!ラズパイ専用 学習リモコン基板で使えるソフトウェア3種詰め合わせ公開 | Bit Trade One, LTD

実際に利用するスクリプトは「IR-remocon02-commandline.py」のみです。

スクリプトの修正

ダウンロードしたまま実行してもエラーとなったり、想定と異なる動作をするため、ソースを修正します。

30行目あたりの空行に下記内容を記載します。

from __future__ import print_function

161行目あたりに記載されてるパスを、スクリプトを保存したパスに変更します。

変更前
dir_name = '/home/pi/I2C0x52-IR/'
変更後(例)
dir_name = '/home/pi/ADRSIR/'

202行目が照射ではなく書き込みになっているので修正します。

変更前
write_command(memo_no,block2)
変更後
trans_command(block2)

ジャンパピンの接続

RSコンポーネンツ製の Raspberry Pi ケースには入らなかったので、必要なジャンパピンだけ接続しました。
ASM-1900036-01 | 拡張ボードケース Raspberry Pi用, ABS樹脂, クリア | DesignSpark 【通販RS】

  1. I2C SDA(pin3)
  2. I2C SCL(pin5)
  3. GPIO 4(pin7)

10個の操作スイッチに記憶されている赤外線データは、以下のGPIO番号から出力されます。
今回は1に保存したため、GPIO 4 を接続します。

スイッチ番号 1 2 3 4 5 6 7 8 9 10
GPIO番号 4 17 27 18 5 6 13 12 22 23

I2Cの有効化

I2Cが無効化されている場合は有効化しておきます。

I2Cデバイスのアドレスの確認

I2Cデバイスとして認識されているか確認します。

$ i2cdetect 1
WARNING! This program can confuse your I2C bus, cause data loss and worse!
I will probe file /dev/i2c-1.
I will probe address range 0x03-0x77.
Continue? [Y/n] y
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          03 04 05 06 07 -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- 52 -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --

認識されているみたい。

赤外線データの保存

基板に保存されている赤外線データを Raspberry Pi に保存します。
「0」と入力している引数は操作スイッチ番号です。SW番号1は0となります。

$ python IR-remocon02-commandline.py r 0 > filename.dat
filename.dat
00001200110012001100120011001100110012001100C20385004400100034001000110011001200110012001100340010001200110012001100120011001100110034001000120011003400100034001000120011003300100034001000340010003400100033001000120011001200110034001000120011001200110012001100110011001200110012001100120011001200110012001100120011003300100012001100340010001200110012001100120011003400100033001000120011001200110012001100120011001200110012001100120011001100110012001100120011001200110012001100120011001200110011001200110011003400100034001000340010001200110033001000120011003400100034001000250584004400100033001000120011001200110012001100340010001200110012001100120011001200100034001000120011003400100034001000120011003300100034001000340010003400100033001000120011001200110034001000120011001200110012001100110011001200110012001100120011001200110012001100120011001200110033001000120011001200110012001100120011003400100012001100110011001200110012001100120011001200110012001100120011001200110012001000120011001200110012001100120011001200110012001100120011001200110012001000340010001200110034001000120011003300110011001100250584004400100034001000120011001200110012001100340010001200100012001100120011001200110034001000120011003300100034001000120011003400100034001000330010003400100034001000120011001200110033001100110011001200110012001100120011001200110012001100120011001200110012001000120011001200110012001100120011001200110012001100120011001200110011001100340010001200110012001100340010001200110012001000340010001200110012001100340010001200110033001000120011003400100012001100120011001200110012001100120011001100110012001100110011001200110012001100120011001200110012001100110011001200110034001000120011003400100012001100120011001100110012001100120011001200110012001100120011001200110012001100110012001100110012001100120011001200110012001100120011003300110033001000120011001200110012001100120011001200110012001100110011001200110012001100120011003400100034001000120011001100110012001100120011001200110012001100120011001200110012001100110012001100110012001100120011001200110012001100120011001200110033001000120011001200110012001100120011001200110034001000330010001200110012001100120011001200110012001100120011001200110011001100120011001200110012001100120011001200110012001100120011001200110011001100120011003400100034001000120011001200110033001000120011004205

赤外線データの照射

Raspberry Pi に保存されているデータをもとに赤外線を照射します。

$ python IR-remocon02-commandline.py t `cat filename.dat`

稼働していたエアコンが停止しました。