HOME
  Security
   Software
    Hardware
  
FPGA
  CPU
   Android
    Raspberry Pi
  
nLite
  Xcode
   etc.
    ALL
  
LINK
BACK
 

2017/09/04

Raspberry Pi Raspbian Stretchで LIRC機能を使った学習リモコン、赤外線リモコンを動かす方法 Raspberry Pi Raspbian Stretchで LIRC機能を使った学習リモコン、赤外線リモコンを動かす方法

(ラズパイ Stretchで赤外線リモコンの制御アプリ LIRC 0.9.4cの設定方法、Ir LED)

Tags: [Raspberry Pi], [電子工作]





● Raspberry Pi 3 Model Bを遂に購入

 Raspberry Pi3 Model B RPI2 RPI3

 大人気の CPUボードの Raspberry Piに WiFiと Bluetoothが搭載されたモデルが新発売となりました。
 以前から Raspberry Pi 2を買おうかどうか迷っていましたが、Raspberry Pi 3 Model Bの発売を機に購入を決意してラズベリアンになる事にしました。

 ※ ラズパイの OS Raspbianはバージョンが上がる毎に過去の版と OSの内部の作りが変わり、過去に書かれた製作記事(例えば Raspbian Wheezyの時代の記事)がそのままではエラーが出たりして動かない事が有ります。
 ※ 当方のホームページのラズパイ記事は全て Raspberry Pi 3 Model Bと Raspbian Jessieの組み合わせで動作確認をしております。
(ただし、将来的に新しい Raspbian OSが出た場合に、当方の Raspbian Jessieを基にした内容がそのままでは動かない可能性が有ります。)
 ※ 2017/08/16から Raspbian OSは Raspbian Jessieから Raspbian Stretchに変わりました。
 ※ 2019/06/20から Raspbian OSは Raspbian Stretchから Raspbian Busterに変わりました。

Download Raspbian for Raspberry Pi

ちなみに、歴代のバージョンと名称は
Debianコードネーム年月備考(参考)Ubuntuでの該当名称
Debian 11Bullseye2021/08/14~2021/11からラズパイにリリースFocal Fossa 20.04 LTS ?
Debian 10Buster2019/06/20~2019/06からラズパイ4対応Bionic 18.04 LTS
Debian 9Stretch2017/08/16~2018/03からラズパイ3B+対応Xenial 16.04 LTS
Debian 8Jessie2015~2016/02からラズパイ3対応Trusty 14.04 LTS
Debian 7Wheezy2013~2016
Debian 6.0Squeeze2011~2014
Debian GNU/Linux 5.0Lenny2009~2012


●ラズパイで LIRC 赤外線リモコンの受信と送信(学習リモコン、リモコン機器を制御)

 検索で出てくる他のラズパイ記事で「LIRCはあきらめましょう」と有りますが、私の環境ではラズパイ3と Raspbian Jessieの組み合わせで LIRCを無事に動かせました。

 と、言っていたら 2017/08には Jessieの次のバージョンの Stretchが出てきました。
 と言う訳で、Raspbian Stretch(2017/09/05版)で赤外線学習リモコン LIRCを動かす記事です。

Debian JP Project - リリース情報


● Raspbian Jessie 2017/07最終版で LIRCを使って学習リモコン、赤外線リモコンを送受信する方法

 下記にまとめました。

2017/09/04
Raspberry Pi Raspbian Jessie 2017-07最終版で LIRCを使って学習リモコン、赤外線リモコンを送受信する方法
Raspberry Pi Raspbian Jessie 2017-07最終版で LIRCを使って学習リモコン、赤外線リモコンを送受信する方法

  ラズパイ3 Jessieで赤外線受信センサと IR LEDで赤外線リモコン信号を送受信して家電等の外部機器を制御する方法


 当初 Raspbian Stretchでインストールされる lircd-0.9.4cの設定方法が悪く赤外線を受信できても送信できませんでしたが、この度、解決方法が見つかりました。

$ uname -a
Linux raspberrypi 4.9.41-v7+ #1023 SMP Tue Aug 8 16:00:15 BST 2017 armv7l GNU/Linux

$ lsb_release -a
No LSB modules are available.
Distributor ID: Raspbian
Description:    Raspbian GNU/Linux 9.1 (stretch)
Release:        9.1
Codename:       stretch


● What is LIRC ?

 LIRC is a package that allows you to decode and send infra-red signals of many (but not all) commonly used remote controls.

 LIRC(Linuxの赤外線リモコンは、Linuxの赤外線リモコン)は、オープンソースのスイートです。このキットには、お使いのLinuxシステムは、赤外線信号を送受信する事ができます。

