やってたことその1 けのじばくだん
(大体インターン用に適当に書いたドキュメントから引っ張ってきてますよ)
なんだっけそれ
- VRHMDをかぶった解除者と、解除の手助けをするオペレーターの二人で協力して実ハードウェアの爆弾(を模したもの)を解除するコンテンツ
- 解除者とオペレーターはそれぞれしか持ち得ない情報を持っており、協力しないと絶対に解除できない(例:解除者はHMD越しでは色が見えないが、どの色からピンを引き抜けばいいか知っている。オペレーターはどこのピンがどの色かを知っている)
- 解除者はHMD越しに両眼カメラで前方を見ることができるが、解像度が低く色も白黒になって居るため視界が悪く、手探りで解除しなければならない。
- 下記記事に掲載されました
どうやったん
ハードウェア
-
爆弾側
爆弾側は、Arduinoとmbedの2台のマイコンを用いて制御、そのうちArduinoは入力処理、mbedは出力処理を担当、2台に分けたのはより爆弾らしい風体にするためでもある。
入力に用いたギミックは、ブレッドボード上に配線したピンの引き抜き、タクトスイッチを複数並べ番号を割り振りナンバー入力、トグルスイッチを3つ並べて順に操作、最後にミサイルスイッチの操作である。
出力に用いたギミックは、8連リレーモジュールをON/OFFさせることで時限爆弾にありがちな「カチカチ」という音と振動を発生させる、圧電ブザーを用いて、カウント開始時に「ピピッ」という音を鳴らしたり、解除失敗時に「ビーッビーッ」という警告音を鳴らしたりする、7セグ2連LEDを用いて残り時間を表示するなどである。
-
HMD側
HMD側はOculusRift DK2を用いて、DK2の前面にOvrVisionを取り付けて解除者の視界として利用した。
ソフトウェア
ソフトウェアは、Unityを使用し、UnityとArduino、mbed間はシリアル通信でやり取りを行わせた。
爆弾解除のステート管理は、Arduinoが行っており、UnityはArduinoから送られてきたステート番号に沿って、VR空間内での情報表示等を行う。
また、制限時間の管理はUnity上で行っており、現在の残り時間の数値をmbed上に送信することで、mbedはリレーのカチカチというスイッチのタイミングを変化させ、また、残り時間を7セグLEDに表示させる。