osc nagoya 2008
DESCRIPTION
The slides for my presentation at Open Source Conference Nagoya 2008.TRANSCRIPT
このセッションの内容
• フィジカルコンピューティングとは• Gainer / Funnelとは
– オープンソースハードウェア– オープンソースソフトウェア
資料→www.slideshare.net/kotobuki
自己紹介
• 1970年愛知県名古屋市生まれ• ローランド株式会社(1993~2004)
– サウンドデザイナー– 技術研究所– ソフトウェアエンジニア
• IAMAS(2004~)– フィジカルコンピューティング– ユーザーインタフェース
普段使用しているプロプライエタリソフトウェア
• Mac OS X• Adobe Creative Suite 3• Adobe Flex Builder 3• Microsoft Office• TextMate(テキストエディタ)• Eagle(プリント基板CAD)
フィジカルコンピューティングとは?
• ニューヨーク大学の ITP*1でTom Igoeらが中心となって教えているコースの名前
• インタラクションデザインを教えるための方法の1つ
• コンピュータが理解したり反応できる人間のフィジカルな表現の幅をいかに増やすか
• デザインやアート教育の1つの分野として定着
*1 Interactive Telecommunications Program
フィジカルコンピューティングとは?
• PC+標準入出力デバイスの世界で実現できるインタラクションには限界がある– 人間が直接触れて感じることができない– PCのパラダイムに縛られてしまう
• 統一されたプラットホームならではの良さも勿論ある(例:Flashなどによるウェブ上での表現)
フィジカルコンピューティングの構成要素
• センサー(例:光、圧力、音、温度、加速度など)• アクチュエータ(例:LED、モータ、ソレノイドなど)• プロセッサ(例:マイコン、I/Oモジュール+PCなど)
→ものすごく簡単にまとめると プログラミング+電子工作
プログラミング+電子工作?
最近では扱いやすいツールキットが登場→「ハードウェアでスケッチ」が可能に
• プログラミング– Processing– Flash
• 電子回路のプロトタイピング– Gainer– Arduino– Phidgets
フィジカルコンピューティングの実現方法
マイコンのみ(例:PIC、AVR)a
b
c
d
A
B
C
D
マイコンmicrocontroller
program
a0]=ain.o;aout.1 = 255;
フィジカルコンピューティングの実現方法
マイコン+PC(例:Arduino)a
b
c
d
A
B
C
D
マイコンmicrocontroller
PC
USB
program
a0]=ain.o;aout.1 = 255;
program
a0]=ain.o;aout.1 = 255;
フィジカルコンピューティングの実現方法
I/Oモジュール+PC(例:Gainer、Phidgets)a
b
c
d
A
B
C
D
I/OモジュールI/O module
PC
USB
program
a0]=ain.o;aout.1 = 255;
ワークショップの紹介
HELLO!!フィジカルコンピューティング
• 日時:2007.12.22-23• 場所:山口情報芸術センター• 参加者:19名• 言語:日本語• 環境:Processing×Funnel×Gainer I/O
作品紹介:Mountain Guitar
• 金箱淳一(大学院6期生)• 音楽表現のためのギター型インタフェース
– 親しみやすさ– 演奏の奥深さ
• 各種センサ+ I/Oモジュール+PC• IAMAS東京展「いまからだ」などで展示• 学生CGコンテストなど受賞多数
関連トピック:Fashioning Technology
Fashioning TechnologyA DIY Intro to Smart Crafting
Syuzi Pakhchyan(O’Reilly Media・2008年)
オープンソースハードウェアとは
• Creative Commonsなどのライセンス下でハードウェアのデータを公開– 回路図– ボードレイアウト– ファームウェア
• 公開されたデータを元に再配布や改変ができる• 少量生産&頒布が容易になった状況を反映したものづくりの新しい流れ
オープンソースハードとソフトの相違点
• 開発にはより多くの資金が必要• 簡単には「コンパイル」できない• 動作検証が簡単ではない• CADソフトは多くがプロプライエタリ• 広範囲のスキル(部品~流通)を要求される• 頒布するには手間がかかる• diffのようなツールがない• リリース後にアップグレードできない
オープンソースソフトウェア
開発コアチーム以外への広がり
• C++ / QuartzComposer(高山さん)• .NET(布留川さん)• Perl(川崎さん)• PureData / vvvv(EXPRE55.NET)• Python(芝尾さん)• Ruby(加藤さん)• Squeak(横川さん)
Funnelとは?:背景
• Gainerはいわばシンプルなドライバ→複雑な現実世界を扱うにはもう少し高次の レベルが必要なのでは?
• 全ての用途をカバーできるツールキットはない→ツールキットの使い分けは容易ではない
• 有線接続だと体験に制限がでてしまう→簡単に利用できる無線接続が必要
Funnelとは?:コンセプト
• スケッチからプロトタイプまでシームレスに使えるツールキット
• デザイナー/アーティストとエンジニアの「共通言語」を目指す
※2007年第 I期未踏ソフトウェア創造事業(美馬PM)
Funnelとは?:関連
Sketching User ExperiencesGetting the Design Right and the Right Design
Bill Buxton(Morgan Kaufmann Pub・2007年)
Funnel:Rubyのコード例
コード例 1 ボタンで I/Oモジュール上のLEDを制御
@gio = Gainer.new
# ボタンが押された(0から1に変化した)らLEDを点灯@gio.button.on RISING_EDGE [email protected] = 1
end
# ボタンが離された(1から0に変化した)らLEDを消灯@gio.button.on FALLING_EDGE [email protected] = 0
end
Funnelの構成
USB XBeeDongle
GainerI/O Module
Arduino(with Firmata)
USB XBeeDongle
Funnel Server
ActionScript 3 Processing Max/MSPetc.Ruby
AS3 Library Processing Library OSC LibrariesRuby Library
Funnel I/OMaxStreamXBee
Funnel I/OMaxStreamXBee
デモ:action-coding×Funnel×Gainer I/O
action-codingとは?
• 開発者:増田一太郎(株式会社メタファー)• JRubyからProcessing APIを利用• プログラムの動的な書き換え• スケッチするような感覚でコーディング
参考書籍
Making Things TalkPractical Methods for Connecting Physical Objects
Tom Igoe(O’Reilly Media・2007年)
参考書籍
ProcessingA Programming Handbook for Visual Designers and Artists
Casey Reas + Ben Fry(MIT Press・2007年)