Select Your Language

免責事項

  • 本サイトの情報の利用、内容、サービスによって、利用者にいかなる損害、被害が生じても、著者は一切の責任を負いません。ユーザーご自身の責任においてご利用いただきますようお願いいたします。

    本サイトで頒布している基板およびキットは、技術者、またはそれに準ずる電気的知識をお持ちの電子工作ファンの方のためのものです。一般のオーディオファンの方のためのものではありません。
    また、頒布基板およびキットは、いかなる条件でも動作を保証するものではございませんので、あらかじめご了承ください。

    電子工作では、火傷、感電、火災などの可能性があります。十分に注意をして作業して下さい。

    営利目的のご使用は認めておりません。 記事の転載や、基板・キットの商用利用の方は、ご連絡ください。学生やサークルの学習目的でまとめてご購入する場合は特別価格でご提供させていただきます。
無料ブログはココログ

スポンサー

« Volumio2.565 のSabreberry32ドライバ情報 | トップページ | トランスのうなり音とは? »

2019年4月 7日 (日)

Volumio2.565にIRリモコンをつけてみる

SB32+PRO DoPにはIRリモコンセンサーを付けられるポートを用意しています。

そこで、秋月電子で売っているOSRB38C9AAというIRリモコンセンサーを取り付けてテストしてみました。

Ir_remote_1

< ケースの関係で受光面を上に向けました >

Voumio2にはプラグインで IR Remote Controller というのがあります。

とりあえず、これを使ってみましょう。

Ir_remote01

Ir_remote02

いいですね。簡単にインストールできます。

プラグインをイネーブルしてSetting画面に入るとリモコンを選択できます。

Ir_remote06

ところが、Apple Remote A1294を選択しても 動作しません。

 

 

GPIOの指定はどこ?

んまあ、このプラグインで IRセンサをどのGPIOに繋げるのか が不明ですし、その設定もプラグインのUIでは見当たりません。

 

ということでプラグインのファイル内を調べてみると、GPIO-25(BCMナンバー)に設定されていました。

SB32+PRO DoPのIRポートはGPIO-17ですので変更が必要です。

 

指定しているファイルのありかは以下の通り。ファイルを編集してGPIOの設定を変えます。

Ir_remote04

</data/plugins/accessory/ir_controller/index.js >

Ir_remote03

ファイルの最後の方に gpio_in_pin=25 と書いてある部分を 17 へと書換えます。

 

一旦プラグインをディセーブルしてから、もう一度イネーブルすることで反映されるようです。

アンインストールすると/data/plugins/ フォルダからこのプラグイン自体が削除されてしまいますので気をつけます。

Ir_remote05

これでどうだ!

・・・

・・・

やっぱり動きません。

 

 

 

そうそうApple Remote A1294 というリモコンは、IRコードに固有番号を付けているのでした(おそらく256種類)。同じファイルで動くものもあれば、動かないものもあるという事です。

ということで lircのコマンドを使ってリモコン信号を学習させます。他のリモコンでも同様に憶えさせることで使えるようになると思います。ココではApple Remoteで進めます。

 

 

まずは配線チェック

とりあえず正しくGPIOが設定出来ているかどうかから調べていきましょう。

こちらのサイトを参考にさせて頂きました。分かりやすくまとまっています。

Ir_remote07

lsmod | grep lirc でデバイスドライバの確認。 OK。

sudo /etc/init.d/lirc stop で一旦サービスを停止してから、

mode2 -d /dev/lirc0 で受光部に信号が入るか確認します。(リモコンを押すと数値がずらずらと出る)

ここまでは、大丈夫そうですので 「ctrl+c」で 停止します。Volumio2のプラグインって便利ですね。本来はあれこれインストールしなければいけない部分が全て出来上がっていました。

 

 

リモコンの学習

いよいよリモコンを学習させていきます。IR受光部とリモコンの距離は10~20cmくらいで行なうと安定した学習ができます。

 

irrecord -n -d /dev/lirc0 apple_remote.conf

ずらずら~とコメントがでます。

 

Press RETURN to continue.

(エンターを押します)

Now start pressing buttons on your remote control.

It is very important that you press many different buttons and hold them
down for approximately one second. Each button should generate at least one
dot but in no case more than ten dots of output.
Don't stop pressing buttons until two lines of dots (2x80) have been
generated.

Press RETURN now to start recording.

(エンター後、リモコンのボタンを離さずにずっと長押しします。)

................................................................................
Found const length: 107775
Please keep on pressing buttons like described above.

(それぞれのボタンを1秒押しする。1つのボタンを10回押さないようにします。)
................................................................................

Space/pulse encoded remote control found.
Signal length is 67.
Found possible header: 9027 4445
Found trail pulse: 575
Found repeat code: 9027 2218
Signals are space encoded.
Signal length is 32
Now enter the names for the buttons.

Please enter the name for the next button (press <ENTER> to finish recording)

(ボタンの名前を付けてエンターを押して、該当リモコンボタンを押します。)

PLAY(エンター)

Now hold down button "PLAY".(ボタンを押す)

Please enter the name for the next button (press <ENTER> to finish recording)

UP(エンター)

Now hold down button "UP".(ボタンを押す)

Please enter the name for the next button (press <ENTER> to finish recording)


(憶えさせたいボタンの数だけ別名を付けて繰り返します。)

名前を付けずにエンターだけ押すと終了します。

ここで学習は完了です。

 

 

 

ファイルの編集とコピー

つぎに、学習して保存された

apple_remote.conf ファイルをエディタで開いて

 

begin remote

  name lircd.conf


  begin codes
         name KEY_PLAY    0x77E17AB8 0x77E120B8
         name KEY_UP         ・・・・・・
         name KEY_DOWN   ・・・・・・
         name KEY_RIGHT    ・・・・・・

