Oculus Riftでメーヴェを作ろう(5) 扇風機を制御して風を感じる
飛んでる感を増すために”風”を感じたいと思っています。
Oculust Rift のデモでもよくサーキュレーターを前に置いてるのを見たりします。
今回はせっかくArduinoと繋いでるので、Arduinoから扇風機を制御できるようにしたいと思います。
扇風機は秋葉原で特価の USB 扇風機を買ってきました。
電源が USB くらいの低電圧だと扱いやすいですね。
今回はモータドライバ IC を使って、Arduinoから扇風機の風力を制御してみようと思います。 ではさっそく作業です ♪
USB ケーブルをチョン切る
”USB→ 扇風機”の間に回路を挟んで制御するために、ケーブルを切断します。
回路を組む
モータドライバ IC には TA7291P を使います。
回路についてはコチラ → 建築発明工作ゼミ 2008: Arduino 小型 DC モータ/TA7291P の通りに組みました。
Arduinoの 1,2 ピン(デジタル入力)と 3 ピン(PWM 入力)を使います。
入力電源は今回の場合 USB ケーブルを繋いでいます。
なんかゴチャゴチャ、いかめしいですね。
Unity プログラム
今回も UNIDUINO を使います。
起動時に PIN 設定と正転反転の信号を送ります。
void Start () { arduino.pinMode(1, PinMode.OUTPUT); //motor arduino.pinMode(2, PinMode.OUTPUT); //motor arduino.pinMode(3, PinMode.PWM); //motor
arduino.digitalWrite (1, Arduino.HIGH);
arduino.digitalWrite (2, Arduino.LOW);
}
↑ キーで風力アップ、↓ キーで風力ダウンする場合こんな感じになります。
3 番の PWM ピンに PWM 値を与えます。
PWM 値は 0~255 で 255 が最大パワーになります。
int fanSpeed = 0;
void Update () { if (Input.GetKey (KeyCode.UpArrow) && fanSpeed < 255 ) { fanSpeed ++; arduino.analogWrite(3, fanSpeed); } if (Input.GetKey (KeyCode.DownArrow) && fanSpeed > 0 ) { fanSpeed --; arduino.analogWrite(3, fanSpeed); } }
完成 ♪
とりあえずキー操作で扇風機が動きます。
これを画面内のメーヴェの動きによって制御しようかと思います。
ただ、、、ちょっと風が弱いなぁ、、、USB 扇風機だとこんなものかなー。