Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

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

More than 3 years have passed since last update.

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`

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

minatomirai21
発言は個人の見解
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away