IRSEND - LIRC - Linux Infrared Remote Control

赤外線リモコン受信モジュールOSRB38C9AA(2個入) OSRB38C9AA
5mm赤外線LED OSI5LA5113A (10個入) OSI5LA5113A

・5mm 赤外線LED OSI5LA5113A
 ・順方向電圧(VF):1.35V(標準)(@100mA)
 ・ピーク波長:940nm
 ・放射強度:55mW/sr
 ・半減角:15°

・赤外線リモコン受信モジュールOSRB38C9AA
 ・電源電圧範囲:DC2.7V~DC5.5V
 ・中心周波数:37.9kHz
 ・ピーク感度波長:940nm

 赤外線 LEDの電流制限抵抗は 330Ωで、その場合の LEDの駆動電流は 6mAです。
 OSI5LA5113Aの標準駆動電流は 50mAですが、6mAでもリモコン機器の制御が可能でした。ただし、赤外線LED光の拡散範囲が半減角 15度と狭く、指向性が高いので、10cm程度の至近距離まで近付ける必要が有りました。(角度が合えばもう少し距離を離せるかも。)
 電流制限抵抗を 240Ωにすると LEDの駆動電流は 8mAになります。
 (ラズパイの GPIOの絶対最大定格は 16mAなので注意)

 ※ 赤外線 LEDを 50mAで駆動する場合はトランジスタ等の回路が必要になります。単純に電流制限抵抗を 47Ω(計算値 41mA駆動)にして GPIOに接続すると絶対最大定格の 16mAを超えるのでラズパイを破壊します。電流の計算式 (3.3-1.35)/47=41mA

 ※ 赤外線 LEDの点灯確認方法としてはデジカメの液晶モニタやスマホをカメラモードにして画面を見る方法が有ります。テレビ等のリモコンの送信部分を見てみると良くわかります。(赤外線は可視光線ではないので肉眼での点灯確認はできません。)

・Raspberry Pi3の GPIO端子の LIRC機能を有効化して リモコン送受信をしてみるテスト
Raspberry Pi3の GPIO端子の LIRC機能を有効化して リモコン送受信をしてみるテスト
 赤い線はラズパイの +3.3Vに接続します。
 GPIO17 出力 リモコン送信(負論理)
 GPIO18 入力 リモコン受信
 ※ リモコン送信側の LEDの論理が負論理の場合は invert=onを付ける。
dtoverlay=lirc-rpi:gpio_out_pin=17,gpio_in_pin=18,gpio_in_pull=up,invert=on

・Raspberry Pi3の GPIO端子の LIRC機能を有効化して リモコン送受信をしてみるテスト
Raspberry Pi3の GPIO端子の LIRC機能を有効化して リモコン送受信をしてみるテスト
 赤い線はラズパイの +3.3Vに接続します。
 GPIO17 出力 リモコン送信(負論理)
 GPIO18 入力 リモコン受信
 ※ リモコン送信側の LEDの論理が負論理の場合は invert=onを付ける。
dtoverlay=lirc-rpi:gpio_out_pin=17,gpio_in_pin=18,gpio_in_pull=up,invert=on

・Raspberry Pi3の GPIO端子の LIRC機能を有効化して リモコン送受信をしてみるテスト
Raspberry Pi3の GPIO端子の LIRC機能を有効化して リモコン送受信をしてみるテスト


・Raspberry Pi3の GPIO端子の LIRC機能を有効化して リモコン送受信をしてみるテスト
Raspberry Pi3の GPIO端子の LIRC機能を有効化して リモコン送受信をしてみるテスト
 ※ 330Ωの抵抗が無かったので 1kΩの抵抗を 3本並列に接続している。

※ Fritzingで Jpeg画像を入れる方法、Breadboard Imageを配置して load image fileする。


● 赤外線 LEDをトランジスタで駆動する場合の実体配線図

・Raspberry Pi3の GPIO端子の LIRC機能を有効化して リモコン送受信をしてみるテスト
Raspberry Pi3の GPIO端子の LIRC機能を有効化して リモコン送受信をしてみるテスト
 赤い線はラズパイの +3.3Vに接続します。
 図中の NPNトランジスタは ECB配列です。(EBC配列の場合はピン配置を読み替えてください。)
 電流制限抵抗に 47Ωを使用して赤外線 LEDを 41mAで駆動しています。電流の計算式 (3.3-1.35)/47=41mA
 GPIO17 出力 リモコン送信(正論理)
 GPIO18 入力 リモコン受信
dtoverlay=lirc-rpi:gpio_out_pin=17,gpio_in_pin=18,gpio_in_pull=up


