7M4MONまずは↓をご覧ください。ファービーをiPhone5Sからコントロールしています。赤外線アダプタをイヤフォンジャックに差し込み、HTML5+CSS3+JavaScriptで作成したWEBページからファービーを操作できる赤外線コマンドを送信しています。デモページはこちらです。stereo)をサポートしていないブラウザ(IE等)では動作しません。(「応用編:リモコンを解析してテレビやカメラを操作する」はこちら。)ファービーとは“ファービー"とは1998年にアメリカで開発された電気仕掛けのぬいぐるみです。日本でも世紀末にTOMYから発売され、その愛くるしい容姿とつぶらな瞳で社会現象を起こしました。ブームが去り10年以上が経過した今でもヤフオクでの取引は活発で、700円くらいで手に入れる事が出来ます。やって操作するの?ファービーには赤外線入力があり、先人が解析したコマンドを送ることにより、任意の動作をさせることができます。(ただし、スリープからは解除されている必要があります。)用意されているコマンドは下記の16種類です。「1」は2ms(厳密でなくても良い)の間に150〜200usのLEDの点灯を2回行う。Joke」の場合、1.スタートビットとして「1」を送る。2.「0101」を送る3.上のコマンドを反転した「1010」を送る。4.1〜3を6回送る。赤外線リモコンおよびアダプタについて赤外線リモコンは38kHzの搬送波を一定の時間でON/OFFさせることにより、コマンドを送っています。詳しいことはルネサスのページに記載されていますので、興味のある方はご一読ください。イヤフォンジャックに差し込む赤外線アダプタは↓です。19kHzの位相が180度ずれたステレオの音を再生すればLEDが交互に点滅し、38kHzの信号を送信することができます。このアダプタはスイッチサイエンスさんにキットがあります。WAVEファイルを作成する。(アプリを作る)リモートコントロールコマンドを送るためのWAVEファイルを作成するためのアプリを作成します。フォーマットは「48ksps、8bit、ステレオ」とします。Waveファイルフォーマットに関してはこちらを参考にしました。19kHz付近の音を作成する際は、使用するバイト数が少なければ少ないほどON/OFFの時間的分解能高くなるので有利です。19.2kHzですので、5バイトで19.2kHz(ステレオで38.4kHz)が作成できます。0x35というバイト列をヘッダの後に2バイトずつ並べていきます。38kHz丁度でなくても大丈夫ですが、外れるにしたがって赤外線センサーの感度が下がります。iPhone5sではこのフォーマットは再生できないようでした。無音は0x80,0x80の連続です。ヘッダ部分は毎回の使い回しなので、先に用意しておきます。)が書かれているカンマ区切りの文字列を引数としてWAVEファイルのバイト配列を作成します。ソースコードはこちら。Windowsフォームアプリケーションだったのですが、せっかくなのでASP.NETに移植してみました。ファービー用のWAVEファイルを作る4で作成したアプリに2で説明したデータ列を入れます。最小繰り返し単位が5バイトなので5の倍数でデータを作ります。「1」は「15,70,15,70」とし、「0」は「15,155」としました。Hello」は[(15,70,15,70,15,155,15,155,15,155,15,155,15,70,15,70,15,70,15,70,15,70,15,70,15,70,15,70)×6]となります。作成したWAVEファイルをオシロスコープで確認すると、希望通りの波形になっていました。HTML5で操作用のページを作るaudio要素とJavaScriptを使って作成したWAVEファイルを再生します。Audioで作るブラウザーピアノ」の記事を参考にしました。ボタンはCSSを使って見た目を整えてみました。赤外線アダプタを差しこみ、ボタンを押すとファービーを操作することが出来ます。デモページはこちらです。位相が逆なWAVファイルはイヤフォンからは再生できても本体のスピーカーからは音が出ないようなのでこんな治具を作るといいと思います。動作が遅いときは...外のサーバーだと読み込みまでに時間がかかるので、LAN内のサーバーで使うといいと思います。次ページ:リモコンを解析してテレビを操作する。