0101室サーバ担当チーム 
乾杯可視化システム
0101室サーバ担当チームのメンバー 
 加茂聡 
 独立行政法人理化学研究所 
 産業技術大学院大学情報アーキテクチャ専攻 
 石井学 
 独立行政法人理化学研究所
!CheerZ!の概要 
 乾杯を可視化 
 遠隔地の人とも乾杯できる 
 遠い異国の言葉も通じない人とも乾杯を通じ 
てコミュニケーションが可能 
ニコニコ生放送の飲み配信の 
ように、生主とリスナーが遠 
隔地にいても乾杯ができる
地図上で乾杯! 
現在地からグラスが飛んできて乾杯
地球上で乾杯!
各人の乾杯数を可視化!
乾杯した人々の関係を可視化!
システムの概要 
センサー付き 
グラス 
集計サーバ 
センサーで計測し 
た加速度を送信 
ブラウザ 
センサー 
サーバ 
BLEの到達範囲 
センサー 
サーバ 
センサー 
サーバ 
表示データ取得 
html5で可視化 
位置情報等の 
データ送信
システムの完成形 
センサー付き 
グラス 
集計サーバ 
センサーで計測し 
た加速度を取得 
ブラウザ 
スマホ 
BLEの到達範囲 
スマホスマホ 
位置情報等の 
データ送信 
表示データ取得 
html5で可視化
加速度センサーのデータを用いて乾杯を検知 
グラスの裏側に 
取り付けたセンサー
試作一号 
モバイルバッテリ 
3軸加速度センサー 
Raspberry Piと 
USB無線LANアダプタ
試作2号 
XBee 
(Series1) 
加速度センサー 
電池 
ボタン電池でも動作
センサー作る必要なかったかも…
使用ソフト等 
センサー付き 
グラス 
集計サーバ 
BLEの到達範囲 
ブラウザ 
センサー 
サーバ 
乾杯したユーザの 
情報等をpush 
以下を使用 
Three.js(地球儀、地図) 
jQuery(グラフ) 
位置情報等の 
データ送信 
センサーサーバ側 
から加速度をpull 
python等を使用 
node.js+express 
を使用
球体を作ってテクスチャを貼り付け 
mesh = new THREE.Mesh( 
new THREE.SphereGeometry( 600, 40, 40 ), 
new THREE.MeshBasicMaterial( { 
map: THREE.ImageUtils.loadTexture( 'earth.jpg' ), 
overdraw: true } ) 
); 
scene.add( mesh );
座標変換 
赤道 
極座標系直交座標系 
http://help.arcgis.com/ja/arcgisdesktop/10.0/help/index.html#//00v20000000q000000
3D版
動作環境 
WebGLが動作するブラウザ 
 Windows8.1上の以下のブラウザで動作確認 
 Internet Explorer11 
 Firefox30.0 
 Chrome35.0.1916.153 
 Chromeでの実行を推奨

「第50回 HTML5とか勉強会」のlt発表資料

Editor's Notes

  • #10 最終的には専用のセンサーサーバを用意するのではなく各自の手元にあるスマホを利用してデータの送受信を行えるようにしたい
  • #12 想定通り加速度を取って乾杯を検知するシステムが作れるか試作品を作って試してみました メイン基盤はRaspberry Piを使っています、中身はlinuxです Raspberry Piに無線LANがなかったのでUSB無線LANアダプタを追加してあります ブレッドボード上に加速度センサーを置いてGPIOで繋いであります モバイルバッテリを繋いで持ち運びもできるようにしました このグラスは概要図で言うところのセンサー付きグラスとセンサーサーバまでを含めた機能を内蔵しています 開発が間に合わなかった場合はこのセンサーを収めることができるジョッキを3Dプリンタで作るつもりでした 見ての通りかなりのサイズがあるのでジョッキを作っても飲む分の体積よりもセンサーを収容する体積の方が大きいグラスになっていたと思います
  • #13 試作1号で加速度センサーを使って乾杯を検知できることが確かめられたので、センサー部の小型化に取り組みました この写真がセンサー部分でジョッキに取り付けることなります ブレッドボード上で仮組しているのでとっちらかって体積を食っていますが、ユニバーサル基板上に付け直せばグラスの底に仕込める程度の大きさになると思います 電池が大きいのは単純にボタン電池が高いから単4を使って仮動作させているだけで、ボタン電池1個で動作させられます
  • #14 試作2号も上手く動いたので、ユニバーサル基板上に実装していこうと大量のパーツを購入した直後に同じようなことができる既製品を発見… しかもこちらの方が安いという… 間欠動作のBLEによる加速度取得なので乾杯の判定がイマイチ甘いので、誤検知が多いようなら試作2号を復活させますが、とりあえずこの製品を試用
  • #16 3DはThree.jsを利用 オーソドックスに球体を作成してテクスチャとして表面に貼り付け
  • #17 位置情報は地理座標系なので、3Dで扱うために3D直交座標への変換が必要 WebGLだけでなくOpenGL等でも同じですが、高校生から大学の一般教養レベルで三角関数等の数学の知識は必要になります
  • #18 一応立体視できるよう作ってみたけど立体視できる環境がなくなったので未使用 サイドバイサイドの入力で3Dを受け付けるモニタで立体視が可能