●秋葉原の秋月に行けない場合はこちら


SODIAL(R)10pcs 5mm赤外線IR LED発光ダイオード


ASIN: B00JGFF2SA

SODIAL(R) 10枚8mmLED IR赤外線LEDライト


ASIN: B00SSLSVI6

uxcell IR赤外線LED 5MM 940nm 起動放射 ダイオード ランプ発光 ウォータークリア 20枚


ASIN: B016UFGBGA

uxcell 赤外線リモコン受光モジュール 赤外線受信モジュール 受信距離18M 10 Pcs


ASIN: B016DA2FIK

SODIAL(R)10個受信距離15M赤外線VS838 IRレシーバモジュールブラック


ASIN: B00ZE9UKL6

10pcs VS1838 TL1838 VS1838B赤外線 ヘッド リモコン 受光部 受信機


ASIN: B00FR2UAXI

シリコントランジスター 2SC1815-BL 10個


ASIN: B00J1N1X94

※ NPNトランジスタのピン配列を「エクボ」で覚えているので、ECB配列の 2SC1815をピックアップしています。
※ S8050、SS8050、2N5551はピン配列が EBCなので要注意!

抵抗キット1/4W (20種計500本入り)


ASIN: B00C5WMW7U

○内容
・0Ω, 1.5Ω, 4.7Ω, 10Ω, 47Ω
・100Ω, 220Ω, 330Ω, 470Ω, 680Ω
・1kΩ, 2.2kΩ, 3.3kΩ, 4.7kΩ, 10kΩ
・22kΩ, 47kΩ, 100kΩ, 330kΩ, 1MΩ
これらが25本ずつ入っています。

【PLOVER】 カーボン抵抗 炭素皮膜抵抗 1/4W(0.25W) 許容差±5% オリジナルセット 1Ω~1MΩ 37種類 各20個(合計740個) ユニバーサル基板付き PR-203


ASIN: B00BS49VKC

カーボン抵抗(炭素皮膜抵抗) 1/4W(0.25W) 許容差±5% 37種類 各20個セット
抵抗値: 1Ω, 10Ω, 20Ω, 30Ω, 47Ω, 51Ω, 68Ω, 75Ω, 100Ω, 200Ω, 300Ω, 360Ω, 470Ω, 510Ω, 680Ω, 750Ω, 1kΩ, 4.7kΩ, 5.1kΩ, 6.8kΩ, 7.5kΩ
抵抗値: 10kΩ, 20kΩ, 30kΩ, 47kΩ, 51kΩ, 68kΩ, 75kΩ, 100kΩ, 200kΩ, 300kΩ, 360kΩ, 470kΩ, 510kΩ, 680kΩ, 750kΩ, 1MΩ

OSOYOO(オソヨー)金属皮膜抵抗器 抵抗セット 10Ω~1MΩ 30種類 各20本入り 合計600本


ASIN: B01C855K86

●抵抗値: 10Ω, 22Ω, 47Ω, 100Ω, 150Ω, 200Ω, 220Ω, 270Ω, 330Ω, 470Ω, 510Ω, 680Ω, 1kΩ, 2kΩ, 2.2kΩ, 3.3kΩ, 4.7kΩ, 5.1kΩ, 6.8kΩ, 10kΩ, 20kΩ, 47kΩ, 51kΩ, 68kΩ, 100kΩ, 220kΩ, 300kΩ, 470kΩ, 680kΩ, 1MΩ


●抵抗の種類でカーボン抵抗と金属皮膜抵抗の違いは何?

 抵抗の種類には
 ・カーボン抵抗、炭素皮膜抵抗
 ・金属皮膜抵抗、通称 金ピ、キンピ抵抗
 が有ります。

 違いは抵抗値の誤差です。金属皮膜抵抗の方が製造誤差や温度変動による誤差が小さいです。

 カーボン抵抗は一般電子回路用で、金属皮膜抵抗はオーディオ回路や測定回路等の精度を求められる用途に使用されます。
 もちろん一般電子回路用に金属皮膜抵抗をカーボン抵抗の代わりに使用する事は可能です。 (ただし、部品単価が金属皮膜抵抗の方が一般的には高い。)

 なお、表面実装用のチップ抵抗の作りは全て金属皮膜抵抗です。
 (カーボン抵抗製のチップ抵抗は存在しません。)

