よしたく blog

ほぼ週刊で記事を書いています

ラズベリー・パイ専用 学習リモコン基板 ADRSIRの使い方

少し前にラズベリー・パイ専用 学習リモコン基板 ADRSIRを買って色々弄ったので、 今日はADRSIRの使い方をまとめておこうと思います

yoshitaku-jp.hatenablog.com

  1. 物理的な操作編
    1. 赤外線を記憶させる
    2. ボタンからテレビの電源を付ける・消す
  2. プログラムでの操作編
    1. 記憶させている赤外線データを取得する
    2. Pythonからテレビを付ける・消す

1.赤外線を記憶させる

始まりの状態

真ん中のスイッチをLEARN状態に変更して、青いランプが光る。 そして記憶させたいボタンを1回押す 今回は5番ボタンにする

記憶させたいリモコンボタンを押す

緑のランプが光ったら成功!

2. ボタンからテレビの電源を付ける・消す

5番のボタンを押して、テレビのオン・オフをしています。

3. 記憶させている赤外線データを取得する

手順1で5番ボタンに記憶させた、テレビの電源赤外線データを取得してみます。

リモコンいじり放題!!ラズパイ専用 学習リモコン基板で使えるソフトウェア3種詰め合わせ公開 このページからダウンロードが出来るIR-remocon02-commandline.pyを使います。

ダウンロードした資材を /home/pi/に置きます

物理ボタンは1,2,3,4,5,6,7,8,9,10で指定されていますが、 プログラムで指定する場合は0,1,2,3,4,5,6,7,8,9になります。

Python3で

python3 I2C0x52-IR/IR-remocon02-commandline.py r 4 > 5.dat

のコマンドを実行すると、 物理ボタン5に設定した赤外線データを/home/pi/5.datファイルに出力することが出来ます

デフォルトだと、下のような内容のファイルが出来ると思います

3
[8]
memo_no write= [8]
data_num = 50
[133, 0, 67, 0, 18, 0, 16, 0, 19, 0, 50, 0, 18, 0, 16, 0, 18, 0, 18, 0, 18, 0, 16, 0, 18, 0, 18, 0, 18, 0, 17, 0, 18, 0, 17, 0, 18, 0, 17, 0, 18, 0, 17, 0, 18, 0, 17, 0, 18, 0, 17, 0, 17, 0, 19, 0, 17, 0, 51, 0, 18, 0, 16, 0, 19, 0, 16, 0, 19, 0, 16, 0, 19, 0, 16, 0, 19, 0, 16, 0, 18, 0, 18, 0, 18, 0, 16, 0, 19, 0, 16, 0, 19, 0, 16, 0, 19, 0, 50, 0, 18, 0, 50, 0, 18, 0, 16, 0, 19, 0, 16, 0, 19, 0, 50, 0, 18, 0, 17, 0, 18, 0, 17, 0, 18, 0, 17, 0, 18, 0, 17, 0, 18, 0, 17, 0, 18, 0, 17, 0, 17, 0, 18, 0, 18, 0, 51, 0, 17, 0, 17, 0, 17, 0, 19, 0, 17, 0, 51, 0, 17, 0, 17, 0, 18, 0, 51, 0, 18, 0, 16, 0, 19, 0, 16, 0, 19, 0, 16, 0, 19, 0, 16, 0, 19, 0, 16, 0, 18, 0, 51, 0, 18, 0, 50, 0, 18, 0, 66, 5]
8500430012001000130032001200100012001200120010001200120012001100120011001200110012001100120011001200110011001300110033001200100013001000130010001300100013001000120012001200100013001000130010001300320012003200120010001300100013003200120011001200110012001100120011001200110012001100110012001200330011001100110013001100330011001100120033001200100013001000130010001300100013001000120033001200320012004205

必要なのは、配列より後ろの

8500430012001000130032001200100012001200120010001200120012001100120011001200110012001100120011001200110011001300110033001200100013001000130010001300100013001000120012001200100013001000130010001300320012003200120010001300100013003200120011001200110012001100120011001200110012001100110012001200330011001100110013001100330011001100120033001200100013001000130010001300100013001000120033001200320012004205

部分なので、他の部分は削除しても構いません。コマンドを実行すればすぐにとれますしね。

これで、赤外線データを取得することが出来ました。

4. Pythonからテレビを付ける・消す

まずは公式から提供されているプログラムを修正します笑 提供されているものはどう頑張っても動きません

202行目の

write_command(memo_no,block2)

trans_command(memo_no,block2)

に変更します

trans_commandの第二引数のblock2へ

8500430012001000130032001200100012001200120010001200120012001100120011001200110012001100120011001200110011001300110033001200100013001000130010001300100013001000120012001200100013001000130010001300320012003200120010001300100013003200120011001200110012001100120011001200110012001100110012001200330011001100110013001100330011001100120033001200100013001000130010001300100013001000120033001200320012004205

が流れます。

これで、

python3 I2C0x52-IR/IR-remocon02-commandline.py t `cat I2C0x52-IR/5.dat`

を実行すると、テレビの電源がつきます。 もう一回実行すると、テレビの電源が消えます。

まとめ

  • 物理ボタンでテレビをオン・オフしました
  • 赤外線コードを取得しました
  • Pythonからテレビをオン・オフしました

公式のコードに手を加えて、動かすようにしました。 もう少しわかりやすくコードを直して、誰でも使えるようにしたいです。

I2Cがよくわからないなぁ… どうしたらいいんだろ。