mechatronics / robotics
Blog

vr

スマホVR用コントローラを製作

GoogleのCardboardのようなスマートフォンを利用した簡易VR用のコントローラを作りました。筐体を両手で保持しながら指でゲームパッド的にボタンを押せるものです。通信はBluetooth(BLE)を使っています。 ⚫️コントローラ側 ボタン(8個)の押されている状態を8bitで表して、それをBLEでスマートフォン(iPhone)に送信します。 BLEモジュールはRN4020を、CPUはLPC1114を使用しました。下記のサンプルコードはArduino的に書いたものです。 サンプルコード: ⚫️スマホ側 スマホに表示するサンプルアプリはUnityで作ります。空間にCubeがひとつだけあってコントローラのボタンで視点(カメラ位置)を前後左右に移動させることにします。 (1) まずGoogle VR SDKをインポートします。Cubeがひとつあるプロジェクトを開いた状態で、ダウンロードしたGoogleVRForUnity.unitypackageをダブルクリックしてimportします。ProjectビューにGoogleVRがでてくるのでそのなかのPrefabs>GvrViewerMainをHierarchyビューにドラッグ&ドロップします。再生ボタンで実行すると両眼用の画面がでてくると思います。 (2) コントローラからのコマンドをカメラ位置に反映させるためにMainCameraにスクリプトを追加します。コマンドをcmdとして受け取ってその値によってカメラ位置を移動します。OnUpdateBle(string command)がBLEでコマンドを受信した時にiOS側から呼ばれるコールバック関数です。 (3) 次にコントローラとBLE通信するiOSソフト(Native Plugin)の部分です。Objective-cで記述して.mmという拡張子にします。 UnitySendMessage()のところでUnity側にコマンドを送信しています。extern “C”の部分はNative Plugin側の呼び出しインターフェイスで、Unity側のc#インターフェイスから呼ばれます。 (4) 最後にUnity側のc#インターフェイスです。

PAGETOP
Copyright © Meuse Robotics All Rights Reserved.
Powered by WordPress & BizVektor Theme by Vektor,Inc. technology.