●カラーコードの覚え方

 抵抗のカラーコードは下記の語呂合わせで覚えました。
 黒 = 0 黒い礼服 礼と零のもじり
 茶 = 1 茶を一杯
 赤 = 2 赤いニンジン
 橙 = 3 第三の男 第とダイダイ
 黄 = 4 四季の色 季と黄
 緑 = 5 みどりは Go Goと5
 青 = 6 青い六条 青いと葵(あおい)
 紫 = 7 紫 式部 式部と七部のオヤジギャグ
 灰 = 8 ハイヤー 灰やーのダジャレ
 白 = 9 ホワイトクリスマス クと9

 海外での覚え方 How to Remember Electrical Resistor Color Codes
 Bright Boys Rave Over Young Girls But Veto Getting Wed
 Black, Brown, Red, Orange, Yellow, Green, Blue, Violet, Grey, White
 頭文字が順番に対応している。
 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
 B, B, R, O, Y, G, B, V, G, W


● Raspberry Pi3の GPIO端子の LIRC機能を有効化して リモコン送受信をしてみるテスト

 この手順で Raspbian Stretchで LIRCの赤外線リモコンを動かせます。

 おなじみの apt-get update
$ sudo apt-get update

 lirc 0.9.4cをインストール
$ sudo apt-get -y install lirc

 ※ 最新の Raspbian Stretch OSは /etc/lirc/hardware.confファイルが存在しません。

 hardware.confファイルの代わりに /etc/lirc/lirc_options.confファイルを編集します。

lircd - Decode infrared signals and provide them on a socket.
lircmd - Translate infrared signals into mouse events.
LIRC Configuration guide

sudo nano /etc/lirc/lirc_options.conf
# These are the default options to lircd, if installed as
# /etc/lirc/lirc_options.conf. See the lircd(8) and lircmd(8)
# manpages for info on the different options.
#
# Some tools including mode2 and irw uses values such as
# driver, device, plugindir and loglevel as fallback values
# in not defined elsewhere.

[lircd]
nodaemon        = False
driver          = devinput
device          = auto
output          = /var/run/lirc/lircd
pidfile         = /var/run/lirc/lircd.pid
plugindir       = /usr/lib/arm-linux-gnueabihf/lirc/plugins
permission      = 666
allow-simulate  = No
repeat-max      = 600
#effective-user =

 2行を下記の様に書き換えます。
sudo nano /etc/lirc/lirc_options.conf
driver          = default
device          = /dev/lirc0

 例によって sedの置換コマンドで一発変更。
sudo sed -i -e "s/driver          = devinput/driver          = default/g" /etc/lirc/lirc_options.conf
sudo sed -i -e "s/device          = auto/device          = \/dev\/lirc0/g" /etc/lirc/lirc_options.conf

 /boot/config.txtを編集して、dtoverlay行を追加します。
$ sudo nano /boot/config.txt
dtoverlay=lirc-rpi:gpio_out_pin=17,gpio_in_pin=18,gpio_in_pull=up
 ※ラズパイで赤外線リモコンを学習し発信する系のサイトで gpio_out_pin=18,gpio_in_pin=17の設定で解説している所が多いですが、これはラズパイ標準の設定とは入出力の関係が逆になっているので注意。

GitHub raspberrypi/firmware firmware/boot/overlays/README
 GitHubの CONFIG.TXTの説明。
sudo bash -c "echo \# IR-Remote controller >> /boot/config.txt"
sudo bash -c "echo dtoverlay=lirc-rpi:gpio_out_pin=17,gpio_in_pin=18,gpio_in_pull=up >> /boot/config.txt"

※ リモコン送信側の LEDの論理が負論理の場合は invert=onを付ける。(上記の接続方法のトランジスタ無しの場合が該当します)
dtoverlay=lirc-rpi:gpio_out_pin=17,gpio_in_pin=18,gpio_in_pull=up,invert=on

※ メモ Pifi Digi DAC仕様の場合、赤外線リモコン用に GPIO 26に赤外線受光モジュールを、GPIO 17に トランジスタ経由で正論理で赤外線 LEDを接続している場合は下記で。
sudo bash -c "echo \# IR-Remote controller >> /boot/config.txt"
sudo bash -c "echo dtoverlay=lirc-rpi:gpio_out_pin=17,gpio_in_pin=26,gpio_in_pull=up >> /boot/config.txt"
 一旦、再起動する
$ sudo reboot

 lsmodで lircの存在を確認
$ lsmod | grep lirc
lirc_rpi 6422 0
lirc_dev 8110 1 lirc_rpi
rc_core 16220 1 lirc_dev

 ls -l /dev/lirc*で /dev/lirc0の存在を確認
$ ls -l /dev/lirc*
crw-rw---- 1 root video 243, 0 Sep 4 15:41 /dev/lirc0

 lircd stopで lircdを停止する。
$ sudo /etc/init.d/lircd stop
 または
