Firefox OS WoTハッカソン on ホワイトデーに参加してみた

  • 投稿日:
  • by
  • Category:

3/14から3/15にかけて開催された au Firefox OS WoTハッカソン on ホワイトデーに参加しました。

前回のau Firefox OS WoTハッカソン on バレンタインデーでは、「わらうフォクすけ」でARM賞をいただきました。今回はこの続きということでキャタピラ基台を持ち込みました。フォクすけ君は事務局のかたに準備していただきました。

旧チームメンバーはホワイトデーにちなんで、フォクすけ君の彼女を準備して、お返しのチョコを届けるようなものを考えていました。

firefox_os_wot_idea1.jpg

他のチームではフォクすけ君が子供のお守りをするアイデアをだしていました。

firefox_os_wot_idea2.jpg

この2つはベースの仕組みは同じになるということで、そちらのチームと合流して作業を進めることになりました。今回のチームは高専のメンバーが参加してフレッシュな雰囲気で始まりました。

材料としては前回作成した「わらうフォクすけ」のキャタピラ基台を使うことは確定で、それに加えて今回新しいデバイスとしてTOCOSのIoT無線タグTWE-Lite-2525Aを使うことにしました。この無線タグは「ハルロック」のネタから実現した「ねこったー」で使われていたものです。この無線タグからの電波強度である程度の距離がわかるとのこと。これを使ってフォクすけ君と彼女の距離や、見守る子供との距離を測ることを目指しました。

もう一つ新たなデバイスとしてOMRONの画像センシングモジュール「HVC-C」を使うことにしました。このモジュールは人の状態を認識する独自の顔画像センシング技術「OKAO Vision」とカメラモジュールをコンパクトに一体化し、センシング結果をBluetoothでスマートフォンに送信することができるものだそうです。これで子供の表情を認識してそれに応じてフォクすけ君にアクションをさせようというアイデアでした。

TOCOSのIoTモジュールはシリアル通信で無線タグの情報が取得できるので、キャタピラ基台を制御しているmbed LPC1768にシリアル接続することにしました。HVC-CはBLE通信になりますので、これに対応できるのはOPEN WEB BOARDかなということで、OPEN WEB BOARDでHVC-Cから表情の情報を取り込むことをめざしました。

最終的なシステム構成図は以下のようになりました。

mimamori_foxkeh_system.jpg

しかし、両方とも初めて使うデバイスであり作業は難航。私が担当したmbedとTOCOS TWE-Lite-DIPの接続の部分はWiFiを使いながらTOCOS TWE-Lite-DIPのシリアル通信を割り込み処理しようとするとハングアップしてしまいます。ARMの雪だるまさんの応援もいただいて、持ち込んだポケットオシロスコープで信号を確認しながら進めましたが、結局原因不明で途中で断念してしまいました。

tocos_mbed_proto.jpg

TOCOS TWE-Lite-DIPはキャタピラ基台への実装まで行ったのですが、残念ながら本番時はこのモジュールは取り外して動かすことになりました。

tocos_mbed.jpg

また、OPEN WEB BOARDとHVC-Cの接続も難易度が高く時間切れとなってしまいました。

フォクすけ君の表情は彼女用にハートマークの表示も追加され、リモコンとなるFx0のUIが洗練されたものになりました。またフォクすけ君本体のFx0からは彼女との出会いを盛り上げるための音楽も鳴るようになりました。

remote_control_ui.jpg

ただ、mbedのところで時間をかけすぎてしまったため、前回大きな課題だった足回りの改良がまったく行えず、電池切れの不安を抱えながらのデモになりました。

残念ながら予感は的中し、デモのときはモーターがまったく動かず、手で押して彼女に接近させ、ハートマーク表示ができたという結果に終わってしまいました。

foxkeh2.jpg

今回は他のチームでも同じようなキャタピラを使った作品がありましたが、そちらでは電源周りがモバイルバッテリーだったり、デジタル回路とモーター回路の電源系統を分けることで安定して走行していました。また、バッテリーや制御基板の搭載を行うために100円ショップのカゴを乗せる工夫もされていました。もし次回があるようであれば、今回できなかったところを全部クリアしたいと思います。

何はともあれ高専生のかたと一緒に作業できたのは楽しかったですし、組み込みデバイスやFirefox OSに大変興味をもっていただけたようでした。

なお、今回の作品はMozilla賞をいただき、3匹のフォクすけ君が賞品となりましたが、このフォクすけ君は高専生のかたに贈られました。

foxkeh_4.jpg

今回のプロジェクトで作成したFiddleのページはこちらになります。

http://fiddle.cc/yamasy1549/mimamori-foxkeh

なかなか難易度が高かったですが楽しかったです。また機会があれば参加したいと思います。

関連ページ

Firefox OS WoTハッカソンに参加してみた

  • 投稿日:
  • by
  • Category:

Firefox OS WoTハッカソンに参加してみました。参加のきっかけはFx0を持っていることと、mbedを使うというところ、実際にIoTが経験できるという点からです。やはり1人で考えていても良いアイデアはでてきません。チームで取り組むことで全く思いもよらない応用が見つかるのではと思ったのです。

ハッカソンは初めての参加でしたので、やや不安もありましたが、mbedのあたりなら貢献できそうなので思い切って参加しました。

チーム分けを行い、アイデアを練りはじめましたが、部材として持って行ったLEDマトリクスやNFCタグとかを眺めながら、Fx0とmbedを使ってIoT(WoT)を試して見るということで、まず「すごろく」というアイデアが出ました。すごろくのコースにスイッチを取り付けたり、NFCタグを使ってコースを進むと、LEDが光ったり、音がでたりとかそのようなものをイメージしていました。そしてそのすごろくの駒としてFx0にタイヤを付けたものを動かすのはどうだろうというアイデアもでてきました。

wot_hackathon_idea1.jpg

結局、すごろくを作るか、Fx0の車を作るかの二択になりましたが、今回はFx0の車を作って、時間があったらすごろくを作ろうという話になりました。mbedやArduinoを使った車は作ったことがありますので、そのあたりのノウハウが役立つかなということで、モーター基台の担当となりました。そうこうしているうちにフォクすけくんのぬいぐるみを載せようということになり、アイデアが膨らんでいきました。また、「しっぽ」を振りたいという強い要望が加わりました。

wot_hackathon_idea5.jpg

秋葉原に出かけて買って来たブルドーザーの基台にフォクすけ君をのせて実装イメージを確認しながら進めました。

wot_hackathon_idea4.jpg

フォクすけ君の実装イメージを確認したあとに、しっぽを振るための材料をまたまた秋葉原に買いに行きました。会場からそんなに遠くないので助かりましたが、結局1日目は秋葉原まで二往復しました。

以降、どのように作り上げたのかは、Fabbleにまとめておきましたのでそちらを参照ください。

http://fabble.cc/dobogo/pitagoraxsugoroku

完成したフォクすけ君はこんな感じです。顔のFx0の画面で感情を表示します。このFx0がWebサーバとして動いていて、もう1台のFx0がリモコンとなりフォクすけ君が進む向きや表情の変更、しっぽ振りのON/OFFを行います。また、Fx0の近接センサーを利用して、目の前に手をかざすと目を閉じたり、後進するようなしかけも入っています。顔のFx0からmbedのWebサーバAPIをアクセスすることで3つのモータ(左、右、しっぽ)を制御します。

wot_hackathon_idea6.jpg

この手のものは発表のときに動かないということがよくあるのですが、今回はリトライしながらもなんとか動いてくれました。ちゃんとしっぽも振りましたし、電源ケーブルを乗り越えて元気よく走り回ってくれました。

wot_hackathon_testrun1.jpg

おかげさまでARM賞をいただくことができました。チームメンバーがそれぞれ得意な部分に取り組むことができ、マッチングが非常に良かったです。また、短時間で実際に動くものを作りあげることができ、Fx0のWebアプリの可能性が見えたように思います。

Team4のみなさん、参加されたみなさん、スタッフのみなさん、お疲れさまでした!

関連ページ

WebSocketでmbedからFx0に情報を渡してみた

  • 投稿日:
  • by
  • Category:

今週末はいよいよFirefox OS WoTハッカソンです。

mbedはこれまでいろいろ使っていて慣れているのですが、mbedからスマホへのリアルタイム通信は経験がありません。少しは勉強しておかなければとWebsocketについて試してみました。

Websocketのサーバはmbedでも提供されているのですが、今回はNode.jsを自分のVPSにインストールしてWebSocketサーバーをたちあげました。

mbedのデベロッパーサイトにWebsocketのサンプルプログラムがあるので楽勝と考えていたのですが、私の環境だと、このサンプルプログラムではNode.jsと通信できたり、できなかったりで非常に不安定でした。コンパイル後のメモリをみてみるとRAMが120%ぐらいになっていて、mbed-rtosを使うとメモリが厳しいのかもしれません。いろいろ探していたらSuga koubouさんのテストプログラムだとNode.jsのサーバに安定して接続できることが確認できました。

これで以下のような環境ができました。

websocket_mbed_fx0.png

mbedアプリケーションボードに実装されている加速度センサーと温度センサーの情報を読み出し、WebSocketでNode.jsのサーバーからブロードキャストして、Fx0に通知し、Fx0のHTML5アプリケーションで表示するものを作りました。

mbed_application_board.jpg

WebSocketとかCANVASとかは初めてでしたが、あちこちのプログラム例を参考にしてなんとか形にできました。

websocket_fx0_app.png

この仕組みをハッカソンで使うかどうかはわかりませんが、良い経験ができたと思います。