mbed で iTunes をコントロール(1)

今までマイコン工作は PIC のみでしたが、今回ネットワークと USB を使ったものを作りたかったので時間短縮のために mbed を購入してみました。

今回作りたかったのは iTunes をコントロールするハードウェアです。

iTunes をコントロールするもので一番手っ取り早いものは iOS アプリの Remote です。 それでまぁ十分なのですが、誰でも使えるようにリビングに置けるハードウェアがほしいと思っていました。

具体的にどういうふうにコントロールするか考えましたが、調べてみると DACP ( Digital Audio Control Protocol ) を使う方法と、 Windows の COM を使う2種類があるということが分かりました。 今回は簡単に出来そうな COM を使うことにしました。

我が家の環境

家では Windows Home Server ( WHS ) に iTunes ライブラリを入れてあり、 PC にネットワークボリュームとしてマウントしてローカルの iTunes で使えるようにしています。 また同時に、 WHS にも iTunes をインストールしてあり、 PC が起動していなくても Remote を使って Air Mac Epress や Apple TV に AirPlay 出来るようにしています。

そこで、 WHS に iTunes をコントロールする COM を使ったスクリプトを入れておき、Web ブラウザ経由でアクセスできるように出来ないかと考えました。

まずは、サーバ側の設定。

WHSにはIISがあらかじめ入っていますが、別途に Apache と PHP が動く環境を整備。 XAMPP でさくっとインストール。

Apple の Developer サイトから iTunes COM for Windows SDK をダウンロードしてマニュアルを見ながらいろいろ試してみる。 やってみると簡単で、再生するスクリプトはこんな感じで一行で書ける。

WScript.CreateObject("iTunes.Application").play();

そのスクリプトを exec() で呼び出す PHPスクリプトを作成。 ブラウザでアクセスして動くことを確認して終了。

次はコントローラー側

PIC で USB 物は経験ありますが、ネットワークは未経験です。興味はあるのですが、今回は連休中に動くものを作りたかったのでプロトタイプとして mbed でやってみようと思いました。

mbed をえらんだ理由はArduinoでUSBとネットワークのシールドを揃えると結構な値段になりそうというのと、 mbed の方が簡単に出来そうということです。でも Arduino も未経験なので実際はよくわかりません。

mbedは開発環境がクラウドというのも面白いですね。 公開されているライブラリやサンプルコードをインポートしてテストしながら使い方をマスターしていくのはラクだなぁとおもいました。 また、今回はハードウェア的な工作も減らしたかったので StarBoard Orange というボードも一緒に買いました。 おかげで、ハンダごても握らずにネットワークや USB もすぐに使えるようになりました。

ライブラリをインポートしてもコンパイルがうまくいかないなど、ちょっとハマったところがありましたが、フォーラムで同様の質問があったので解決できました。 ちょっと mbed の問題も見えた気がしましたが、結果オーライでしょう。

今回の工作では、 HTTPClient ライブラリを使い Web サーバへクエリを飛ばすだけですのでサンプルコードをちょっといじる程度で出来ました。

あとは、入力トリガとしてスイッチをブレッドボードで組み立てるだけです。

一応完成?

これで、「再生」「停止」「次曲」「前曲」「音量アップ」「音量ダウン」は出来るようになりましたが、機能としてはまだ足りません。選曲とか。

材料が揃わなかったのでUSBをつかった機能は次回に持越しです。 あと、ボリュームは赤外線を使ってアンプを直接動かせるようにしたいです。

 

続き

mbed で iTunes をコントロール(2)

投稿者:

ないん

30半ば過ぎで突然電子工作にはまりました。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です