という感じに

/data/plugins/accessory/ir_controller/configurations/Apple Remote A1294/lircrc の命令コードのnameどおりに書き換えます。

ファイルを保存したら、コピーします。

cp apple_remote.conf /data/plugins/accessory/ir_controller/configurations/Apple Remote A1294/lircd.conf

ここで、Web-UIから「Apple Remote A1294」を選択してSAVEすると反映されます。

SAVEボタンを押したときに、このフォルダから/etc/lirc/フォルダへファイル転送して、Lircサービスも再起動されます。なので/etc/lirc/ではなく/data/plugins/accessory/ir_controller/configurations/・・・というフォルダへファイルをコピーしています。

 

 

動作確認

動作確認してみましょう。

volumio@volumio:~$ sudo /etc/init.d/lirc restart
[sudo] password for volumio:(パスワードは volumio
[ ok ] Restarting lirc (via systemctl): lirc.service.

volumio@volumio:~$ irw
0000000000000001 00 KEY_PLAY lircd.conf
0000000000000002 00 KEY_MENU lircd.conf
0000000000000005 00 KEY_RIGHT lircd.conf
0000000000000006 00 KEY_LEFT lircd.conf

無事に受信しているようです。 

 

Volumioのmpdもちゃんと動作しているようです。

ということで、参考になれば幸いです。

 

 

ボリュームを連続で動かしたい

ボリュームはワンクリックで+1づつしか動かないとちょっと不便です。ワンクリックで+2とか+5にしてしまうのもひとつの手段ですが、lircにはキーのリピート機能があります。

ファイルをちょっとだけ編集します。

/data/plugins/accessory/ir_controller/configurations/Apple Remote A1294/lircrc

begin
prog = irexec
button = KEY_UP
config = /usr/local/bin/volumio volume plus
repeat = 1
end
begin
prog = irexec
button = KEY_DOWN
config = /usr/local/bin/volumio volume minus
repeat = 1
end

とボリュームのPlusとminusに「repeat = 1」を追記すると、リモコンのボタンを押している間リピートしてくれます。

 

 

参考までに

volumio2のIRリモコンプラグインの仕様なのですが、

/data/plugins/accessory/ir_controller/configurations/ には幾つかのリモコンのコードが入っています。

lircd.conf と lircrc というファイルでリモコンのIRコードとmpdへの命令(正しくはvolumio命令)を決めていて、ボタンの「name」で結びつけています。

上の例ではApple Remote を使いましたが、もっと沢山のキーがあるリモコンのlircd.conf / lircrc ファイルを参考に多機能化をしてみても良いと思います。

JustBoom IR Remoteでは「seek」や「poweroff」もできるようです。

 

 

 

 

 

 

 

にほんブログ村 PC家電ブログ PCオーディオへ にほんブログ村
ブログランキングに参加中です。 めざせ1位! 
もしよろしければ「ぽちっと」お願いします。 

 

 

« Volumio2.565 のSabreberry32ドライバ情報 | トップページ | トランスのうなり音とは? »

SB32+PRO DoP」カテゴリの記事

コメント

OPAです。

dtoverlayってコマンドがあったのですね。知りませんでした。
当方でやった方法は、/boot/config.txtを書き換えています。

https://opa-san.blog.so-net.ne.jp/2018-07-14

OPAさん

私もdtoverlayコマンドは知りませんでした。今回、調べて発見したしだいです。検索してもなかなかヒットしないですね。
/boot/config.txtに書く方が普通の指定だと思っていましたが、これを上手く使うと再起動しないでドライバを入れられたりするかもしれませんね。

SB32+PRO DoP が使用しているGPIOピンについて

たかじん様 初めまして

doraemonと申します。SB32+PRO を使用させていただいております。

今回、RasPi 3B plus を熱対策の為ファン付ケースに、SB32+PRO を別のケースに入れた状態で、その間をジャンパーケーブルでつなぎたいのですが、
SB32+PRO のI2S信号、電源等の必須ピン配列を教えていただけないでしょうか?

以上よろしくお願いします。(既出でしたらお許しください)

doraemon さん

使っている信号は、I2C、I2C、5V、3.3Vです。
安定性を求めるためGNDはできるだけ多くのpinをつなげてください。

https://raspberrypi.stackexchange.com/questions/79870/confirming-the-i2s-pins-on-raspberry-pi-3-model-b


Sabreberry32のときですが、以下の延長ピンソケットで動かしたことがあります。1cmくらい嵩上げできます。

http://akizukidenshi.com/catalog/g/gC-02484/
http://akizukidenshi.com/catalog/g/gC-02482/

たかじん様

早速のご回答ありがとうございます。

3.3V:1pin
5V :2
I2C :3
I2C :5
BCK :12
LRCK:35
DATA:40
GND :6 9 14 34 39

を接続と考えて宜しいのでしょうか。

doraemon さん

そうです。 I2Sですね。。 I2Cを二つかいてました。。。

I2SのBCK、LRCK、DATAは、それぞれGND配線とツイストすると安定して引き延ばせます。とは言っても10cmから20cm程度にしておく方が無難だと思います。

たかじん様

この度は、ご教示いただきありがとうございました。
せっかく、連結ピンソケットのご紹介をいただきましたが、
13本のジャンパーコードを使って無事音出しできました。

doraemon さん

無事に動作したようで何よりです。

コメントを書く

(ウェブ上には掲載しません)

« Volumio2.565 のSabreberry32ドライバ情報 | トップページ | トランスのうなり音とは? »

サイト内検索(new)

2023年3月
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31