Nabaztagと戯れる(その1)

まず、これから。
これは、あるAPIPHPでラップしたクラスをコールしたもの。

<?php
require_once('Nabaztag.php');
$alfons = new Nabaztag();
$alfons->serial = "xxxxxxxxxxxx";
$alfons->token  = "**********";
$alfons->say("テスト");
?>

これを実行すると、こうなる。

ウサギがしゃべるんだな。
これはフランス発のウサギ型ロボット「Nabaztag(ナバズタグ)」(http://www.nabaztag.com/)。
先週末、April氏*1と新宿に出た際に思わず衝動買い。
おかしいな、掃除機か洗濯機を買い替えるつもりだったのに...。
紹介は、ASCIIの記事とか、impressの記事を参照。


基本的には、Nabaztagを購入するとhttp://my.violet.net/ というサイトのアカウントの開設ができて、そこへNabaztagの固有ID等を登録するとRSSフィードの読み上げやポッドキャストを行う事ができる様になっている。
RSSフィードの読み上げ等々はサイト上にアプリケーションとして登録されていて、その一部になるのだけどこれ以外にも目覚まし時計や天気予報といったアプリケーションもある。基本的にアプリケーションはすべてこのviolet.net上に登録されていて、普通に利用する場合はこのサイトから利用するものを自分が所有するNabaztagに登録してあげるという形になる。
一応日本語も読み上げ対応。少しロボットボイスで「もやもやさまぁ〜ず2」のナレーションみたいですが…。


で、個人的には既に興味があるのは、制御用のAPIだった訳でありまして...。
仕様は公開されているので、簡単にプログラム可能。
なので、まず今朝このAPIをラップするクラスを作成。*2


PHPでラップしたので、サーバ上において定点監視させたり、イベントが起きたときに自分のナバズタグを制御できる。
例えば、このblogを誰かが開いたときに自分のnabaztagを動かす様にすると以下の動画の様になる。
*3
以前作ったカウンターをトリガーにして動く様になっていて、blogの右側のフレームの一番下にある"f"の画像を読むと別のサーバにリクエストが飛んでいるので、そこから更にnabaztagAPIにリクエストを投げているという話。


他にも直接音声ファイルを指定してnabaztagに再生させることもできる。
たとえば、TBSラジオの某番組のpodcastを再生させる場合は、今回作ったラップクラスを利用すると、

<?php
require_once('Nabaztag.php');
$alfons = new Nabaztag();
$alfons->serial = "xxxxxxxxxxxx";
$alfons->token  = "**********";
$alfons->playMp3("http://podcast.tbsradio.jp/nichiten/files/20090621.mp3");
?>

とすればよい。すると、nabaztagはネットワーク上のmp3ファイルをダウンロードして再生してくれる。


もう少しこのラップクラスに機能を足して、既存のAPIで設定できるウサギの耳のアクション等もラップクラスから設定できる様にするつもり。一通り落ち着いたら公開するかなぁ。多少車輪の再発明な感もなきにしもあらずだけど好きでやってるから。
がっつり書いて作ったのは、まずサーバ監視だったりするところがナニな感じですが、まぁ、いいか。
土曜の午前中の正しい使い方ができた。そして、午後からは仕事です。なんだか...。

*1:はてなIDを持たないのにID名の様な形で頻出の友達

*2:元々のものがシンプルなので、ほとんど必要ない気もする

*3:一日のPVがたかがしれてるのでできるデモである...