小林茂に学ぶフィジカルコンピューティング
– Funnelの可能性とActionScriptでの活用実演 –

イメージ:小林茂に学ぶフィジカルコンピューティング

イベント詳細

IAMAS(岐阜県立国際情報科学芸術アカデミー)准教授、Gainer(ゲイナー)およびFunnel(ファンネル)開発チームの中心メンバーである 小林茂 氏をゲストにお迎えし、Funnelの最新デモンストレーションを中心としたフィジカルコンピューティングセミナーを開催いたします。

開催概要

  • 日時:4月17日(金)13:00~16:15(開場:12:30)
  • 会場:東京・渋谷「 ティーズサロン
  • 出演者:小林茂(IAMAS)
  • 料金:3,600円(税込み)※学生料金(数量限定):1,800円(税込み)

ブログなどでご紹介いただく際のバナーをご用意いたしました。

小林茂に学ぶフィジカルコンピューティング

イベントレポート

イメージ:小林茂氏
[小林茂氏]

ハードウェアスケッチとフィジカルコンピューティング

FunnelIAMAS(岐阜県立国際情報科学芸術アカデミー)の准教授 小林茂氏を中心として開発されたアイデアをフィジカルにスケッチするためのツールキットだ。

イメージ:Gainer I/Oモジュールイメージ:FIOv1.3

小林氏は今回Funnelの可能性を語る上で、まずスケッチとは紙にペンで描くように思いついたアイデアをすぐ具現化することである、としてその重要性を語った。このスケッチをベースに開発へシフトする場合、Flash等に代表されるソフトウェア開発では、気軽に実験や組み込みが可能だ。しかし、ことハードウェア開発に至ると、気軽にスケッチすることができず建設的ではなかった。このような状況から、自然とインタラクションデザインでフィジカルなものを絡めた時のプロセスで使えるツールキットの必要性を感じていたのだという。

また、昨今では様々な教育機関で取り上げられ、注目を浴びているフィジカルコンピューティングについても、その中で人間のフィジカル(身体的・肉体的)な行為を、コンピュータがいかに理解・反応するか、その表現の幅を広げる目的があるとした。

小林氏は、人間とコンピュータのインターフェースの関係性としてマウスとキーボードの問題をあげ、ネットワークの通信速度は日々高速化していく中で、人間とコンピュータとの関わりが非常に低速であることを指摘した。マウスとキーボードが実装され、1973年に登場した Alto を紹介し、「マウス・キーボードの30数年以上変わらないスタイルは、ある意味で完成度が高く、今まで通用してきたすごいコンセプトと言えるかも知れない。だが、これが完璧だとは誰も思っていないだろう。人々は日々、ストレスを感じながらパソコンを使っているのではないだろうか。だからこそ、iPhoneのようなマルチタッチを使ったジェスチャーでコントロールできるものがあると、新鮮に感じ、話題になったのではないか」と語った。

イメージ:Alto(1973) 出典:http://toastytech.com/guis/

続いて小林氏が受け持つ講義で作成した、指に挟んで動かすことにより音がでる子供用玩具「アクション!ゆびにんぎょう」と、歯車の噛み合いに応じて音を出し、音のズレによって音楽を奏でる「JammingGear」を紹介した。

イメージ:アクション!ゆびにんぎょうイメージ:JammingGear
[アクション!ゆびにんぎょう(左)JammingGear(右) 写真撮影:蛭田直]

このようなGainerやFunnelといったツールキットを使ったハードウェアスケッチについて、「自分のアイデアを素早く具現化することができ、開発に関しても時間やお金をかけずに早い段階で、その先ブラッシュアップをするのか、やめてしまうのかを判断することができ、コンセプト・アイデア段階のプレゼンテーションにおいても実際に動きを体験し共有することができる面でも大きなメリットがある」と、その必要性を述べた。

フィジカルとバーチャルを繋ぐGainerそしてFunnel

小林氏はフィジカルな世界(物理的な世界)とバーチャルな世界(PCやインターネットの中)を繋ぐ方法として3つの方法を紹介した。

  • ・マイコンのみ(PIC, AVR)
  • ・マイコン+PC(Arduino, Wiring)
  • ・I/Oモジュール(Gainer, Phidgets)+PC

イメージ:フィジカルな世界とつなぐ方法:マイコン+PC(例:Arduino, Wiring)イメージ:フィジカルな世界とつなぐ方法:I/Oモジュール(Gainer, Phidgets)+PC
[マイコン+PC(左)I/Oモジュール(Gainer, Phidgets)+PC(右)]

それぞれの特性と問題点やメリットを解説。その中でも2006年に開発されたGainerについて「Gainerはいわばシンプルなドライバであり、センサがどのような状態になっているか、またLEDを発光させるなどの実装が手軽にでき、プログラムも簡単である」とその利点をあげた。しかしその反面、Flash ActionScript等の作法に行き違いがあり、開発におけるハードルとなっていたと振り返った。
それらの問題やフィジカルコンピューティング独特のノウハウをふまえ、2007年に開発がスタートしたFunnelは、無線接続も可能な高レベルフレームワークである。APIの規模もそれほど大きくなく、シンプルな作りになっているとし、配布はSWC形式(コンパイルされたActionScriptファイル)ではなく.as形式(ActionScriptソースコード)で配布することで透明性を重視したと語った。

フレームワークとしてのFunnel

