SSブログ

Raspberry Pi Zero W で赤外線リモコンの作り方 [Raspberry Pi]

Raspberry Pi Zero Wをamazonで購入した安価なケースに入れて,赤外線リモコンの学習を試してみた。

IMG_20190815_154500

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

pptx647_電子部品のイラスト

OSのraspbianは現時点(2019年8月)で最新。
pigpio と lirc をインストールする。lirc はOSバージョンによって設定が異なるようだ。

pigpio のインストールSmile

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 のインストールSmile

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のリモコンの再現はできなかった。


nice!(0)  コメント(0) 
共通テーマ:パソコン・インターネット

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

Facebook コメント

Raspberry Pi Zero W ..Raspberry Pi Zero W .. ブログトップ

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。