Home > gainer | works > Gainer Helmet ver2 meets Colin Moock

Gainer Helmet ver2 meets Colin Moock

1月16日にあった「Colin Moock を囲む会」で、むらけんさんと一緒に発表した作品です。まずは下の YouTube 動画で概要をご覧ください。

Wii リモコン Hack のキャリブレーション映像や構成図付きの当日のプレゼン資料はこちら。

helmet_presentation.swf: 動画でかいので10MBあります。ボタンかキーボード左右キーで画面送り

使った技術は、以前作った Gainer ヘルメット ver1 + むらけんさんAIR + ジョニーさんのWii リモコンでホワイトボードする Hack のあわせ技です。

僕は今回は Wii リモコンの部分を担当したのでそのあたりのお話を。

準備したもの

とりあえず、以下のものがあれば「PC と Wii リモコンを Bluetooth 接続し、赤外線 LED でデスクトップカーソルを遠隔操作」することができました。

Wiiリモコン
Wiiリモコン

PLANEX Bluetooth Ver2.0+EDR対応 Microサイズ USBアダプタ BT-MicroEDR2
PLANEX Bluetooth Ver2.0+EDR対応 Microサイズ USBアダプタ BT-MicroEDR2
PC の USB ポートに付ける Bluetooth レシーバ(受信機)。別に Wii 用ってわけではなく、これを付ければいろんな Bluetooth 機器と接続できますよというモノです。他の方の作例を見ると大き目の製品を使われていたので、今回の小型レシーバーの購入はちょっとドキドキしたのだけど結果的には無事動いて一安心。

赤外線LED 5mm(100個入)
100個もいらないけどそれでも700円。電子部品は PC ソフトと比べると安くて嬉しい。上記リンクのリアル店舗、秋葉原の秋月電子通商で購入。LEDのとこに置いてあるけど、僕が行った日は棚のは売り切れてて店員さんに尋ねて奥から持ってきてもらいました。

LEDテスター
あると便利!LED を差してボタンを押せば点灯できる LED テスター。こんな商品があるのを知らなかったので、いちいち銅線切って電池ケース付けてハンダしてとか考えていたけど、とにかく動作確認したい時はテスターが便利。下の Johnny Chung Lee さんのような専用ペンを作れるに越したことはないですが。

●Wiimote Whiteboard
PC のデスクトップ画面と Wii リモコンの認識エリアとを対応させるキャリブレーション(位置調整)アプリ。「Wii リモコンがこのあたりの位置に赤外線LEDを検知したら、そこはモニタの左上に対応させますよ」みたいなことを調整するわけです。Johnny Chung Lee さんのプロジェクトページ中段の「Low-Cost Multi-point Interactive Whiteboards Using the Wiimote」の 2のパート「Wiimote Whiteboard」をクリックし、ダウンロードしておきます。
上の記事を見ると、まず Wii リモコンと PC との接続のためにこのページの「BlueSoleil」アプリを入手しろと書かれていますが、同じアプリが「PLANEX Bluetooth Ver2.0+EDR対応 Microサイズ USBアダプタ BT-MicroEDR2」に CD として付属していたのでそちらを使いました。

●Windows マシン
当初は3年前ぐらいのノート PC(PentiumM 1.3MHz) で製作。Wii Hack 部分はこれぐらいのスペックでも十分ストレスなく動いたのですが、その後の AIR アプリでのパフォーマンスが厳しかったので、当日の発表では別ノート PC(Core2Duo 1.8ぐらいかな?)にしました。

あと、マシンによっては上述のキャリブレーションアプリの実行のために JAVA を最新にしろとか言われるかもしれないです。言われたらしましょう。

接続&認識&遠隔操作するまでの手順

手順としては:

  1. BlueSoleil 起動
  2. BlueSoleil 上で Wii リモコンを Bluetooth 機器として認識させる。
  3. LED テスターに赤外線 LED を差して点灯確認しておく。
  4. Wiimote Whiteboard を起動。キャリブレーション設定で四隅を認識させる。
  5. 設定完了。LEDが光っている間は、その位置にデスクトップカーソルが追随する。

