Raspberry Pi + irMagicianでリモコンシンセサイザ「remocon-synth」作った

f:id:karaage:20160618165206j:plain:w640

リモコンシンセサイザ「remocon-synth」

 妻が、リモコンを使って子供のおもちゃ作れないの?という話があったので作ってみました。以下のような感じです。

 音の出るおもちゃが好きなので、シンセサイザっぽいものにしてみました。最初は小さいマイコンをリモコンの中に仕込もうと思ったのですが、バッテリ含めたサイズ的にも、耐久性的にも不安があったので、リモコンはそのままリモコンとして使い、Raspberry Pi + 赤外線リモコン受光モジュールを使ってリモコンからの信号を受けて音を出すようにしています。音を出すところは、以前使ったSonic Pi + pythonの組み合わせで実現しています。

 一応シーケンサになっていて、最大5音分のパターンを繰り返すようになっていて、リモコンを押すたびにパターンが追加されていきます。5音を超えると最初の音から消えていきます。

 イマイチな点は、リモコンのせいか何か間違っているのか、同じボタンを押しても違う高さの音が出てしまう(現状ほぼランダム)なところです。後は、シーケンサの部分が子供には分かりづらくて、押したら音が出る方がよいのじゃないかという不満の声が上がっています。ただ、現状の構成だとレスポンス改善するのも難しいため若干途方にくれています。

 作り方など気になる方は続きを読むをクリック下さい。

リモコンシンセ作り方

ハードウェア

必要なもの

 Raspberry Pi 3(多分2でも大丈夫だけど未確認)

 Raspberry Pi周辺機器は各自必要なものを揃えてください。よくわからない方は以下記事参照ください。

 irMagician。赤外線リモコン送受信モジュールです。

LOGICOOL ステレオスピーカー Z120BW

LOGICOOL ステレオスピーカー Z120BW

 アクティブスピーカ。安くて良いです。他のものでもOKです

リモコンは家で余っているお好きなリモコンをお使いください。irMagicianで動作確認できているものを用意できればベスト

接続

 以下です。

  • irMagicianとRaspberry PiのUSBコネクタをUSBケーブルで接続
  • アクティブスピーカをRaspberry Piのオーディオジャックに接続

f:id:karaage:20160618165206j:plain:w640  こんな感じに接続。Raspberry Piの上に無造作にのっているのがirMagician

f:id:karaage:20160618165226j:plain:w640  irMagician ちょっと怪しい外見

ソフトウェア

Raspbianセットアップ

 以下の記事などを参照にセットアップください。

必要なソフトインストール

 以下コマンド実行してください。gitはRaspbianのバージョンによっては最初からインストールされているかもしれません。

$ sudo apt-get update
$ sudo apt-get install git
$ sudo pip3 install --upgrade pip
$ sudo pip3 install python-sonic
remocon-synthセットアップ

 「remocon-synth」のソフトウェアはGitHubにアップしてあります。

 あとはRaspbianをGUI(X Windows)で起動した後、ターミナルを開いてコマンドを実行していってください。

 最初、以下コマンドでホームディレクトリにリポジトリをクリーン

$ cd
$ git clone https://github.com/karaage0703/remocon-synth

 後は、以下コマンドでSonic Piを起動してから「remocon-synth」を起動します。

$ sonic-pi
$ python3 ~/remocon-synth/remocon-synth.py

 これでリモコンのボタンを押すと、Raspberry Piがシンセサイザになります。

まとめ

 一応作ってみたのですが、リモコンのボタンを正しく認識できていないところや、レスポンスもイマイチなのと、思ったより手軽に遊べないのであまり満足していないです。色々改良してみたい気はするのですが、他にもっと作りたいものができてしまったのでこれはここまでにしておこうかなと思っています。

参考リンク

小型赤外線(IR)リモコン irMagician ファースト・インプレッション
使い方 | 大宮技研 合同会社
プログラム例 | 大宮技研 合同会社
GitHub - netbuffalo/irmcli: irMagician command line utility
リングバッファ作ってみた - みずぴー日記
 シーケンサ部分にリンクバッファのプログラムを参考にさせていただきました