$ sudo service lircd stop
[....] Stopping lircd (via systemctl): lircd.serviceWarning: Stopping lircd.service, but it can still be activated by:
lircd.socket
. ok

 lircdを停止しないと下記のエラーが出る。
$ mode2 -d /dev/lirc0
Using driver default on device /dev/lirc0
Cannot initiate device /dev/lirc0

 リモコンの動作確認の mode2アプリのバージョン確認
$ mode2 -v
mode2 0.9.4c

 リモコンの動作確認(受信モジュールにリモコンを向けて操作する)
$ mode2 -d /dev/lirc0
Using driver default on device /dev/lirc0
Trying device: /dev/lirc0
Using device: /dev/lirc0

space 16317067 ← 赤外線受光モジュールにリモコンを向けて操作すると出る
pulse 721
space 603724
pulse 298
space 131499
pulse 8677
space 4545
pulse 511

$ hexdump /dev/lirc0
0000000 9107 0027 2357 0100 11ae 0000 0230 0100 ← 赤外線受光モジュールにリモコンを向けて操作すると出る
0000010 0238 0000 022f 0100 0237 0000 0234 0100
0000020 0234 0000 0238 0100 022d 0000 022f 0100
0000030 0238 0000 022f 0100 0237 0000 0236 0100

 リモコンの内容を記憶させる(赤外線学習内容の confファイルを全自動で生成してくれる)
$ irrecord -n -d /dev/lirc0
Using driver devinput on device /dev/lirc0

irrecord -  application for recording IR-codes for usage with lirc
Copyright (C) 1998,1999 Christoph Bartelmus(lirc@bartelmus.de)

 ~~~ 省略 ~~~
 ~~~ 省略 ~~~

Press RETURN to continue. ← ここでリターンキーを押す

Usually you should not create a new config file for devinput
 ~~~ 省略 ~~~
Press RETURN to continue. ← ここでリターンキーを押す

 外来ノイズ信号の有無をチェックするので何もしないで待つ。
Checking for ambient light  creating too much disturbances.
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) : dvd ← リモコンの名前を入力する(例:dvd)
※ dvd.lircd.confのファイル名で赤外線リモコン信号を学習した内容が記録される

Using dvd.lircd.conf as output filename

Now start pressing buttons on your remote control.

It is very important that you press many different buttons randomly
and hold them down for approximately one second. Each button should
generate at least one dot but never more than ten dots of output.
Don't stop pressing buttons until two lines of dots (2x80) have
been generated.
直訳:
・リモコンのボタンを1秒程度押して。
・ドットが1個以上で 10個を超えない様に。
・いろんなボタンを押して。
・ドットが 2行になるまでボタンを押して。

Press RETURN now to start recording. ← ここでリターンキーを押す

(学習したいリモコンのボタンを下記の要領で押す。)
・リモコンのボタンを1秒程度押して。
・ドットが1個以上で 10個を超えない様に。
・いろんなボタンを押して。
・ドットが 2行になるまでボタンを押して。
リモコンのボタンを押す度にドットが表示される。

Got gap (108559 us)}

Please keep on pressing buttons like described above.
(学習したいリモコンのボタンを同じ要領で押す。)
リモコンのボタンを押す度にドットが表示される。

Please enter the name for the next button (press <ENTER> to finish recording)
VOLP(学習したいリモコンのボタンの名前を入力する。例:VOLPで音量プラス)

Now hold down button "VOLP".
(音量プラスボタンを押す。)

Please enter the name for the next button (press <ENTER> to finish recording)
VOLM(学習したいリモコンのボタンの名前を入力する。例:VOLMで音量マイナス)

Now hold down button "VOLM".
(音量マイナスボタンを押す。)

Please enter the name for the next button (press <ENTER> to finish recording)
(リターンキーを押すと学習終了)

Successfully written config file dvd.lircd.conf

 リモコンのボタン学習の時に下記エラーが出てリモコン学習ができない場合は -fオプションを付ける。
Something went wrong: Cannot decode data
Please try again. (28 retries left)

例: -fを付けてリモコン学習コマンド irrecordを実行する。
$ irrecord -n -f -d /dev/lirc0

※ 同一の機器のリモコンでも最初の two lines of dots (2x80)の学習の結果次第で -f無しでも学習できる・学習に失敗するが有りました。

 学習した内容のサンプル
$ cat dvd.lircd.conf

