ちょっと未来

色々作って、色々書きます。最近はOculus Riftでメーヴェ風フライトシミュレータ作ってます

Oculus Riftでメーヴェを作ろう(8) フットペダルでターボ加速!

飛行スピードをコントロールする手段は、現状ありませんでした。
けど実際試してみると、ビューンって加速したくなったりします。

そこでナウシカの映画を見たところ、足元のペダルでビューンって加速していました。
ペダルを踏むとエンジンで加速するらしいです。
ふむ、これそのまま実装してみましょう(笑)

f:id:wasan:20140921193830p:plain

工作

秋葉原でフットスイッチを買ってきました。700円くらいでした。

f:id:wasan:20140921192313j:plain

ソッコー切断します。
単純に2本のケーブルがあります。仕組みは普通のスイッチですね。

f:id:wasan:20140921192348j:plain

電子回路

回路はコチラ↓を参考にプルダウン回路で組みました。
http://baticadila.dip.jp/arduino_002.html

プルアップorプルダウンのどちらにするかの判断は

  • 通常時ON→プルアップ 回路
  • 通常時OFF→プルダウン回路

って考えでよいみたいですね。

普段はターボ加速しない想定なのでプルダウンでいきます。

プログラム

今回もUnityアセットのUNIDUINOを使ったプログラムです。

Arduinoの8番ピンをデジタル入力として使います。

reportDigital()のところがちょっと謎な気配ですが、チュートリを読んだ所
(byte)(FOOT_SWITCH_PIN/8)はピンのportを調べるロジックのようです。要はどのピンだろうと、こう書いておけばOKそうです。

    int FOOT_SWITCH_PIN = 8;
     
    void Start( )
    {
        arduino = Arduino.global;
        arduino.Setup(ConfigurePins);
    }
 
    void ConfigurePins( )
    {
        arduino.pinMode(FOOT_SWITCH_PIN, PinMode.INPUT);
        arduino.reportDigital((byte)(FOOT_SWITCH_PIN/8), 1);
    }

デジタル入力の読み取りはこんな感じです。
スイッチが押されたら、メーヴェを加速させます。

    void Update () {
        if(arduino.digitalRead(FOOT_SWITCH_PIN) == 1){
            speedUp(); // 飛行速度の加速メソッド
        }
    }

実行

足元にフットスイッチを置きます。
最終的にはメーヴェ筐体(現状でいうダンボール...)の上に装着するつもりです。

f:id:wasan:20140921193820p:plain

フットスイッチ踏んで、、、
ターボ加速!画像じゃわかりませんね(笑)

f:id:wasan:20140921194033p:plain

ターボ加速中は、機体後ろから火炎のようなものを排出します。
振り返らないと見えないけど、火炎が空中に尾を引く感じは爽快です。

f:id:wasan:20140921194138p:plain