読者です 読者をやめる 読者になる 読者になる

ゆーすけべー日記

はてなBlogってどーなの!?

iTunesコントローラーBeta、R8C/Tiny+VS2005C#を使用

はじめに(軽く日本の論文調でいきます)

4年前に購入したノーパソThinkpadのヒンジ(ふたを開け閉めするチョウツガイみたいな部分)がへたりにへたって、 画面を開いても即閉まる様になっちゃって、もう普通には使えないようになってしもうた。 そこで現在このThinkpadは完全に音楽再生ソフトiTunes専用機と化した。 これはこれでかなり活用できてよい。 俺は自分が持っているCDや借りたCDなど約5000曲を全てデジタル化してファイルサーバーにぶち込んでいて、 それをThinkpadのiTunesで読み込ませてる。 ThinkpadのオーディオアウトをYAMAHAのアンプにぶっさして巨大スピーカーから音を出せばなかなか満足。 ノートパソコンなので電力消費が少ない、音が静かということで常時起動しているので、寝る時に音楽聴きながら寝るなんてことも出来る。 高校でポータブルMDプレイヤーを愛用して以来、ポータブルプレーヤーの必要性を俺はほとんど感じていないので、 iPodも欲しくない、このThinkpad+iTunes+室内オーディオ、それとカーオーディオがあれば音楽を十分楽しめる。

ただ、Thinkpad+iTunesの音楽再生環境にも難点がある。 それは「コントロール」をどうするかだ。 なにせ、Thinkpadはふたを開いてもヒンジがへたってすぐ閉まる状態。 で、今までの解決策は、「画面切り替え機」を使うことだった。 この画面切り替え機というのは2台のPCを切り替えてひとつの「モニタ+キーボード+マウス」で操作可能にするというもの。 これで今俺のPC環境はこんな感じ。普段デスクトップを使って作業をして、iTunesを操作したかったら、 「Controlキー」を瞬時に2回押すとThinkpadの画面に移り変わるので、マウスを使って曲を選んだり再生したり停止したり。 まぁ、これも悪くないんだけど、切り替える時のタイムラグが気になるのと、 もっと「コントロール」を快適にする方法=インターフェースがあるだろうと考えた。

iTunesコントローラー

iTunesの操作たって普段良く使う操作に絞ればたいしたことはしていない。 だいたい、昔からあるようなポータブルプレーヤーなんてシンプルなインターフェースでやってるわけだし。 これだけあればよい、複雑なのは上記した「画面切り替え機」でThinkpadに切り替えて操作すればよい。

  • 再生/一時停止
  • 次の曲へ/前の曲へ
  • 音量調整

というわけで、これらの機能をキーボードやマウスを介さず、 手元のボタンで操作できる「iTunesコントローラー」を試作した。

iTunesコントローラーベータ

実装

再生やボリューム操作などの入力をルネサス社のマイコン「R8C/Tiny」で処理して、 それをシリアルケーブルを介してUART通信を行い、Thinkpadに文字列を送る。 Thinkpad側ではVisual Studio 2005 C#で作成したWindowsアプリケーションを待機させ、送られた文字列に応じてiTunesを操作する。 iTunesを操作するために「iTunes COM」ライブラリを使用した。 マイコンから送られてくる文字列とそれに対応する「iTunes COM」の操作は以下の通り。

操作    マイコンから送信文字  PC側メソッド
再生停止  p            Play()もしくはPause()
次曲    f            NextTrack()
前曲    b            PreviousTrack()
音量上   u            SoundVolume = SoundVolume + 10;
音量下   d            SoundVolume = SoundVolume - 10;

マイコン「R8C/Tiny」にはSunhayatoのMB-R8CSを使用し、今回は試作のためブレッドボード上に全てを実装した。 ボリューム調整用の回転ノブにはDR-AR10という回転4接点式ボタン?を使用。 4ピンからの足の出力が各々状態によってLHで出る。調べたら4桁の2進数で10パターンあるようだ。 ちなみに、ボタンのチャタリング対策は何もしていない。 以下回路図とマイコン側のプログラム(C)。

iTunesコントローラー回路図

マイコンからの文字列をシリアル通信で受け取りiTunesを操作するソフトウェアのソースコードは以下。 本当はPerlで実装していたのだが、iTunesのSoundVolumeをいじるとエラーが出るので、あきらめて Visual Studio 2005、C#で実装。

検証

実際に使ってみた。ボリュームが怪しいがちゃんと動いた。以下動いている様子の動画。関係無いけどなぜだか電子工作にはケツメイシが合う。

まとめ

普通に便利。いきなり電話かかったときに音楽ストップさせたかったり、気に入らない曲があったら次に飛ばしたり、 気分によって音量調整したりと、単純だけど、このコントローラーは欲しかった。 便利なだけじゃなくて、もしかして、音楽体験がまた変わるかも。 今回は試作なのでボタンやマイコンはブレッドボード上に実装だが、しばらくこのまま使ってみて、 改良できるところあればしてみる。 ある程度よさそうなら、ユニバーサル基盤に回路を実装して、タッパーで外装作ろう。 さて、久しぶりの電子工作も今日でだいぶ感を取り戻したぞ。 次はBluetoothでもやるかな。このiTunesコントローラーもBluetoothで作ったら結構あついな。