めも

技術ブログと言い張るのはおこがましいただのめもです。RaspberryPiで遊んだり、Web系の勉強したりしています。ガジェット好きちゃん。

Raspbian BusterでLirc(gpio-ir)を試す(設定編)

以前もRaspberry Piで赤外線を操作できるLircを使用してみたのだけど、Raspbianに新しいバージョンBusterが出ていたので試してみる。
(諸事情で前にインストールしていたのは消した。)

dive2blue.hatenablog.com
この時は、Stretchだったし、いろいろインストールしたあとで入れたのでなんで動いたのかよくわからなかった。


今回はまっさらな2019-07-10-raspbian-buster-liteをダウンロードして試した。
https://www.raspberrypi.org/downloads/raspbian/

このフォーラムを参照して入れる。
[Stretch/Buster] Using LIRC with kernel 4.19.X and gpio-ir - Raspberry Pi Forums
日々アップデートされているらしく7/7更新の手順をなぞる。

手順

まず、一応アップデート。

pi@raspberrypi:~ $ uname -a
Linux raspberrypi 4.19.57+ #1244 Thu Jul 4 18:42:50 BST 2019 armv6l GNU/Linux
pi@raspberrypi:~ $ sudo apt-get update
pi@raspberrypi:~ $ sudo apt-get upgrade

(sudo rpi-updateしようとしたら警告が出たので普通はしないのですね初めて知った。)



Grove base hatに刺すので入れる。GPIO直ならいらない。

pi@raspberrypi:~ $ sudo apt install python3-pip python-pip
pi@raspberrypi:~ $ curl -sL https://github.com/Seeed-Studio/grove.py/raw/master/install.sh | sudo bash -s -
Successfully installed grove.py-0.6

lircをインストール

pi@raspberrypi:~ $ sudo apt install lirc

はじめは失敗する。(Strechだと失敗しないらしい)

失敗はしているが設定ファイルは生成されているのでリネームしてコピー

pi@raspberrypi:~ $ sudo cp /etc/lirc/lirc_options.conf.dist /etc/lirc/lirc_options.conf
pi@raspberrypi:~ $ sudo cp /etc/lirc/lircd.conf.dist /etc/lirc/lircd.conf

中身を一部書き換える。

pi@raspberrypi:~ $ sudo vi /etc/lirc/lirc_options.conf
driver = default
# 送信なら
device = /dev/lirc0
# 受信なら
device = /dev/lirc1

送信なら、受信ならと場合分けしているが、lirc0のままlirc1が動いたし、autoのままでいい説もある。(試していない)


接続したGPIOのピン番号を指定し、リブート。

pi@raspberrypi:~ $ sudo vi /boot/config.txt
# 接続した番号追記する
dtoverlay=gpio-ir,gpio_pin=16
dtoverlay=gpio-ir-tx,gpio_pin=5
pi@raspberrypi:~ $ sudo reboot

試してみる この時点で受信に成功する(なんで?)

pi@raspberrypi:~ $ sudo mode2 -d /dev/lirc1
Using driver default on device /dev/lirc1
Trying device: /dev/lirc1
Using device: /dev/lirc1
Running as regular user pi
space 16777215
pulse 3485
space 1712
pulse 446

#ctrl+Cで終了

もう一度lircをインストールしなおすとインストールに成功する。

pi@raspberrypi:~ $ sudo apt install lirc

もう一度動かす。

pi@raspberrypi:~ $ sudo mode2 -d /dev/lirc1
Using driver default on device /dev/lirc1
Trying device: /dev/lirc1
Using device: /dev/lirc1
Running as regular user pi
space 16777215
pulse 3485
space 1712
pulse 446

無事動きました。

送信側はまだ試してない。