So-net無料ブログ作成
前の3件 | -

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

今日はダウンロードしたリモコン情報ファイルを使って, 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 で赤外線リモコンの作り方 [IRリモコン]

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 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) 
前の3件 | -