めも

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

LIRCもといGPIO-IR試用編

室温管理するようなものを作りたいと思っています。

(そのうち、買い物編と仕様編の記事を書く予定。

温度管理のために、エアコンをリモート操作したいと思い、赤外線送受信モジュールを購入。
www.switch-science.com
www.switch-science.com

Grove Base Hatに刺すだけでよゆ~っしょ!と思っていたのだけど、まさかのライブラリ非対応!?
https://github.com/SeeedDocument/Grove_Base_Hat_for_Raspberry_Pi/raw/master/res/Grove%20Base%20HAT%20Compatibility%20List.xlsx
(買う前に読もうな…)

ということで、とりあえずGroveに刺して、GPIOの操作することに。
LIRC(Linux Infrared Remote Control)で赤外線モジュールを操作できそうなので参考にインストール。
赤外線リモコンを使う | Make.

HW準備

Raspberry pi zero WHにGrove Base Hat for Raspberry Pi Zeroを合体。
(Base Hat使っているのはGrove-4pinジャンパメスケーブルがないため。)
D16に受信器、D5に送信機を接続。
f:id:dive2blue:20190514222011j:plainf:id:dive2blue:20190514222014j:plain

写真汚い…

SW設定

参照のサイトのそのまま実行していたら失敗した。
kernelが新しくなってからまた変わったようす。
Using LIRC with kernel 4.19.X and gpio-ir - Raspberry Pi Forums


結論から言って、Kernel4.19からlircでなくgpio-irを設定する。
とりあえずやった手順で書く。
(明らかに消した部分は省略、順不同な部分は移動した。)

kernelのバージョン確認

どの時点で新しくなったか不明だが、今の状態。

~$ uname -a
Linux raspberrypi 4.19.37+ #1216 Thu May 2 13:25:42 BST 2019 armv61 GNU/Linux

lircのインストール

~$ sudo apt install lirc

フォーラムではパッチを入れろと書いてあったけど...

~$ sudo reboot

設定ファイルの更新

~$sudo vi /etc/lirc/lirc_options.conf
#書き換える
driver = default
device = /dev/lirc0
~$ sudo vi /boot/config.txt
# 接続した番号追記する
dtoverlay=gpio-ir,gpio_pin=16
dtoverlay=gpio-ir-tx,gpio_pin=5

~$ sudo reboot

確認

/dev/lirc0ができているか確認する。
/boot/config.txtにlirc-rpiを設定しているとできない。

~$ ls /dev/lirc*
/dev/lirc0

適当なリモコンなど用意して、受信器に向けると数字が出る

~$ sudo mode2 -d /dev/lirc0
Using driver default on device /dev/lirc0
Trying device: /dev/lirc0
Using device: /dev/lirc0
Space 12345
Pulse 12345
…

送信側はまだ確認してないので、あとで追記します。

余談

/dev/lirc0ができないよーと泣きながら/bootフォルダを眺めていたら、
overlaysという怪しいフォルダを発見。
しかも、怪しいREADMEが入っている。
dtoverlayに設定していたlirc-rpiで検索してみたところ!

Name: lirc-rpi
Info: This overlay has been deprecated and removed - see gpio-ir

参考は参考にして自分で調べないとなと思いましたとさ…