Upload
shigeru-kobayashi
View
5.635
Download
0
Embed Size (px)
Citation preview
WCAN mini ActionScript Vol.5GAINER WORKSHOP in 大須
講師:小林茂+アシスタント:柏木恵美子
2008.03.15
本日の予定
• 第1部(13:30-14:30):イントロダクション• 第2部(14:30-15:15):パーツの購入• 第3部(15:30-17:30):さまざまな入出力
第1部:イントロダクション
• フィジカル・コンピューティングとは?• Gainerとは?• Funnelとは?
フィジカル・コンピューティングとは?
• ニューヨーク大学の ITP*1でTom Igoeが中心となって教えているコースの名前
• PCをブラックボックスとして扱わない• 原理原則を教え「人間がいかにコンピュータとコミュニケーションし得るか?」を考え直す
• デザイナーやアーティストが主な対象
*1 Interactive Telecommunications Program
フィジカル・コンピューティングとは?
一般的なPCから見た人間は?
• キー情報(ASCIIキーボードから)• マウス情報(1つのマウスから)
Alto (1973)
出典:http://toastytech.com/guis/
フィジカル・コンピューティングとは?
• PC+標準入出力デバイスの世界で実現できるインタラクションには限界がある– 人間が直接触れて感じることができない– PCのパラダイムに縛られてしまう
• 統一されたプラットホームならではの良さも勿論ある(例:Flashなどによるウェブ上での表現)
フィジカル・コンピューティングとは?
• 物理的な入出力を活用することによって表現力は拡大する(例:Nintendo Wii)
• 電子楽器などではずいぶん昔からのテーマ
フィジカル・コンピューティングの構成要素
• センサー(例:光、圧力、音、温度、加速度など)• アクチュエータ(例:LED、モータ、ソレノイドなど)• プロセッサ(例:マイコン、I/Oモジュール+PCなど)
ものすごく簡単にまとめるとプログラミング+電子工作
作品紹介1:ゲイナーカイダン
概要
• メディアインスタレーション• 製作期間は約1ヵ月• NTT InterCommunication Center [ICC]で展示中(2008年3月まで)
作品紹介1:ゲイナーカイダン
CdSセル
レーザーモジュールI/Oモジュール
アクチュエータユニット
ACソレノイド
SSR
AC電源へ
作品紹介1:ゲイナーカイダン
作品紹介1:ゲイナーカイダン(拡張版)
写真提供:ICC
作品紹介1:ゲイナーカイダン(拡張版)
写真提供:ICC
作品紹介1:ゲイナーカイダン(拡張版)
写真提供:ICC
作品紹介2:Mountain Guitar
• Ganguプロジェクト:金箱淳一(大学院2年)• 音楽表現のためのギター型インタフェース
– 親しみやすさ– 演奏の奥深さ
• 各種センサ+ I/Oモジュール+PC• IAMAS東京展「いまからだ」などで展示
作品紹介3:みくまりねその3
• メディアインスタレーション• 水に関するオノマトペが題材• 水道の蛇口がインタフェース• IAMAS東京展「いまからだ」で展示(2007.8.24-26)
関連:Sketching in Hardware 2
概要:
• プロトタイピングにフォーカスした会議• 2007.6.23~24の二日間開催• 参加者は約30名• 全員が発表• 濃密な情報交換とコミュニティ作り• 最後に「Sketching in Hardware」を実践
関連:Sketching in Hardware 2
関連:Sketching in Hardware 2
関連:Sketching in Hardware 2
関連:Sketching in Hardware 2
関連:Sketching in Hardware 2
関連:Sketching in Hardware 2
関連:Sketching in Hardware 2
プログラミング+電子工作?
フィジカル・コンピューティングは難しい?
• プログラミングはそれなりのスキルが必要(例:ActionScript、C、C++、Javaなど)• 電子工作にもそれなりのスキルが必要(例:回路設計、実装、検証)• 両方のスキルが必要ということは…
プログラミング+電子工作?
フィジカル・コンピューティングは難しい?
• 確かに習得するまでにはそれなりの努力が必要• できあがった結果は直接的に人間の感覚に訴えるものになる(はず)
プログラミング+電子工作?
最近では扱いやすいプラットホームが登場
• プログラミング– Processing– Flash
• 電子回路のプロトタイピング– Gainer– Arduino– Phidgets
電子工作は大変?
• 誰でもはんだ付けくらいはやったことがある• まずは必要最小限のこと(だけ)を覚えればスタートできる– 電圧~電流~抵抗– 回路図の読み方– オームの法則など– よく使う部品のシンボルと特徴
• 失敗しながら覚えていけばいい• でもUNDOはきかない(=人生と一緒)
フィジカル・コンピューティングの実現方法
マイコンのみ(例: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;
Arduino
フィジカル・コンピューティングの実現方法
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;
Gainerとは?
オープンソース・ハード&ソフトのツールキット
• I/Oモジュール• ソフトウェア・ライブラリ
– ActionScript 2/3– Processing– Max/MSP
Gainer I/Oモジュール
I/Oモジュール+ブレッドボード
さまざまな電子部品
I/Oモジュール+ブレッドボード+部品
入力:曲げ
出力:LEDアレイ
出力:振動モータ
Gainerの特徴
• ブレッドボードとの組み合わによりさまざまな構成を自由に試行錯誤できる
• 入出力の設定をある程度自由に選択できる• 特定の目的のための構成も用意されている
– マトリクスLEDの制御
Gainerの現状
• v1.1.0 RC3をリリース• 書籍「+GAINER」が発売
Funnelとは?
• Gainerはいわばシンプルなドライバ• 複雑な現実世界を扱うには…→もう少し高次のレベルが必要なのでは?
Funnelの特徴
• 疑似コード風のコーディング• 入出力をより簡単に扱うためのフィルタ
– ローパス、ハイパス– アナログ入力を設定した閾値で分割– スケーリング– オシレータ
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
デモ:AS3×Funnel×Gainer I/O
ポートイベントの検出
• ボタンが押されたらメッセージを表示• ボタンが押されたら画面描画を変更
デモ:AS3×Funnel×Gainer I/O
オシレータ
• LEDをチカチカ点滅• LEDをふわふわ点滅• 点滅の周期を変える
Funnelの特徴
• 複数の I/Oモジュールに対応– Gainer– Arduino– XBee– Funnel I/O(開発中)
• ソフトウェア・ライブラリ– ActionScript 3(FlashまたはFlex)– Processing– Ruby
Funnel I/O
FTDIFT232RL
MaxStreamXBee
UART
USB XBee Dongle
Funnel I/O Module
MaxStreamXBee
PSoCCY8C27143
IEEE 802.15.4
UART
PC
USB
Funnel I/O Module
MaxStreamXBee
PSoCCY8C27143
IEEE 802.15.4
UART
Funnel I/O
Funnel I/O
C1
IEEE 802.15.4
Point to Point
Point to Multi
Star
802.15.4 Coordinator802.15.4 End Device
Funnelの現状と今後
• 未踏ソフトウェア創造事業の支援を受けて開発• ビルド004を12/10にリリース• ビルド005を12/17にリリース• ビルド006を12/21にリリース
関連:ものづくりの新しい流れ
• Makehttp://makezine.com/jp/
• Instructableshttp://www.instructables.com/
関連:オープンソースハードウェア
• v1.0をベースにSparkFunがリ・デザイン• Creative Commons Attribution-Share Alike
関連:パーソナルファブリケーション
大量生産→個人が欲しいものを自分で作る時代へ
• 加工機械の低価格化– 切削加工機– 3Dプリンタ– レーザーカッタ– いずれは基板プリンタも…
• マイコンの高性能化&モジュール化• さまざまなツールキットの充実
第2部:パーツの購入
• 制限時間は45分間• 2つのチームに分かれて行動• 第1アメ横または第2アメ横で購入• 15:30に第3部を開始
第3部:実習1(15:30~16:00)
• 電子回路の基礎知識• ブレッドボードの使い方• LEDを点灯させてみる
電圧~電流~抵抗
電気の流れは水の流れのようなもの
• 電圧– 2点間の高度(電位)の違い– 基準点が必要(GND)– 単位はボルト(V)
電圧のイメージ図
低高
電圧~電流~抵抗
電気の流れは水の流れのようなもの
• 電流– 電圧の高いところから低いところに流れる– 単位はアンペア(A)
電流のイメージ図
少多
電圧~電流~抵抗
電気の流れは水の流れのようなもの
• 抵抗– 電流の流れにくさ– 単位はオーム(Ω)
抵抗のイメージ図
低 高
電圧~電流~抵抗
よく出てくる補助単位の例
• 1,000倍を表すキロ(例:1kΩ)• 1,000,000倍を表すメガ(例:1MΩ)• 1
1,000を表すミリ(例:1mA)• 1
1,000,000を表すマイクロ(例:50µA)
回路図ってなに?
回路図ってなに?
回路図は電子回路の設計図
• シンボルで表した電子部品の接続を示したもの• シンボルに若干のバリエーションはあるが、基本的には全世界共通
電源の回路図シンボル
+5V GND
スイッチの回路図シンボルと部品例
抵抗器の回路図シンボルと部品例
可変抵抗器の回路図シンボルと部品例
LEDの回路図シンボルと部品例
ブレッドボードってなに?
• 部品の足を穴にさすことで電子回路を形成• はんだ付け不要
– 部品を再利用できる– 回路を組み間違えてもやり直しできる– 耐久性にはやや注意が必要
ブレッドボードの構造
• 横方向のブロックは背面で接続• 縦方向のブロックは未接続• 電源用のエリアは専用に用意されている
ブレッドボードの構造(内部)
• ピンを穴に差し込むと接触して導通• 適切な太さのピンだけを利用する
実習:LEDを点灯させてみよう
LEDを点灯させてみよう
どうして抵抗器が必要なの?
• LEDには適切な電流の範囲がある(例:20mA)• その範囲を超えると簡単に焼き切れてしまう• 適切な値の抵抗器を用いて電流を制限する• 適切な抵抗値はどうやって求める?→オームの法則を用いて計算する
※抵抗器で電流を制限する方法が全てではありません
オームの法則
電圧~電流~抵抗の関係
V = I × R
• Vは電圧で単位はV(ボルト)• Iは電流で単位はA(アンペア)• Rは抵抗で単位はΩ(オーム)
オームの法則
電源電圧− LEDの電圧 = LEDに流したい電流× R
Rを求めるためにこの式を変形
R =電源電圧− LEDの電圧LEDに流したい電流
例:電源電圧が5.0V、LEDの電圧が1.8V、電流が10mA
R =5 − 1.8
0.01=
3.2
0.01= ?
※実際には計算結果に近い値の抵抗器を用いる
例:LEDを点灯させてみる
参考:ジャンプワイヤの色分け
• 赤:電源の+側(+5V)• 黒:電源のー側(GND)• 白・青・黄:センサとの接続など
例:LEDを点灯させてみる(NG)
の方向が違うワイヤをさす位置が違う
にささっていない
実習:LEDをスイッチでオン/オフさせてみる
実習:LEDをスイッチでオン/オフさせてみる
7
第3部:実習2(16:00~17:30)
Funnel入門
• Gainer I/Oを使う• マウス→ボタンによる制御• LEDの制御• さまざまなセンサ
Funnel入門:Gainer I/Oを使う
• Funnel Serverの起動• マウスで I/Oモジュール上のLEDを制御• I/Oモジュール上のボタンでLEDを制御
Funnel入門:Gainer I/Oの出力について
出力には2種類ある
• デジタル出力(dout:0か1の2段階)– LED、モータなど– 状態がシンプルで取扱が簡単
• アナログ出力(aout:0~255の256段階)– LED、モータなど– 連続変化を扱うことができる
Funnel入門:デジタル出力
Funnel入門:デジタル出力
Funnel入門:アナログ出力
Funnel入門:アナログ出力
Funnel入門:Gainer I/Oの入力について
入力には2種類ある
• デジタル入力(din:0か1の2段階)– スイッチなど– 状態がシンプルで取扱が簡単
• アナログ入力(ain:0~255の256段階)– 出力電圧が変化するセンサなど– 連続変化を扱うことができる
Funnel入門:din 0にスイッチを接続
Funnel入門:din 0にスイッチを接続
Funnel入門:ain 0にボリュームを接続
Funnel入門:ain 0にボリュームを接続
Funnel入門:ain 0にボリュームを接続
• SimpleScopeTestを開いて実行• ボリュームを回して変化を確認• ain 1が不安定なのはなぜ?• どうしてボリュームを回すと電圧が変わるの?
Funnel入門:抵抗分圧
Funnel入門:抵抗分圧
Funnel入門:ain 0に光センサを接続
Funnel入門:ain 0に光センサを接続
Funnel入門:ainに加速度センサを接続
Funnel入門:ainに加速度センサを接続
Funnel入門:ainに加速度センサを接続
• SimpleScopeTestを開く• 表示するチャンネル数を3に増やす• x, y, zそれぞれの軸の動きを確認
– 傾けてみる– 振ってみる
Funnel入門:加速度センサの用途
• 動きの検出• 傾きの検出→なぜ加速度センサで傾きが検出できるの?
Funnel入門:傾きを検出する原理
Funnel入門:センサの出力から角度を求める
• フィルタで細かい動きを取り除く• SimpleScopeTestで変化幅を確認する• -1から+1までにスケーリングする• 逆sin関数を用いて角度に変換する
参考書籍
Built with Processing [改訂版]前川峻志+田中孝太郎(2008年・BNN)
参考書籍
ProcessingA Programming Handbook for Visual Designers and Artists
Casey Reas + Ben Fry(2007年・MIT Press)
参考書籍
ものづくり革命パーソナル・ファブリケーションの夜明け
ニール・ガーシェンフェルド(2006年・ソフトバンククリエイティブ)
参考書籍
デザイン思考の道具箱イノベーションを生む会社のつくり方
奥出直人(2007・早川書房)
参考書籍
+GAINERPhysical Computing with Gainer
GainerBook Labo+くるくる研究室(2007年・九天社)
WCAN mini ActionScript Vol.5GAINER WORKSHOP in 大須
講師:小林茂+アシスタント:柏木恵美子
2008.03.15