SSブログ

Raspberry Pi Zero W で赤外線リモコン irsimsend コマンド [Raspberry Pi]

今日はダウンロードしたリモコン情報ファイルを使って, raspberry pi 接続の赤外線LEDからリモコン発信ができるようになった。
ただし,その発信を手持ちの学習リモコンで学習して,学習リモコンからCDプレーヤーに発信しても無反応だった。
それで赤外線LEDの出力を強めたりもしたが,なぜか学習リモコンでは成功しなかった。

lirc の irsimsend コマンドで,ダウンロードしたlircd.conf ファイルからリモコンデータをファイル出力できる。

VQ95010.lircd.conf のダウンロード
https://sourceforge.net/p/lirc-remotes/code/ci/master/tree/remotes/yamaha/
VQ95010はヤマハのリモコンの型番。CDX-10も操作できるらしい。  

irsimsend コマンドでVQ95010のKEY_OPEN(CDトレイOPEN/CLOSE)のリモコンデータをファイル出力する。

root@raspberrypi:/home/pi# irsimsend -k KEY_OPEN VQ95010.lircd.conf
KEY_OPEN

root@raspberrypi:/home/pi# cat simsend.out
pulse 8800
space 4400
pulse 550
space 1650
pulse 550
space 550
pulse 550
space 550

エディターで,simsend.out ファイルの数字の部分を取り出して irrp.py が入力できるJSONフォーマットに加工した。

{"yamaha:keyopen": [8800, 4400, 550, 1650, 550, 550, 550, 550, 550, 1650, 550, 1650, 550, 1650, 550, 1650, 550, 550, 550, 550, 550, 1650, 550, 1650, 550, 550, 550, 550, 550, 550, 550, 550, 550, 1650, 550, 1650, 550, 550, 550, 550, 550, 550, 550, 550, 550, 550, 550, 550, 550, 550, 550, 550, 550, 1650, 550, 1650, 550, 1650, 550, 1650, 550, 1650, 550, 1650, 550, 1650, 550, 38500]}

この内容をyamaha.dat ファイルに保存した。

pigpiod を起動して,irrp.py で赤外線を発信するとCDトレイが開いた。

root@raspberrypi:/home/pi# systemctl start pigpiod
root@raspberrypi:/home/pi# python3 irrp.py -p -g17 -f yamaha.dat yamaha:keyopen

このraspberry pi は,前の記事のとおり,lirc と pigpio をインストールしていた。
赤外線送受信プログラムirrp.py も作者のサイトからダウロードした。

昨日の記事:Raspberry Pi Zero W で赤外線リモコンの作り方

CDトレイが開くので赤外線は発信されている。その信号を学習機能付きリモコンで学習できない。 


nice!(0)  コメント(0) 

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) 
共通テーマ:パソコン・インターネット

Raspberry Pi Zero W USB ケーブル直結で USB シリアルコンソールでのセットアップ [Raspberry Pi]

Raspberry Pi Zero W にディスプレイ,キーボード,マウスを接続しない(ヘッドレス)で,USBケーブル1本で接続して USB シリアルコンソールでセットアップ。
ラズパイはこのブログで2011年に書いていた。   
https://royalwin.blog.so-net.ne.jp/2011-05-08

購入は初めてで,本体も昨日届いばかり。  
IMG_20190811_1020012

このチュートリアルページを参照した(以下内容は同じです)。 
https://www.tal.org/tutorials/raspberry-pi-zero-usb-serial-console


セットアップは,サイトからOSをダウンロードしてmicroSDカードに予め書き込みする。SDカード書き込みは,etcherというソフトでWindowsで行った。
https://www.raspberrypi.org/downloads/raspbian/
https://www.balena.io/etcher/

次にLinuxパソコンを使って,作成したSDカードをマウントしてセットアップを行う。SDカードの中にシンボリックリンクを作成しなければならないので,Linuxで行った。
BOOT/config.txt の最後に1行追加して,dwc2 USB controller driverが起動するようにする。

dtoverlay=dwc2

BOOT/cmdline.txtのカーネル起動パラメーターに赤字のとおり,modules-load=dwc2,g_serial を追加する。

dwc_otg.lpm_enable=0 console=serial0,115200 console=tty1 root=PARTUUID=c6dff9c9-02 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait modules-load=dwc2,g_serial quiet splash plymouth.ignore-serial-consoles

ttyGS0を有効にするためにROOT/etc/systemd/system/getty.target.wants ディレクトリに移動して、シンボリックリンクを作成する。

cd /etc/systemd/system/getty.target.wants
ln -s /lib/systemd/system/getty@.service getty@ttyGS0.service

セットアップが済んだ SD カードをRaspberry Pi Zero Wに装着して,パソコンとUSBケーブルで接続するとRaspberry Pi Zero Wが通電し,OSが起動する。
teraterm にシリアルポートが表示されるので,ボーレート 115200, 8, no,1,no で接続するとログインプロンプトが(いきなり)表示された。ブートメッセージは表示されない。

tera1

tera3

tera2

ログインは pi /raspberry

raspi-config で無線LAN接続の設定ができる。

pi@raspberrypi:~$ sudo -s
root@raspberrypi:/home/pi# raspi-config

SSID,パスフレーズを入力して,無線ルータに接続した。

rasp_wifi



nice!(0)  コメント(0) 

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