イベントの途中、小林氏の紹介によりロクナナワークショップ Gainer入門講座 の講師であり、合同会社アライアンス・ポート のグラフィックデザイナーの 山辺真幸 氏が登壇。実際にFlash ActionScriptを使用し、加速度センサとPapervision3Dでの実装デモをライブコーディングで実演。ActionScriptとの親和性を解説した。

イメージ:山辺真幸氏
[山辺真幸氏]

デモでは、Papervision3Dで生成されたキューブが、加速度センサの入力データに応じて動作した。ライブコーディングでは、ハードにGainerを使用。Funnelサーバの設定からGainerのI/Oモジュールに適したコードの書き換えを行った。Funnelライブラリを使用しているため非常にシンプルに記述することが可能なようだ。また、Funnelの特徴でもあるフィルタについても解説し、入力される値を指定の下限値と最大値へリニアにスケーリングが可能なScaler、入力に対して移動平均フィルタをかけて滑らかにするConvolution、アナログの入力値に対してしきい値と不感帯を設定し、0か1かの2つに分割するSetPointを紹介。このような複雑なフィルタ処理も、Funnelならば一行で記述が出来るとした。

続いて FIO を使用した無線通信での実演。FunnelサーバのSettingファイルやActionScript側での生成インスタンスなど、若干の変更はあるものの移行はスムーズで、ドライバやライブラリの換装もなくかなりシンプルだったといえる。山辺氏によれば、「最初からFunnelで開発すれば、あとで無線にしたい場合でもモジュールを選ばない利点があるので、細かいところを気にしなくて良い」と語った。

イベント後半では主に電子回路の基礎知識から、Funnelでのイベント処理、センサに応じた入出力制御についてデモを交えて解説。前述のとおり、Funnelは、非常に優れたフィルタ処理クラスを持つ。これによって、異常な値を受け取っても適正な値に、専門知識が無くても簡単に変換させることができるのが嬉しいのは筆者だけではないだろう。フィルタでは入力以外に出力にも対応し、LEDの点滅を制御するOscクラスも紹介された。味気ないチカチカ点滅や、Macのスリープランプようなふわふわとした点滅まで、パラメータを調節するだけで制御可能だ。ただし、LEDなどをOscクラスからしかコントロールできないわけではなく、「TweenerやTweensyなどのライブラリから、通常のアニメーションと同様にコントロールすることも可能だ」と語った。

Funnelライブラリでのイベント処理についても、ActionScript 3.0でのイベント処理を踏まえ、addEventListenerで入力をキャッチできるとし、客観的に見てもActionScript 3.0との親和性が高いことへの理解は容易で、特徴を存分に活かしているといえるだろう。

Arduinoの拡張性とGainerのシンプルさ、そこから生まれたFIO

FIO はLilyPad Arduino v1.6から派生してデザインされた Arduino 互換機だ。Arduinoとは世界的に有名なオープンソース・プラットフォームで、IDE(ソフトウェア開発環境)とArduino I/Oボードから構成される。Arduinoは回路図・基板レイアウトが公開されているオープンソース・ハードウェアの側面も持つため様々な派生形が存在する。FIOもその一つと言え、Gainerでは難しかった無線モジュールを実装している。

イメージ:Arduinoの各部紹介
[図版:柏木恵美子]

FIOの無線通信方式にはWi-Fi(無線LAN)やBluetoothと比べて低速だが接続ノード数が非常に多いZigBee(IEEE802.15.4)を採用。これについて小林氏は「もともと家庭内でリモコンの役割だとか、工場にセンサを多数配置し、監視システムの役割を担うという話もあった。その背景でZigBeeは電池寿命についても前者に比べると断然長く、ネットワークにおいてもBluetoothとは異なりセッションを張らないため、接続の確立までに数ミリ秒のみしかかからないところに注目した」と語り、実際にFIOで無線通信を準備から動作確認までを実演した。

この他にも、イベント当日時点で未公開の最新バージョンFunnel009RC2にも触れ、来場者の関心度はさらに増した。デジタルコンパスやカラーセンサなどのI2Cデバイスのサポート、Funnelサーバのアプリケーション化など新機能は多い。会場で小林氏はFunnelライブラリに追加されたfunnel.i2c.HMC6352 クラスによるデモを実演し「向いてる方向がとれるため、加速度センサと連携した星座アプリや、3Dブラウザなどが実現できるのではないか」と語った。Funnel009RC は本稿執筆時点(2009年04月23日)既に公開されているので、是非チェックしてほしい。

今回のイベントではライブコーディングというアプローチで、FunnelのActionScriptとの親和性、そしてなにより手軽さが来場者に実証されたのではないだろうか。フィジカルコンピューティングのハードルは一見高そうに思えるし、とっつきづらい感があるのは否めない。しかし、実際は非常に手軽で簡単、そのうえ自由度が高いのが事実だ。本稿を読んで興味をもったならば、是非チェレンジしてみて欲しい。

ロクナナワークショップは様々なGainer入門講座を開講しており「 FlashとFunnelで始めるGainer入門講座 」では、今回ゲストとして参加した山辺氏が講師を担当。受講者にはGainer I/Oモジュールとブレットボードを含むツールキットがもれなくプレゼントされる。これを機会にぜひGainer・Funnelを実際に触ってみてはいかがだろうか?

(2009/4/23 加茂 雄亮)