12454

ラク楽実践 VR日本バーチャルリアリティ学会誌第 15 巻 2 号 2010 年 6 月

ラク楽実践 VR- 手と足と頭を使え！ VR システムの作り方 -いまや Twitter は花盛り，ネット世界をすっかり飛び出し，テレビや新聞，政界まで巻き込んで大変なブームになっています．そこにこれまたお手軽にプログラミングができると人気の Arduino．この二つの組み合わせから，ものすごいスピード感とともに登場し話題をさらった 21 世紀のしゃもじ “Yosotter” の開発秘話を今回はご紹介いただきました．
VR やインタフェースの研究ではデータ収集や機器制御のための回路をどうやって身につけたり，デバイスに仕込んだりするのかは皆の悩みどころ．Arduino ではホビー感覚でそれができると評判です．記事では Arduino のプログラミングもご紹介いただいたので，「こんなに簡単なら，一度試してみるか！」と思われる方もきっと多いのでは？
日浦慎作（広島市立大学）

第 20 回
着想から学会発表まで２時間 !?
〜 Arduino でラピッドプロトタイピング〜
宮下芳明

中村裕美

吉川祐輔（明治大学）

1. Yosotter の背後にあったもの
熱海で行われた WISS2009 では，日常生活の情報をTwitter に投稿するシステムが多く発表され，猫の行動ログをとる研究もあったことから「猫も杓子も Twitter」という流行語が生まれていました．この流れを受け，筆図 2 Yosotter ハードウェア

者らはシニカルな発想で「杓子のほう」も制作し，ご飯をよそうと Twitter に投稿するしゃもじ「Yosotter」( 図 1)として飛び入り発表を行いました [1]．

図 3 「やっつけ賞」 受賞を受賞するに至りました ( 図 3).

図 1 Yosotter スライド

短時間での実装を行えたのは，この学会に偶然学生食堂から借りてきたしゃもじに加速度センサをテープが持ってきていた Arduino というフィジカルコンピューティング用のボードがあったからです ( 当研究室にはで貼り付けたプロトタイプ ( 図 2) ではありましたが，デモ発表は好評を博し「着想から学会発表まで 2 時間しかArduino やセンサを常時携帯したりアクセサリーとして身につけたりする学生が所属しています )．これがあれかかっていない」ことから，「やっつけ賞」なる特別賞

ば，加速度センサの値を取得して Processing のプログ

54

ラク楽実践 VRJVRSJ Vol.15 No.2 June, 201055125

ラムに渡すことが出来ます．あとは Processing を用いてTwitter 投稿プログラムを用意すればいいので，実質数十行のプログラムとして実現できるわけです．
2. Arduino とはArduino ( アルドゥイーノ ) は単純な入出力を備えたボードと開発環境から構成されるシステムです．イタリ
ア発のプロジェクトであることから，基盤の裏にイタリアの地図がプリントされています．
Arduino の使い方はとても簡単です．USB と Arduino

図 4 眉間での拡張現実感情報量制御 F.A.R. Vision

ボードを接続し，IDE 上で簡単なプログラムを書いたのち，それをボードにアップロードします．
そうするとボードはプログラムを実行するというわけです．その後はス

3. 他の実装例

タンドアロンでも動作させることができます．
この Arduino 言語は Processing とほぼ同一と言えるの当研究室で発表している他の実装例としては，意図した形状の「ブレた写真」を得ることができる Camera
Shake Sequencer [2] があります．例えばマウスでハートで，文字数も少なくすっきりしたソースになっています．
例えば
digitalWrite ( ピン番号 , HIGH または LOW) ;の絵を描くと，Arduino からの出力によって二つのサーの 1 行を実行するだけで，そのピンの通電をオン / オフできます．遅延を指定する delay ( ミリ秒 ) ; を挟んでルー動かすことが出来ます．連続撮影した画像を合成すれば，プさせると，LED の点滅プログラムがすぐ作れます．

です．

入力については，
x = analogRead ( ピン番号 ) ;また，眉間の動きで拡張現実感の情報量を制御する
F.A.R.Vision [3] もあります．HMD の眉間部にとりつけとすればそのピンの電圧を読むことができます．例えば 3 軸加速度センサは三つの出力を持っているので，これを 0，1，2 番のピンにつなぎ，x = analogRead (0) ; y =たフォトリフレクタの出力値によって，拡張現実感上analogRead (1) ;を寄せると，対象物に関する情報がオーバーレイされていくインタフェースになっています．NyARToolkit forz = analogRead (2) ;ボモーターを動かし，ウェブカメラをハート型の軌道でハート型にブレた写真を得ることが出来る，というわけで表示される情報の粒度を変えたり，仮想オブジェクトの透明度を制御することができます ( 図 4)．
眉間にしわと実行するだけで軸の加速度の大小を 1024 段階で得ることができます．
Processing による他のプログラムと連携してシリアルProcessing があるので，ARToolKit を用いたプログラム通信するのも簡単です．Arduino 側のプログラムでSerial.begin ( データ転送レート ) ;を Processing では数十行で作ることができます．

を最初に実行しておき，Serial.print ( 値 , BYTE) ;多彩なシステムを手軽に実装可能なのです．加えて，Arduino がオープンソースハードウェアであり，かつ低価格 (4000 円程度 ) なのも魅力と言えるでしょう．

こ の よ う に，Arduino と セ ン サ を 組 み 合 わ せ れ ば，とすればその値を BYTE 型でシリアル送信させることができます．こうしておくと，Processing のプログラム[1] 宮下芳明，中村裕美，吉川祐輔．Yosotter：「猫も杓子からはマウスイベントと同じ感覚で使うことができ，シも Twitter」の猫じゃない方，WISS2009 ( 飛び入りデモ発表 )リアルイベント関数
void serialEvent (Serial p) { 〜 }[2] 中林隆介，宮下芳明 . Camera Shake Sequencer： ブレの中で，変数 = myPort.read () ;た写真を撮る新しいカメラの研究，インタラクション
2010, Fresh From the Oven Session (2010)[3] 中村裕美，宮下芳明 . F.A.R. Vision : 拡張現実感のという操作を行うと，送られてきた値を変数に代入することができます．
Yosotter のプログラムでは，Arduino から加速度セン情報量を制御する眉間フェーダー，インタラクション
2010 論文集，pp.177-180 (2010)

サの Z 軸の値を Processing 側に送り，しゃもじがひっくり返されたかどうかを判定しています．Twitter への投稿については Twitter4J という TwitterAPI の Java ラッパーを使用すれば，数行のコマンドで実行可能です．

55