# Please take the time to finish this file as described in
# https://sourceforge.net/p/lirc-remotes/wiki/Checklist/
# and make it available to others by sending it to
# <lirc@bartelmus.de>
#
# This config file was automatically generated
# using lirc-0.9.4c(devinput) on Mon Sep  4 13:57:00 2017
# Command line used: -n -d /dev/lirc0 /home/pi/dvd_player_ir.conf
# Kernel version (uname -r): 4.9.41-v7+
#
# Remote name (as of config file): dvd
# Brand of remote device, the thing you hold in your hand:
# Remote device model nr:
# Remote device info url:
# Does remote device has a bundled capture device e. g., a
#     usb dongle? :
# For bundled USB devices: usb vendor id, product id
#     and device string (use dmesg or lsusb):
# Type of device controlled
#     (TV, VCR, Audio, DVD, Satellite, Cable, HTPC, ...) :
# Device(s) controlled by this remote:

begin remote

  name  dvd
  driver devinput
  bits           56
  eps            30
  aeps          100

  one             0     0
  zero            0     0
  pre_data_bits   72
  pre_data       0x11
  gap          466
  toggle_bit_mask 0x0
  frequency    38000

      begin codes
          VOLP                     0x9F000001000227
          VOLM                     0x9D000001000228
          CHP                      0x8B000001000225
          CHM                      0x9F000001000228
      end codes

end remote

 リモコンの定義ファイルを /etc/lirc/lircd.conf.d/にコピーする
$ sudo cp dvd.lircd.conf /etc/lirc/lircd.conf.d/

 LIRCサービスを再起動する
$ sudo /etc/init.d/lircd restart
 または
$ sudo service lircd restart

 リモコンの定義内容を確認する
$ irsend LIST "" ""
devinput
devinput
dvd

 devinputが 2個有ると駄目なので devinput.lircd.confファイルを削除する
$ sudo rm /etc/lirc/lircd.conf.d/devinput.lircd.conf

 LIRCサービスを再起動する
$ sudo /etc/init.d/lircd restart
 または
$ sudo service lircd restart

 リモコンの定義内容を確認する
$ irsend LIST "" ""
dvd

$ irsend LIST dvd ""
009f000001000227 VOLP
009d000001000228 VOLM
008b000001000225 CHP
009f000001000228 CHM

 リモコンの内容を送信する
$ irsend SEND_ONCE dvd VOLP

 リモコン送信の動作確認のデバグ用に連続して送信したい場合(例は 100回送信する)
$ irsend -#100 SEND_ONCE dvd VOLP

 Raspbian Stretchで LIRCを動かせました!


●以下は Raspbian Stretchで LIRCを動かせなかった時のメモ

 リモコンの内容を送信する
$ irsend SEND_ONCE dvd VOLP

 受信できても送信できません。
hardware does not support sending
Error running command: Input/output error

 リモコンの内容を送信する
$ sudo irsend -d /dev/lirc0 SEND_ONCE dvd VOLP

 受信できても送信できません。
do_connect: could not connect to socket
connect: Connection refused
Cannot open socket /dev/lirc0: Connection refused

Debian Bug report logs - #860551
lircd-0.9.4c[845]: Error: Cannot glob /sys/class/rc/rc0/input[0-9]*/event[0-9]*

Debian Bug report logs - #860296
lirc is spamming syslog with messages

$ sudo /etc/init.d/lircd status

Sep 04 14:26:59 raspberrypi lircd[424]: lircd-0.9.4c[424]: Error: Cannot glo…9]*
Sep 04 14:26:59 raspberrypi lircd-0.9.4c[424]: Error: Cannot glob /sys/class…9]*
Sep 04 14:27:00 raspberrypi lircd[424]: lircd-0.9.4c[424]: Error: Cannot glo…9]*
Sep 04 14:27:00 raspberrypi lircd-0.9.4c[424]: Error: Cannot glob /sys/class…9]*
Sep 04 14:27:01 raspberrypi lircd[424]: lircd-0.9.4c[424]: Error: Cannot glo…9]*
Sep 04 14:27:01 raspberrypi lircd-0.9.4c[424]: Error: Cannot glob /sys/class…9]*
Sep 04 14:27:01 raspberrypi systemd[1]: Stopping Flexible IR remote input/ou…...
Sep 04 14:27:01 raspberrypi lircd[424]: lircd-0.9.4c[424]: Notice: caught signal
Sep 04 14:27:01 raspberrypi lircd[424]: lircd-0.9.4c[424]: Info: closing 'auto'
Sep 04 14:27:01 raspberrypi systemd[1]: Stopped Flexible IR remote input/out…rt.
Hint: Some lines were ellipsized, use -l to show in full.

