Virtual Reality Fan controller

Hi all.

I have a VR headset, and a number of games/sims (racing, rolleroaster, etc) which are all working great. I've stuck a desk fan in front of me a couple of times, which makes an incredible difference to the whole VR experience, but is pretty clunky and weird.. What I want to create is a small bank of fans (computer case fans probably) which will be speed controlled according to data coming from the various games.

I have checked, and the games that I want to plug in to do have API's available (REST style API's). I'm OK with coding, but haven't really done anything like this before, so not sure about the feasability, or what sort of hardware I would need to create the controller.

My initial thoughts are that I can create a controller with an arduino that listens over the USB interface for a number (1-100 or similar), and controls the connected fans using PWM according to that value. I would then need to just create a piece of middleware to read the data from the REST API's, extract (and convert/scale) the velocity data, and send it over the USB interface to the controller. Probably not the most elegant solution, but as a lot of the API's are different, I think for now that's the best way.

In terms of physical hardware, I was thinking about something like:

So my questions are:

  • Before I go too far, is this a viable path to take? I've seen a couple of thermal/light controlled projects similar to this, so I guess I'm really thinking more here around whether the whole middleware/data over USB idea is a good one, or if I should be handling this a different way.
  • If all looks OK, then in terms of components, what kinds of components am I looking at to make a working circuit that won't blow up? I did see a post at Arduino for Beginners: Controlling fan or motor speed with PWM which was helpful, but me being more of a software guy, I'd be worried that I'll fry a board or something because I've missed an important component!

Sorry if that's too vague at all - first post and all :slight_smile:

The hardest part, I think, is extracting useful (say speed and direction relative to wind) information from the game. That is not an Arduino problem. The next part is sending the data to the Arduino from the middleware. If the middleware can access a serial port that part is relatively easy. See serial input basics for information on receiving (and sending) data over the serial port. There are lots of fan control pages on the net. Look for one that uses a logic level MOSFET to drive the fan. Make sure the fan can be driven with PWM, some older brushless fans can't.