です。写真とかあったほうがいいのであとでまとめる予定ですが、留意点としては:

  • PC と Wii リモコンを Bluetooth 接続するための「BlueSoleil」ですが、Wii リモコンを接続するためにパスキーを尋ねてきて、パスキーなんて知らないので進めない場合がありますが、セキュリティ設定を最弱にするとキーを聞いてこなくなるので、いったんそっちに設定しておく(認識後はセキュリティを戻しても大丈夫らしい)。で、BlueSoleil ウィンドウ上の Wii リモコンアイコンをダブルクリック→右クリックメニューからで接続という流れ。(手元に確認PCがないので詳細は後ほど)
  • 赤外線 LED は肉眼では見えません。携帯のカメラとかビデオカメラごしだと見えるんです。
  • 赤外線 LED はそのままだと1方向直進する感じなので、ガラス部分を紙やすりでやすって、拡散反射するようにしたほうがいいかも。テスターに差す時は、上段20mAに差せばいい感じで、足の長いほうが+なので上側になるように差します。
  • 余談ですが、Wii って「リモコン」と「レシーバー」があるんですが、「レシーバー(受信機)」という名前がついていますが、実はアレ、左右に3個ずつの赤外線 LED が埋め込まれていて、「赤外線を発信」しているだけなのです。Wii プレイ中に携帯電話のカメラを通してレシーバーを見れば分かります。実は位置情報の取得&計算はリモコン側で担当していたわけです。そのおかげで、リモコンの情報を PC に送れば位置情報も分かるわけですね。
  • 今回の作品のような「空中で擬似平面設定」みたいなことをやると「クリック」行為の認識が難しいのですが、LED を消灯→点灯し、カーソルがジャンプしたタイミングでクリックとして認識するっぽいので、同じ位置で素早く消灯→点灯させればクリックとして扱ってくれるっぽい。テスターではそうやっていろいろコントロールできたのだけど、あとでヘルメットにLEDつけたら操作感が悪かったせいか、クリック精度も下がった。Flash やってる人が今回のような Wii リモコン作品を作る場合、「クリックなしで、ロールオーバー等マウスカーソル位置のみで操作するコンテンツ」の方が何かと楽かもしれません。

その他、今回参考にさせていただいたリンクなどは del.icio.us のこの辺から。

Gainer部分

コアとなる部分は以前作った Gainer ヘルメット ver1と同じ、これに簡単なボタンを3つと、LED点灯の機能を追加。
今回は AIR(ActionScript 3.0)なので従来の Flash(AS2) 用 Gainer ライブラリ(gsp ソケットサーバー)では動かせません。gainer.cc にも AS3 用ライブラリも用意されているのだけど、Adobe MAX で見たこともあり、今回はFunnel(ファンネル)が簡単に動いてくれたので Funnel の AS3 ライブラリ(Funnel サーバー)を利用。Funnelサーバーもgspサーバーと同様にモジュール(Gainer I/O)を接続した COM ポートを指定できるのだけど、Funnel サーバーは指定しなくても COM ポートを順番に探して自動で繋いでくれます。探す時間を短縮しようと思って COM ポートの番号指定をしてみたら、逆に接続確立できなかった(僕の環境だけかも。詳細不明)。ポート指定しないままでも動くのでまぁいいや。

関連:Gainer に興味ある人は、Gainer 関連エントリあたりを読んでみてください。

AIR 部分

今回のように「ブラウザごと回転」させるためには AIR だよなぁということで、むらけんさんが Adobe AIR にて Web ブラウザを作ってくれました。Gainer の傾きセンサーから頭2方向の傾きがそれぞれ数値で送られてくるので、それを「スクロールバーの移動」「ブラウザウィンドウの回転」に割り当ててもらいました。数値は AIR(ActionScript) 上でいかようにも変換できます。今回はブラウザの回転がシビアにプルプル動いてしまうのを止めるために、数値をまるめて(調整して)、10度ごとに Tweener で滑らかに回転するようにしました。(むらけんさんが一瞬で実装)
あと、むらけんさん側で事前に「ブラウザの戻る・進む」「今見ているページを JPEG 画像としてデスクトップ保存」する機能を AIR で実装してくださっていたので、急遽渋谷ハンズでボタン部品を買ってきてサザエさんぽい場所に3つ取り付けました。頭の左右がそれぞれ「戻る・進む」、頭のてっぺんが「画像としてキャプチャ」です。まだ Gainer のインプット回路や Flash 側の Web カメラやマイク入力も余っていたので、「手ぶらで操作」を意識して全部センサーでやれば良かったかも知れないけど、それはまた今度。