$ sudo /etc/init.d/lircd status
● lircd.service - Flexible IR remote input/output application support
Loaded: loaded (/lib/systemd/system/lircd.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2017-09-04 14:58:00 UTC; 1min 23s ago
Docs: man:lircd(8)
http://lirc.org/html/configure.html
Main PID: 1028 (lircd)
CGroup: /system.slice/lircd.service
└─1028 /usr/sbin/lircd --nodaemon

Sep 04 14:58:25 raspberrypi lircd-0.9.4c[1028]: Info: initializing 'auto'
Sep 04 14:58:25 raspberrypi lircd-0.9.4c[1028]: Cannot run glob /sys/class/r…ory
Sep 04 14:58:25 raspberrypi lircd-0.9.4c[1028]: Error: Cannot glob /sys/clas…9]*
Sep 04 14:58:25 raspberrypi lircd-0.9.4c[1028]: Warning: Failed to initializ…are
Sep 04 14:58:25 raspberrypi lircd-0.9.4c[1028]: Error: Cannot glob /sys/clas…9]*
Sep 04 14:58:25 raspberrypi lircd-0.9.4c[1028]: Error: error processing comm…OLP
Sep 04 14:58:25 raspberrypi lircd-0.9.4c[1028]: Error: hardware does not sup…ing
Sep 04 14:58:25 raspberrypi lircd-0.9.4c[1028]: Error: Cannot glob /sys/clas…9]*
Sep 04 14:58:25 raspberrypi lircd-0.9.4c[1028]: Info: removed client
Sep 04 14:58:25 raspberrypi lircd-0.9.4c[1028]: Info: closing 'auto'
Hint: Some lines were ellipsized, use -l to show in full.


●ラズパイで LIRC 0.10.0をコンパイル

 ラズパイで LIRC 0.10.0をとりあえずコンパイルできたけど設定が不適切なので動かない。

 ここの手順では動きません。単なるメモです。

LIRC main page

LIRC - Linux Infrared Remote Control

LIRC libraries - LinuxInfraredRemoteControl

The LIRC remote configurations project.

# LIRC 2017/08/12
# VERSION="0.10.0"
# COMMIT="7efa739"
# DATE="Sat Aug 12 08:35:20 2017 +0200"
cd
wget https://downloads.sourceforge.net/project/lirc/LIRC/0.10.0/lirc-0.10.0.tar.bz2

tar -xvf lirc-0.10.0.tar.bz2
cd
cd lirc-0.10.0/

sudo apt-get -y install autoconf
# sudo apt-get -y install autoconf libtool xsltproc python3-yaml
# ./autogen.sh
# ./configure

./configure
# -bash: ./configure: No such file or directory

./autogen.sh
# Can't exec "libtoolize": No such file or directory at /usr/share/autoconf/Autom4te/FileUtils.pm line 345, line 4.
# autoreconf: failed to run libtoolize: No such file or directory
# autoreconf: libtoolize is needed because this package uses Libtool

# libtool 2.4.6
sudo apt-get -y install libtool

# Basic Installation
./configure

# checking for xsltproc... no
# configure: error: xsltproc is required. It sometimes comes with libxml

sudo apt-get -y install xsltproc



# *** Basic Installation
./configure

Summary of selected options:
----------------------------------------
prefix: /usr/local
lockdir: /var/lock
sysconfdir: ${prefix}/etc
x_progs:
host: armv7l-unknown-linux-gnueabihf
host_os: linux-gnueabihf
forkpty: -lutil
LIBUSB_LIBS:
PORTAUDIO_LIBS:

Conditionals:

BUILD_ALSA_SB_RC: no BUILD_DSP: yes
BUILD_FTDI: no BUILD_HIDDEV: yes
BUILD_I2CUSER: yes BUILD_LIBALSA: no
BUILD_LIBPORTAUDIO: no BUILD_USB: no
BUILD_XTOOLS: no HAVE_DOXYGEN: no
HAVE_MAN2HTML: no HAVE_PYMOD_YAML: no
ENABLE_UINPUT: yes INSTALL_ETC: yes
IS_CROSS_COMPILE: no DEVEL: no
LINUX_KERNEL: yes HAVE_DEVINPUT: yes
WITH_SYSTEMDSYSTEMUNITDIR: yes HAVE_PYTHON35: yes

configure: WARNING:
python3-yaml is missing. lirc-setup will not work; then :
table.html
and lirc.hwdb will not be created.

sudo apt-get -y install python3-yaml

# *** Basic Installation
./configure

Summary of selected options:
----------------------------------------
prefix: /usr/local
lockdir: /var/lock
sysconfdir: ${prefix}/etc
x_progs:
host: armv7l-unknown-linux-gnueabihf
host_os: linux-gnueabihf
forkpty: -lutil
LIBUSB_LIBS:
PORTAUDIO_LIBS:

Conditionals:

BUILD_ALSA_SB_RC: no BUILD_DSP: yes
BUILD_FTDI: no BUILD_HIDDEV: yes
BUILD_I2CUSER: yes BUILD_LIBALSA: no
BUILD_LIBPORTAUDIO: no BUILD_USB: no
BUILD_XTOOLS: no HAVE_DOXYGEN: no
HAVE_MAN2HTML: no HAVE_PYMOD_YAML: yes
ENABLE_UINPUT: yes INSTALL_ETC: yes
IS_CROSS_COMPILE: no DEVEL: no
LINUX_KERNEL: yes HAVE_DEVINPUT: yes
WITH_SYSTEMDSYSTEMUNITDIR: yes HAVE_PYTHON35: yes

make check

make

make installcheck

sudo make install


----------------------------------------------------------------------
Libraries have been installed in:
/usr/local/lib

If you ever happen to want to link against installed libraries
in a given directory, LIBDIR, you must either use libtool, and
specify the full pathname of the library, or use the '-LLIBDIR'
flag during linking and do at least one of the following:
- add LIBDIR to the 'LD_LIBRARY_PATH' environment variable
during execution
- add LIBDIR to the 'LD_RUN_PATH' environment variable
during linking
- use the '-Wl,-rpath -Wl,LIBDIR' linker flag
- have your system administrator add LIBDIR to '/etc/ld.so.conf'

See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.
----------------------------------------------------------------------


ls -l /etc/lirc/

sudo service lircd status


lircd
# lircd: error while loading shared libraries: liblirc.so.0: cannot open shared object file: No such file or directory


export LD_LIBRARY_PATH=/usr/local/lib

$ lircd
can't open or create /var/run/lirc/lircd.pid: No such file or directory

sudo mkdir /var/run/lirc/
sudo chmod 777 /var/run/lirc/


lircd -v
# lircd 0.10.0


sudo mkdir /etc/lirc/
sudo mkdir /etc/lirc/lircd.conf.d/

sudo cp dvd.lircd.conf /etc/lirc/lircd.conf.d/

irsend LIST "" ""
Cannot open socket /usr/local/var/run/lirc/lircd:




Tags: [Raspberry Pi], [電子工作]

●関連するコンテンツ(この記事を読んだ人は、次の記事も読んでいます)

Raspberry Pi Raspbian Jessie 2017-07最終版で LIRCを使って学習リモコン、赤外線リモコンを送受信する方法
Raspberry Pi Raspbian Jessie 2017-07最終版で LIRCを使って学習リモコン、赤外線リモコンを送受信する方法

  ラズパイ3 Jessieで赤外線受信センサと IR LEDで赤外線リモコン信号を送受信して家電等の外部機器を制御する方法

【旧版】Raspberry Pi 3 Jessieで LIRC機能を使って学習リモコン、赤外線リモコンを送受信する方法
【旧版】Raspberry Pi 3 Jessieで LIRC機能を使って学習リモコン、赤外線リモコンを送受信する方法

  ラズパイ3で赤外線受信センサと Ir LEDで赤外線リモコン信号を送受信して家電等の外部機器を制御する方法

ラズパイでエアコン対応の赤外線学習リモコンを pigpioライブラリを使って作る方法、Goodbye LIRC
ラズパイでエアコン対応の赤外線学習リモコンを pigpioライブラリを使って作る方法、Goodbye LIRC

  Raspbian Stretchでエアコン対応の赤外線リモコンを動かす、ややこしい LIRCを使わないで IR機器を制御

赤外線 LEDの点灯を目視確認する方法、Raspberry Piで赤外線リモコンアプリの実験で動かない時に
赤外線 LEDの点灯を目視確認する方法、Raspberry Piで赤外線リモコンアプリの実験で動かない時に

  赤外線リモコンの実験で動かない時の確認ポイント、赤外線 LEDの点灯を目視確認する方法

Raspberry Pi専用 TI PCM5122 DACオーディオ基板でハイレゾ音源 PiFi DAC+ V2.0基板
Raspberry Pi専用 TI PCM5122 DACオーディオ基板でハイレゾ音源 PiFi DAC+ V2.0基板

  ラズパイに TI PCM5122 I2S DACモジュール基板を接続して 384kHz 32bitでハイレゾ音源を楽しむ




[HOME] | [BACK]
リンクフリー(連絡不要、ただしトップページ以外は Web構成の変更で移動する場合があります)
Copyright (c) 2017 FREE WING,Y.Sakamoto
Powered by 猫屋敷工房 & HTML Generator

http://www.neko.ne.jp/~freewing/raspberry_pi/raspberry_pi_stretch_lirc_ir_remote_control_2017/