Blog

Takahiko Wada (Twitter, GitHub)
Software engineer / Tokyo.

Oculus Riftでメーヴェを作ろう(5) 扇風機を制御して風を感じる

September 13, 2014

飛んでる感を増すために”風”を感じたいと思っています。
Oculust Rift のデモでもよくサーキュレーターを前に置いてるのを見たりします。

今回はせっかくArduinoと繋いでるので、Arduinoから扇風機を制御できるようにしたいと思います。

f:id:wasan:20140913221956p:plain

扇風機は秋葉原で特価の USB 扇風機を買ってきました。
電源が USB くらいの低電圧だと扱いやすいですね。

今回はモータドライバ IC を使って、Arduinoから扇風機の風力を制御してみようと思います。 ではさっそく作業です ♪

USB ケーブルをチョン切る

”USB→ 扇風機”の間に回路を挟んで制御するために、ケーブルを切断します。

f:id:wasan:20140913222741j:plain

回路を組む

モータドライバ IC には TA7291P を使います。
回路についてはコチラ → 建築発明工作ゼミ 2008: Arduino  小型 DC モータ/TA7291P の通りに組みました。

Arduinoの 1,2 ピン(デジタル入力)と 3 ピン(PWM 入力)を使います。
入力電源は今回の場合 USB ケーブルを繋いでいます。

なんかゴチャゴチャ、いかめしいですね。

f:id:wasan:20140913224044j:plain

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); } }

完成 ♪

とりあえずキー操作で扇風機が動きます。
これを画面内のメーヴェの動きによって制御しようかと思います。

f:id:wasan:20140913224337j:plain

ただ、、、ちょっと風が弱いなぁ、、、USB 扇風機だとこんなものかなー。


Archives
2020 2019 2018 2017 2016 2015 2014 2013 2012 2011 2010 2009 2008 2007 2006 2005 2004