上野家のホームページ
ナーマル,マリン,ココ
[
新規
|
一覧
|
検索
|
最新
|
ヘルプ
]
PC/RaspberryPi/WEBリモコン/学習リモコンを作る
をテンプレートにして作成
資料室
PC/RaspberryPi/WEBリモコン/学習リモコンを作る をテンプレートにして作成
[
差分
|
バックアップ
|
リロード
]
[ ]
開始行:
* Raspberry Pi Zero WにRPZ-IR-Sensorを使って学習リモコン...
Raspberry Pi Zero Wに,RPZ-IR-Sensorを使って学習リモコン...
手持ちのパーツで自作しても良かったが,今回は,温度,湿度...
#ref("RPZ-IR-Sensor.png",50%)
以前使用していた[[LIRC>http://lirc.org/]]を使って,学習リ...
Raspberry Pi Zero Wには,[[Raspbian Stretch>/PC/Raspberry...
** LIRCのインストール
lircをパッケージを使ってインストールする。
# apt-get install lirc
Raspbian Stretchの新しいものやBusterでは,Kernelが4.19以...
Kernel 4.19以降の場合,デバイスドライバが変更になったので...
受信の問題は,''lircをパッケージでインストールするのでは...
しかし送信の問題は,Kernelのソースコードの修正が必要なた...
受信を改善するためにlircをビルドする場合は,[[kernel4.19...
** LIRCの設定
*** デバイスドライバの設定
LIRCが使用するデバイスドライバーを用意する。
/boot/config.txtを以下のように編集する。~
''/boot/config.txt''
# Uncomment this to enable the lirc-rpi module
dtoverlay=lirc-rpi
dtparam=gpio_out_pin=13
dtparam=gpio_in_pin=4
''Raspbian Stretchの新しいものやBusterではKernelが4.19以...
このため上記の代わりに,/boot/config.txtを以下のように編...
dtoverlay=gpio-ir,gpio_pin=4
dtoverlay=gpio-ir-tx,gpio_pin=13
編集が終わったらRaspberry Pi Zero Wを再起動する。
lsmodでlircモジュールがロードされているか確認する。
$ lsmod | grep lirc
lirc_rpi 8001 2
lirc_dev 8313 1 lirc_rpi
''Kernelが4.19以降では,以下のようになっているか確認する...
$ lsmod | grep gpio_ir
gpio_ir_tx 3569 0
gpio_ir_recv 3095 0
/dev/lirc0が作成されているか確認する。
$ ls -l /dev/lirc*
crw-rw---- 1 root video 243, 0 4月 3 14:55 /dev/lirc0
送受信には,/dev/lirc0が使われる。
''Kernelが4.19以降では,/dev/lirc0,/dev/lirc1が作成され...
$ ls -la /dev/lirc*
crw-rw---- 1 root video 252, 0 8月 2 05:51 /dev/lirc0
crw-rw---- 1 root video 252, 1 8月 2 05:51 /dev/lirc1
''/dev/lirc0が送信用のデバイスで,/dev/lirc1が受信用のデ...
*** LIRC設定ファイルの修正
/etc/lirc/lirc_options.confを以下のように編集する。~
''/etc/lirc/lirc_options.conf''
[lircd]
nodaemon = False
driver = default
device = /dev/lirc0
output = /var/run/lirc/lircd
pidfile = /var/run/lirc/lircd.pid
plugindir = /usr/lib/arm-linux-gnueabihf/lirc/plug...
permission = 666
allow-simulate = No
repeat-max = 600
この設定で,LIRCの送受信にはデフォルトで''/dev/lirc0''を...
kernel 4.19以降では,受信の時(リモコン学習するときなど)...
** リモコン信号の受信の確認
リモコン信号を受信できるかどうか確認してみる。~
lircdデーモンを一旦停止する。
# systemctl stop lircd.service
これしておかないと,mode2(リモコン信号をキャプチャするコ...
リモコンの動作確認をする前に,mode2コマンドのバージョンを...
$ mode2 -v
mode2 0.9.4c
リモコン信号受光部に向けて,適当なリモコンからなんかのボ...
注意:kernel 4.19以降では,デバイスに''/dev/lirc1''を指定...
$ mode2 -d /dev/lirc0
Using driver default on device /dev/lirc0
Trying device: /dev/lirc0
Using device: /dev/lirc0
space 2610664 <--- リモコン受光...
pulse 1202
space 476
pulse 1201
space 452
pulse 368
space 1215
pulse 364
:
このようなメッセージが表示されれば,リモコン信号が受信出...
数字は,一つのパターンの長さ(時間)を表している。
** irrecordでリモコンデータを学習する
リモコンデータを学習するので,デーモンが動いている場合は...
# systemctl stop lircd.service
TVのリモコンを学習してみる。~
注意:kernel 4.19以降では,デバイスに''/dev/lirc1''を指定...
$ irrecord -n -f -d /dev/lirc0
Using raw access on device /dev/lirc0
:
Press RETURN to continue. ...
Checking for ambient light creating too much disturbanc...
Please don't press any buttons, just wait a few seconds...
No significant noise (received 0 bytes)
Enter name of remote (only ascii, no spaces) :TV ...
Using TV.lircd.conf as output filename
Now start pressing buttons on your remote control.
:
Press RETURN now to start recording. ...
:
Please enter the name for the next button (press <ENTER>...
power ...
Now hold down button "power". ...
Please enter the name for the next button (press <ENTER>...
volup ...
Now hold down button "volup". ...
Please enter the name for the next button (press <ENTER>...
voldown ...
Now hold down button "voldown". ...
Please enter the name for the next button (press <ENTER>...
Successfully written config file TV.lircd.conf
このようにして学習したリモコンデータを,/etc/lirc/lircd.c...
$ sudo cp TV.lircd.conf /etc/lirc/lircd.conf.d/
エアコンのリモコンも一応学習できた。
リモコンの定義データを確認する。
$ irsend LIST "" ""
devinput
devinput
TV
のように,devinputが2個表示されたらdevinput.lircd.confフ...
# rm /etc/lirc/lircd.conf.d/devinput.lircd.conf
デーモンをリスタートする。
# systemctl restart lircd.service
** リモコン信号の送信
学習したリモコンデータを使って,なにか送信してみる。
- テレビをつけるデータを送信~
$ irsend SEND_ONCE TV power
うまく送信されれば,TVがONする。この時,リモコン送信中を...
- テレビを切るデータを送信~
$ irsend SEND_ONCE TV power
power信号は,テレビをOn/Offするトグル動作になる。(Onのた...
ちなみに,リモコンデータを数回連続で送信したい場合は,
$ irsend -#3 SEND_ONCE TV volup
のようにする。(#の後に回数を指定する)
Kernel 4.19以降の場合,デバイスドライバの問題で256個以上...
これは,Kernelが修正されないと残念ながら解決できない。
また,この場合,1回irsendしただけだと機器が反応しない事が...
$ irsend -#3 SEND_ONCE TV volup
しょうがないんで,3回ぐらい連続で送ってちゃんと反応するよ...
Kernelを4.14.98に戻した方が良いかも。
終了行:
* Raspberry Pi Zero WにRPZ-IR-Sensorを使って学習リモコン...
Raspberry Pi Zero Wに,RPZ-IR-Sensorを使って学習リモコン...
手持ちのパーツで自作しても良かったが,今回は,温度,湿度...
#ref("RPZ-IR-Sensor.png",50%)
以前使用していた[[LIRC>http://lirc.org/]]を使って,学習リ...
Raspberry Pi Zero Wには,[[Raspbian Stretch>/PC/Raspberry...
** LIRCのインストール
lircをパッケージを使ってインストールする。
# apt-get install lirc
Raspbian Stretchの新しいものやBusterでは,Kernelが4.19以...
Kernel 4.19以降の場合,デバイスドライバが変更になったので...
受信の問題は,''lircをパッケージでインストールするのでは...
しかし送信の問題は,Kernelのソースコードの修正が必要なた...
受信を改善するためにlircをビルドする場合は,[[kernel4.19...
** LIRCの設定
*** デバイスドライバの設定
LIRCが使用するデバイスドライバーを用意する。
/boot/config.txtを以下のように編集する。~
''/boot/config.txt''
# Uncomment this to enable the lirc-rpi module
dtoverlay=lirc-rpi
dtparam=gpio_out_pin=13
dtparam=gpio_in_pin=4
''Raspbian Stretchの新しいものやBusterではKernelが4.19以...
このため上記の代わりに,/boot/config.txtを以下のように編...
dtoverlay=gpio-ir,gpio_pin=4
dtoverlay=gpio-ir-tx,gpio_pin=13
編集が終わったらRaspberry Pi Zero Wを再起動する。
lsmodでlircモジュールがロードされているか確認する。
$ lsmod | grep lirc
lirc_rpi 8001 2
lirc_dev 8313 1 lirc_rpi
''Kernelが4.19以降では,以下のようになっているか確認する...
$ lsmod | grep gpio_ir
gpio_ir_tx 3569 0
gpio_ir_recv 3095 0
/dev/lirc0が作成されているか確認する。
$ ls -l /dev/lirc*
crw-rw---- 1 root video 243, 0 4月 3 14:55 /dev/lirc0
送受信には,/dev/lirc0が使われる。
''Kernelが4.19以降では,/dev/lirc0,/dev/lirc1が作成され...
$ ls -la /dev/lirc*
crw-rw---- 1 root video 252, 0 8月 2 05:51 /dev/lirc0
crw-rw---- 1 root video 252, 1 8月 2 05:51 /dev/lirc1
''/dev/lirc0が送信用のデバイスで,/dev/lirc1が受信用のデ...
*** LIRC設定ファイルの修正
/etc/lirc/lirc_options.confを以下のように編集する。~
''/etc/lirc/lirc_options.conf''
[lircd]
nodaemon = False
driver = default
device = /dev/lirc0
output = /var/run/lirc/lircd
pidfile = /var/run/lirc/lircd.pid
plugindir = /usr/lib/arm-linux-gnueabihf/lirc/plug...
permission = 666
allow-simulate = No
repeat-max = 600
この設定で,LIRCの送受信にはデフォルトで''/dev/lirc0''を...
kernel 4.19以降では,受信の時(リモコン学習するときなど)...
** リモコン信号の受信の確認
リモコン信号を受信できるかどうか確認してみる。~
lircdデーモンを一旦停止する。
# systemctl stop lircd.service
これしておかないと,mode2(リモコン信号をキャプチャするコ...
リモコンの動作確認をする前に,mode2コマンドのバージョンを...
$ mode2 -v
mode2 0.9.4c
リモコン信号受光部に向けて,適当なリモコンからなんかのボ...
注意:kernel 4.19以降では,デバイスに''/dev/lirc1''を指定...
$ mode2 -d /dev/lirc0
Using driver default on device /dev/lirc0
Trying device: /dev/lirc0
Using device: /dev/lirc0
space 2610664 <--- リモコン受光...
pulse 1202
space 476
pulse 1201
space 452
pulse 368
space 1215
pulse 364
:
このようなメッセージが表示されれば,リモコン信号が受信出...
数字は,一つのパターンの長さ(時間)を表している。
** irrecordでリモコンデータを学習する
リモコンデータを学習するので,デーモンが動いている場合は...
# systemctl stop lircd.service
TVのリモコンを学習してみる。~
注意:kernel 4.19以降では,デバイスに''/dev/lirc1''を指定...
$ irrecord -n -f -d /dev/lirc0
Using raw access on device /dev/lirc0
:
Press RETURN to continue. ...
Checking for ambient light creating too much disturbanc...
Please don't press any buttons, just wait a few seconds...
No significant noise (received 0 bytes)
Enter name of remote (only ascii, no spaces) :TV ...
Using TV.lircd.conf as output filename
Now start pressing buttons on your remote control.
:
Press RETURN now to start recording. ...
:
Please enter the name for the next button (press <ENTER>...
power ...
Now hold down button "power". ...
Please enter the name for the next button (press <ENTER>...
volup ...
Now hold down button "volup". ...
Please enter the name for the next button (press <ENTER>...
voldown ...
Now hold down button "voldown". ...
Please enter the name for the next button (press <ENTER>...
Successfully written config file TV.lircd.conf
このようにして学習したリモコンデータを,/etc/lirc/lircd.c...
$ sudo cp TV.lircd.conf /etc/lirc/lircd.conf.d/
エアコンのリモコンも一応学習できた。
リモコンの定義データを確認する。
$ irsend LIST "" ""
devinput
devinput
TV
のように,devinputが2個表示されたらdevinput.lircd.confフ...
# rm /etc/lirc/lircd.conf.d/devinput.lircd.conf
デーモンをリスタートする。
# systemctl restart lircd.service
** リモコン信号の送信
学習したリモコンデータを使って,なにか送信してみる。
- テレビをつけるデータを送信~
$ irsend SEND_ONCE TV power
うまく送信されれば,TVがONする。この時,リモコン送信中を...
- テレビを切るデータを送信~
$ irsend SEND_ONCE TV power
power信号は,テレビをOn/Offするトグル動作になる。(Onのた...
ちなみに,リモコンデータを数回連続で送信したい場合は,
$ irsend -#3 SEND_ONCE TV volup
のようにする。(#の後に回数を指定する)
Kernel 4.19以降の場合,デバイスドライバの問題で256個以上...
これは,Kernelが修正されないと残念ながら解決できない。
また,この場合,1回irsendしただけだと機器が反応しない事が...
$ irsend -#3 SEND_ONCE TV volup
しょうがないんで,3回ぐらい連続で送ってちゃんと反応するよ...
Kernelを4.14.98に戻した方が良いかも。
ページ名:
Counter: 0, today: 0, yesterday: 0
Copyright©2008 Yuji Ueno All Rights Reserved.
ログイン
ユーザ名:
パスワード:
IDとパスワードを記憶
パスワード紛失
メインメニュー
ホーム
でぶlog
資料室
最新ページ一覧
全ページ一覧
ヘルプ
フォーラム
お問い合わせ