合体

最後に頭の基盤に赤外線 LED を付けたわけです。頭の位置でマウスカーソルを動かそうとしたわけですね。むらけんさんと真夜中二人で「ついに夢のブラウザ誕生!」な感じで盛り上がったのですが、上の動画のようなカオスな操作感に愕然となるのでした。

まとめ

「頭だけでいろいろやろうとするな!頭でっかちになる!(いろんな意味で)」ということです。
まぁでも作業時間2日と短かったですが楽しかったです。むらけんさんが Spark Project に「ヘルメットクラス」を公開するとかしないとか。たぶんしないw。

var hel:Helmet = new Helmet();

なお、当日発表のプレゼン資料は当日作ったので英語とかUIとか申し訳ないことになってますがご容赦ください。

Comment:4

kotobuki 2008-01-30 (水) 12:53

こんにちは。おお、なんとFunnelを使っていただいたのですね。どうもありがとうございます。

使いにくかった点とかもしあれば、(こっそりでもこっそりでなくてもいいですので)また教えてください。今後も改良は続けていくのですが、まだまだフィードバックが少ない状況ですので、ポジティブなものでもネガティブなものでも嬉しいです。

では、今後とも楽しみにしております。:)

tera 2008-01-30 (水) 14:56

>kotobuki様
コメントありがとうございます!
Gainer いつも楽しませていただいております。ディスプレイから離れ、頭のスイッチを切り替えてリアルとの連携を考えるのはほんと楽しい作業です。
そろそろみんなAS3を書き出している中、Funnel はとてもありがたいです!
引き続き「週末趣味レベルの作品」で頑張ります!

次ぎは足の裏に圧力センサーを貼付けまくって、「ほんとに走れるWiiFitもどき」を作ろうと思いますので、モジュールのワイヤレス化を待ち望んでいますw

エントリに追記したのですが、僕の環境だと「ポート番号をしていするとポートを見つけてくれない現象」があったのですが、こちらで詳しく調べていないので、僕の勘違いかもしれません。

今後も遊ばせていただきます。よろしくお願いいたします。

kotobuki 2008-01-30 (水) 16:30

ポート番号指定の件、ちょっと思い当たることがありますので、確認してみます。それまでの間は、すみませんがポート自動検出で利用していただければと思います。

tera 2008-01-30 (水) 16:37

当方の勘違いかもしれませんのでなんだかすいません。
自動検出で全然間に合ってます!

Comment Form

コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。

Remember personal info

Trackback:0

TrackBack URL for this entry
http://www.trick7.com/blog/mt-tb.cgi/676
Listed below are links to weblogs that reference
Gainer Helmet ver2 meets Colin Moock from trick7.com blog

Home > gainer | works > Gainer Helmet ver2 meets Colin Moock

持っている Flash & ActionScript 関連本の中から、自分的おすすめの読む順番をご紹介。各書籍のレビューは books カテゴリからご覧頂けます。
この順番でどう?(AS3.0)
  • Adobe Flash CS3 詳細! ActionScript 3.0 入門ノート (DVD付)
    Adobe Flash CS3 詳細! ActionScript 3.0 入門ノート (DVD付)

    デザイン方面からFlashデビューして、そのままAS2.0を使うようになった人が、難しいと評判のAS3デビューする時の最初の1冊として、とにかく目を通しておくと良いかと思います。プログラミング経験の少ない方でも、サンプルをじっくり読めば、ゼロからのAS3デビュー可。
  • ActionScript 3.0 アニメーション
    ActionScript 3.0 アニメーション
    洋書「Making Things Move!」の日本語訳本。ActionScript3.0で数学的アニメーションを作ることがメインテーマなのですが、前半部分でAS3.0の基礎を分かり易く解説されています。後半の重力, IK, 3D表現等のアニメーション解説も楽しい。僕はこれのAS2.0洋書版を読んでFlashの面白さに気付きました。
  • Essential ActionScript 3.0 (Essential)
    Essential ActionScript 3.0 (Essential)

    900ページ以上ある相当分厚い本。基礎からOOPまでを解説。ほぼ網羅しているので、これを抑えておけばAS3博士になれそう。
  • Actionscript 3.0 Cookbook
    Actionscript 3.0 Cookbook

    ActionScript3.0のリファレンス本。問題とその解決法が1ページぐらいで細分化されているので空いた時間にちょっとずつ読み進められる。WebでAS3のソースを見て勉強する時の字引としても使う。ただ、時期的に初期の本なので、AS3自体が仕様変更してたりするので正誤表は必読。
  • Object-Oriented Actionscript 3.0
    Object-Oriented Actionscript 3.0

    7/23に発売されたFlash&OOP本。AS2.0版は持っているのだけど、オブジェクト指向の初歩的な解説から入って、後半は僕の理解を超える難度になっていきました。今度こそ理解できるか?
