bluetooth arduino

VR Controller (Step 1: Trials)

All the fuss theese days about VR really put me in the mood to try at least something from all the offers which appear on the market. Of course you can go directly for a Oculus, but even that is still only a development kit. So I decided to start small not spending too much from the start, since I didnt know if I like it. So I bought a Google Cardboard. This one is about the cheapest VR you can get :-) since you put your phone into it, load some special apps and games, and you have VR. And I have to say I was amazed.

If you want more than just cardboard, you can go for Durovis Dive, which is basically the same thing 5x more expensive, but, and here comes the interesting part, it comes with the Dive SDK for Unity3D which allows you to make a 3D world for the glasses in about 10 minutes. And it really didnt take longer.

Ok, now you have a full VR experience (if Oculus, Dive or Cardboard) but your hands still hanging there, your actions are still limited on (in my opinion) very old-school HIDs (keyboard, mouse, gamepad, etc.).

Some times ago I started to tinker around with electronics components. Still have pretty basic knoledge about electronics, and don’t understand most electronics signs :-)

And it got me thinking. Given an Arduino, a bluetooth module, some sensors fixed on my body (like tilt sensor, gyro sensor, compass module, and a few buttons), what could stop me to make a next gen game/fitness/generic controller?

My ideea is to do a lot of stuff with it: make a fitness app which will be controlled by running on a treadmill (or using a workout bike). Something like the old Nintendo Wii and the running game from Sports. Or a game like Temple Run, in which running the treadmill faster, gets you faster in the game. Or a shooter where you really run… etc.

For this I would like to create a game controller which records the leg movements, direction, body position, etc. which would then influence the actions in the game. A lot of detals I still need to work out.

I would like to be able to record more then a conventional controller does (more than just up, down, left, right, etc) that’s why I would like to build one and not buy one and break it apart and hack into it. That, and for kicks 😉

STEP 1:  Gather all hardware needed

Well, not as easy as it sounds. I started with an Arduino Uno thinking it will be enough. Had to upgrade to Arduino Mega since it has 3 serial ports, and the SoftwareSerial support on the Uno wasn’t working so smooth. And the reason is the next module. Until now I thought a HC-05 bluetooth module would be enough. And it is up to a point. It only supports SPP for communication. It wasn’t hard to  write a little code on the Arduino, connect it to my smartphone, and use it as a little chat aplication. But as soon as I wanted to connect it as a keyboard or mouse, the trouble started. Using AT commands I configured every relevant flag on the HC-05, only to find out the it actually doesn’t support the bluetooth HID profile, which would allow me that. For that I would need at least a Bluesmirf RN42-HID or a BlueGiga WT12 module, which support both SPP and HID. Or to flash a new firmware on the HC-05 (a really messy solution)

So I can either upgrade to a better bluetooth module, or use the HC-05 in SPP mode, and write an andoid driver app, which converts the messages from Arduino into HID events and deliver them to any Android app. But for this a rooted phone is needed (no problem either).

(… to be continued)