フィジカルコンピューティング Arduino 0312006003 浅川 和久 2009/5/26
フィジカルコンピューティング Tom lgoeらが中心となって教えているコースの名称(NYU Interactive Telecommunications Program) インタラクティブデザインを教える一つの方法 アートやデザインの中で独立した分野 直接触れて感じることのできるデバイス Wiiリモコン TomIgoe(トム・アイゴ)らが中心となって教えているコースの名称(NYU http://itp.nyu.edu/) 2009/5/26
フィジカルコンピューティングの構成要素 2009/5/26 センサ 光 圧力 音 アクチュエータ LED モータ ソレノイド プロセッサ マイコン マイコン+PC I/Oモジュール+PC 2009/5/26
マイコン 低価格、コンパクト、スタンドアロン プログラミングを習得するのは敷居が高い リソースの制限 プログラム マイコン うまく動作しなかった場合、どこが悪いのか切り分けが難しい 音声、動画などの再生を扱うのが難しい マイコン 2009/5/26
マイコン+PC センサ・アクチュエータのやり取りはマイコン ほかの処理はPC マイコン・PCの両方のプログラミングが必要 マイコン プログラム マイコンとPCのやり取りの仕方を自分で考える 両方のリソースを管理 マイコン USB プログラム 2009/5/26
I/Oモジュール+PC センサ・アクチュエータのやり取りはI/Oモジュール ほかの処理はPC スタンドアロン化が難しい I/Oモジュール パソコンの機能を使うことができる 音声や動画 パソコン側のプログラミングだけ 動作時にパソコンが必要→スタンドアロン化が難しい I/Oモジュール USB プログラム 2009/5/26
Arduino(アルデュイーノ/アーデュイーノ) http://k-tai.impress.co.jp/cda/article/stapa/40638.html 2009/5/26
Arduino(アルデュイーノ/アーデュイーノ) イタリア生まれのマイコンボード マイコン+PC オープンソースハードウェア ソフトウェア開発環境(IDE)無料 IDE対応OS Windows/Mac OS X/Linux Arduino本体 + IDE + パソコン + USBケーブル 3200円 2009/5/26
Arduino IDE エディタ、コンパイラ、基板へのファームウェア転送機能 Processingベース Wiring言語から派生 C/C++風の構文 2009/5/26
Processing ソフトウェア未経験者でも容易にプログラミングできる Javaを単純化し、グラフィック機能中心 void setup() { size(200,100); } void draw() background(120); 電子アートとビジュアルデザインのためのプログラミング言語 プログラミング未経験者がプログラミングを初体験するのに適してる Javaを単純化 グラフィック機能中心 幅200、高さ100にウィンドウサイズを指定する 繰り返しウィンドウをグレースケールで塗りつぶす 2009/5/26
Arduino言語 /* * Blink * http://www.arduino.cc/en/Tutorial/Blink */ int ledPin = 13; // DIGITALの13番にオンボードのLED void setup() { pinMode(ledPin, OUTPUT); // 出力に設定 } void loop() digitalWrite(ledPin, HIGH); // LEDをオン delay(500); // 500ミリ秒待つ digitalWrite(ledPin, LOW); // LEDをオフ delay(500); 2009/5/26
Arduino XBEE Shield ZigBeeによる近距離通信を行うための拡張ボード Bluetoohといった無線PersonalAreaNetworkに属する 伝送速度250kbps 遅い 最大65535ノード 複雑な設定は不要で30ミリ秒でアドホックネットワークを構築可能 15ミリ秒でスリープ状態から回復 ボタン電池1個で1年間 単三2本で2年 8000円 http://www.mecharoboshop.com/Products/physicalcomputing/arduino/index_html 2009/5/26
Arduino Ethernet Shield 4200円 http://www.switch-science.com/products/detail.php?product_id=69 2009/5/26
GPSロギングArduinoシールド http://jp.makezine.com/blog/2008/07/gps_logging_arduino_shiel.html 2009/5/26
Arduino PC上の制御言語 Adobe Flash Processing Max/MSP Pure Data SuperCollider 2009/5/26
Adobe Flash Adobe社(旧 Macromedia社) 音声、ベクターグラフィックスのアニメーションを組み合わせてWebコンテンツを作成するソフト、作成されたコンテンツ 双方向(マウス、キーボード) Flash Player ActionScript(ECMA Scriptをベースに拡張) MXML(Macromedia Flex Markup Language) 2009/5/26
Java/ActionScript MXML Java ActionScript JButton myButton = new JButton(“OK”); var myButton:Button = new Button(); myButton.label = “OK”; MXML MXML <mx:Button id=“myButton” label=“OK” /> 2009/5/26
Adobe Flash 技術環境 実行環境 PC/携帯 サーバ Flash Media Server ColdFusion BlazeDS Flash Lite/Flash Player/AIR Gainer Arduino Wii /DS iPhone/iPod touch サービス Flash Collaboration Service Stratus Adobe Wave Genesis 実行ファイル SWF/AIR Alchemy Flash CS4 Flex SDK C/C++ Flex Builder(Gumbo) Configurator/Patch Panel/Pixel Bender SWC/AS Photoshop CS4 Illustrator CS4 Fireworks CS4 Flash Catalyst 2009/5/26
提案 マイコン側:Arduino言語 PC側:ActionScript3.0/MXML マイコン側:ActionScript3.0/MXMLをArduino言語に変換する 2009/5/26
提案 /* * Blink * http://www.arduino.cc/en/Tutorial/Blink */ int ledPin = 13; // DIGITALの13番にオンボードのLED void setup() { pinMode(ledPin, OUTPUT); // 出力に設定 } void loop() digitalWrite(ledPin, HIGH); // LEDをオン delay(500); // 500ミリ秒待つ digitalWrite(ledPin, LOW); // LEDをオフ delay(500); var ledPin:uint = 13; var arduino:Arduino = new Arduino(); arduino.addEventListener(Event.SET_UP,setup); arduino.addEventListener(Event.LOOP,loop); function setup(e:Event):void { arduino.pinMode(ledPin,OUT_PUT); } function loop(e:Event):void arduino.digitalWrite(ledPin,HIGH); arduino.delay(500); arduino.digitalWrite(ledPin,LOW); 2009/5/26
提案 /* * Blink * http://www.arduino.cc/en/Tutorial/Blink */ int ledPin = 13; // DIGITALの13番にオンボードのLED void setup() { pinMode(ledPin, OUTPUT); // 出力に設定 } void loop() digitalWrite(ledPin, HIGH); // LEDをオン delay(500); // 500ミリ秒待つ digitalWrite(ledPin, LOW); // LEDをオフ delay(500); <Setup> <pinMode pin=“13” mode=“OUTPUT” /> </Setup> <Loop> <digitalWrite pin=“13” write=“HIGH” /> <delay time=“500” /> <digitalWrite pin=“13” write=“LOW” /> </Loop> 2009/5/26
参考文献 GainerBookLabo+くるくる研究室, +GAINER,オーム社,2008 Flash OOP Japan,Flash OOP for ActionScript 3.0,翔泳社,2008 GAINER.cc, http://gainer.cc/ MAKE: JAPAN, http://jp.makezine.com/ 5分で絶対に分かるZigBee @IT, http://www.atmarkit.co.jp/frfid/special/5minzb/01.html スタパ齋藤の「週刊スタパトロニクスmobile」 Arduinoでマイコンしよう!!, http://k-tai.impress.co.jp/cda/article/stapa/40638.html IT用語辞典e-Words,http://e-words.jp/ Arduino,http://www.arduino.cc/ Adobe,http://www.adobe.com/ 2009/5/26