この順番でどう?(AS2.0)
  • Foundation Actionscript Animation: Making Things Move (Foundation)
    Foundation Actionscript Animation: Making Things Move (Foundation)

    スクリプトでアニメーションさせる方法を学べる。プログラムの知識というよりも数学や物理の知識が必要。バネの表現や3D表現など、汎用性の高いテクニックを身に付けられ、個人の表現力をレベルアップするのに最適。参考までに、僕が調べた英単語リスト。2007年4月に、AS3対応版も発売されました。
  • ゲーム開発のための数学・物理学入門 Beginning Math and Physics for Game Programmers
    ゲーム開発のための数学・物理学入門  Beginning Math and Physics for Game Programmers

    「Making Things Move!」の世界を突き詰めたい人用のステップアップのための本。行列や物理運動、2D/3D表現。Flashの本ではなく、じっくり読むタイプの本なので、あとまわしにしてもいいかも。
  • Flash 8 Essentials
    Flash 8 Essentials

    Flash8の新機能を紹介。全10章が独立した構成で、興味のある部分から読めます。フィルタやビットマップ、ビデオの使い方とかを、基礎から順を追って理解していけるので、ゼロからスクリプティングできるようになる。僕はビットマップ関連の作業の際のリファレンスとして常用しています。
  • .fla―Idea of Flash Creation
    .fla―Idea of Flash Creation

    上の本でFlash8の基本を身に付けて、それをどう面白い表現に落とし込むかを学べます。深津さんの、試行錯誤・実験しやすいスクリプティング、クラス設計に凄さを感じました。YouTubeやFlickrのAPI、PHPとの連携記事も。
  • FLASH ActionScript 2.0入門完全ガイド+実践サンプル集 [CD-ROM付]
    FLASH ActionScript 2.0入門完全ガイド+実践サンプル集 [CD-ROM付]

    ここまでで表現力が付き、テンションが上がるので、その勢いで難解なオブジェクト指向に挑戦。プログラム経験のない人がいきなり英語のOOP本を読むのは厳しい。この本で継承とかインターフェースとかポリモーフィズムとかの用語を理解しておくといいかも。
  • オブジェクト指向でなぜつくるのか―知っておきたいプログラミング、UML、設計の基礎知識―
    オブジェクト指向でなぜつくるのか―知っておきたいプログラミング、UML、設計の基礎知識―

    Flashの本ではありませんが、OOPの概念を気軽に読めるボリュームで解説してくれます。英語と日本語のOOP用語の対応を図るためにも「Object-oriented Actionscript for Flash 8」と併読するのがおすすめ。なんとなく読んでおくだけでも結構違うのでは。
  • Object-oriented Actionscript for Flash 8
    Object-oriented Actionscript for Flash 8

    前半はOOPの利便性や基本の紹介。デザインパターンやMVCの理解。13章からグッと難しくなって大変。Flash8対応。
  • Essential Actionscript 2.0
    Essential Actionscript 2.0

    上の本よりもさらにOOPプログラマ向け。同じOOP本ということでやや重複しており、こちらはMX2004時代の本なので見送ってもいいかも。分かりやすい英語で良著。この本のAS3版が出たら間違いなく買い。

Page Top