Raspberry Pi Zero W で赤外線リモコンの作り方 [Raspberry Pi]
Raspberry Pi Zero Wをamazonで購入した安価なケースに入れて,赤外線リモコンの学習を試してみた。
YAMAHA CDX-10というCDプレーヤーを使っているが,ずいぶん前にそれ用のリモコン(VS34830)を処分していた。
調べたらYAMAHA VQ95010リモコンが代用できるようであり,VQ95010の lirc.conf ファイルなら以下からダウンロードできたので,このファイルからCDプレーヤーにリモコン信号を送ってみたいと考えた。
https://sourceforge.net/p/lirc-remotes/code/ci/master/tree/remotes/yamaha/
そのためLircで試してみたが,結果は,CDプレーヤーは全く反応しなかった。
一方,pigpioを試したところ他のCDプレーヤーやエアコン等のリモコンは学習と発信ができた。
試したことは以下のとおり。Lircの使い方がわからないので,ご覧いただいた方々に助けていただきたい。
赤外線受光モジュール GP1UX511QS
赤外線LED LSIR053
OSのraspbianは現時点(2019年8月)で最新。
pigpio と lirc をインストールする。lirc はOSバージョンによって設定が異なるようだ。
pigpio のインストール
apt install pigpio python3-pigpio
systemctl start pigpiod
GPIO17をoutput,low GPIO18をinput,pull upに設定
echo 'm 17 w w 17 0 m 18 r pud 18 u' > /dev/pigpio
赤外線を受送信するためのプログラムirrp.py.zip をダウンロード
wget http://abyz.me.uk/rpi/pigpio/code/irrp_py.zip
unzip iirp_py.zip
赤外線受光モジュールでリモコンからの信号を学習する。
python3 irrp.py -r -g18 -f yamaha.dat cd:play --no-confirm --post 130
Recording
Press key for 'cd:play' <----リモコンのPlayボタンを押す。
Okay
学習した信号の内容 (JSON)
cat yamaha.dat
{"cd:play": [9052, 4485, 621, 561, 621, 1613, 621, 561, 621, 1613, 621, 1613, 621, 1613, 621, 1613, 621, 561, 621, 1613, 621, 561, 621, 1613, 621, 561, 621, 468, 621, 468, 621, 561, 621, 1613, 621, 561, 621, 468, 621, 468, 621, 1613, 621, 468, 621, 561, 621, 468, 621, 468, 621, 1613, 621, 1613, 621, 1613, 621, 561, 621, 1613, 621, 1613, 621, 1613, 621, 1613, 621, 39910, 9052, 2189, 621, 96124, 9052, 2189, 621, 96124, 9052, 2189, 621]}
同様にいくつかのボタンを学習する。
python3 irrp.py -r -g18 -f yamaha.dat cd:stop --no-confirm --post 130
赤外線LEDから学習した信号を発信する。
python3 irrp.py -p -g17 -f yamaha.dat cd:play
python3 irrp.py -p -g17 -f yamaha.dat cd:stop
赤外線の受送信で動作は確認できた。
Lirc のインストール
apt install lirc
config.txt に以下の2行を追加する。
/boot/config.txt
dtoverlay=gpio-ir,gpio_pin=18
dtoverlay=gpio-ir-tx,gpio_pin=17
lirc_options.confのdriver及びdevice を書き換える。
/etc/lirc/lirc_options.conf
[lircd]
nodaemon = False
driver = default
device = /dev/lirc0
pigpiod は止めておく。
systemctl stop pigpiod
lircd を上記のとおりダウンロードしておいたVQ95010.lircd.conf で起動する。
lircd --driver=default --device=/dev/lirc0 VQ95010.lircd.conf
irsend コマンドで赤外線LEDから発信する。
irsend SEND_ONCE VQ95010 KEY_OPEN
赤外線は発信されているが,CDプレーヤーは無反応。 追記)irsimsendコマンドで出力したVQ95010のリモコンデータをJSONフォーマットに加工して,irrp.py -p での発信でCDプレーヤーが反応した。
VQ95010.lircd.confはこんな内容(抜粋)
# yamaha vq95010 cd player
:
begin remote
name VQ95010
bits 32
:
frequency 38000
begin codes
KEY_OPEN 0x000000009E61807F # Was: OPEN/CLOSE
PROG 0x000000009E6130CF
KEY_TAPE 0x000000009E61EA15 # Was: TAPE
:
以上だが,raspberry で,手元にないYAMAHA CDX-10のリモコンの再現はできなかった。
コメント 0