カテゴリー別アーカイブ: 電子工作

Raspberry Pi で赤外線リモコン

Raspberry Pi の GPIO に赤外線 LED をつけてリモコンとして使おう。

使ったハードウエア

  • Raspberry Pi Model B
    • 手元にあるのは、初代の、プラスじゃないやつ。microじゃない標準サイズのSDカードが刺さる。
    • Arch Linux が入っている。Raspbian だと若干手順が変わると思われる。
  • 赤外線LED
  • 赤外線リモコン受信モジュール
    • 3.3V で使えるもの。
    • Raspberry Pi を送信側として使うつもりであっても、既存のリモコンの信号を分析するには受信モジュールが必要となる。
  • トランジスター、抵抗、配線、ブレッドボードとか

参考にしたページ

ネット上のブログ記事の情報は古い場合があるし、そもそも環境が違って(Raspbian vs Arch Linux)参考にならないかもしれない。ネットの情報は参考程度にして、ソフトウエアのマニュアル等を参照するのが大切である。

作ったもの(ハードウエア)

使う GPIO の番号は選択の余地があるが、適当に GPIO17=出力 (LED), GPIO27=受信 とした。

ソフトウエア的な手順

Linux で赤外線リモコンの信号を送受信するための LIRC というソフトウエアがあるらしいのでそれを使う。

1. LIRC をインストールする

Arch Linux のパッケージになっているのでラクチン。

# pacman -S lirc

2. LIRC をロードする

/boot/config.txt を編集して、 LIRC をロードする。

/boot/overlays/README を参照。例として lirc が書いてあった。

# nano /boot/config.txt
dtoverlay=lirc-rpi,gpio_out_pin=17,gpio_in_pin=27

を書き加える。

lirc をロードするのに modprobe を叩いたり /etc/modules を編集したりは、しない。

(この辺で再起動をかける?)

systemctl start で lircd を起動する。systemctl enable するとラズパイの起動時に自動で起動してくれるはず。

# systemctl start lircd

3. 受信テスト

mode2 コマンドで、受信したものを吐かせる。

# mode2 -d /dev/lirc0

適当にリモコンを向けて、

space (数字)
pulse (数字)

の羅列が出てきたら多分OK。

4. リモコンを登録

irrecord コマンドを使い、リモコンの信号をファイルに記録する。

# irrecord -n -d /dev/lirc0 lircd.conf

メッセージの指示に従う。

途中で、 Enter name of remote と聞かれたので、 homeceiling と入力した。出力ファイル名は homeceiling.lircd.conf となった。

Enter name of remote (only ascii, no spaces) :homeceiling
Using homeceiling.lircd.conf as output filename

個別のボタンを登録する段になって Something went wrong: Cannot decode data といわれ、最後に Try using the -f option. と出てきたので、 -f オプションをつけて再実行した。

# irrecord -n -f -d /dev/lirc0 lircd.conf

homeceiling.lircd.conf ができた。

# cp homeceiling.lircd.conf /etc/lirc/lircd.conf.d/

5. 信号を送る

irsend SEND_ONCE (リモコン名) (ボタン名) で信号を送れる。

# irsend SEND_ONCE homeceiling lighter

FlashAirで遊ぶ — SPIでIOボードを制御

前回はFlashAirに直接LEDをつないでLEDを制御したが、今度は秋月のFlashAir DIP IOボードキットを介してLEDを制御してみよう。

用意するもの

続きを読む