Expanding the Peripheral View of Oculus Rift
by nccwarp9 in Circuits > LEDs
5251 Views, 9 Favorites, 0 Comments
Expanding the Peripheral View of Oculus Rift
Lets remove the black tunnel.
TODO> add milky plexiglass cover to act as diffusion
Introduction
This Instructable is how to easily and fast recreate the basic idea behind the concept put forward by Robert Xiao, Carnegie Mellon University and Hrvoje Benko, Microsoft Research.
The idea is to have controllable light sources fill in the blank within the headset on the outside part of the lenses so the field of view is perceived as enlarged. No more tunnel effect of narrow field of view.
To get started you will need two rings with addressable rgb leds. This instructable will use ws2812 chipset of LEDs. You can get them from all over the place. Adafruit, ebay, or http://www.banggood.com/New-LED-Ring-24-x-WS2812-5...
You will also need a Arduino, I used Arduino Nano as its smaller and more manageable than the big one, but any will do.
And thats it for needed parts.
Connecting the Parts
Red wire is 5V
Black is GND
Green is Signal. Each ring has IN and OUT. First ring is connected to Arduino via pin 12 to IN and its OUT is connected to second rings IN.
Depending from which vendor you buy your rings they could have pins all close to each other (useful) or apart as I have them (harder to organize cables)
Code
There are a bunch of tutorials how to program arduino so I will assume you know how to do it or are capable of finding out.
Code is a variation of Adafruit Ambilight changed to work with FastLED library which enables use of what ever led chipset you will use.
Code can be found on pastebin and was uploaded by.... Guest so no ability to give credit where credit is due.
Change the variable #define NUM_LEDS 94 to #define NUM_LEDS 48 as we have 48 leds on two 24 led rings.
Upload the code to Arduino and thats it for hardware.
Software
Now, we need a way to send information to the rings.
I used AmbiBox. But you could use original Adafruit Adalight code for Processing. But AmbiBox is simpler and I used it for years.
Click on Inteligent backlight display and then on "More Settings" (above Exit).
Select Device > Adalight
Select port to which arduino is connected.
Change Number of zones to 48. And if colors are wrong, change the Order of colors.
Now, you can start playing with lights.
In the Mode: select [Software] Screen Capture, then select Show Areas of capture
Setting Up Screen Capture Areas
Once you click Show areas of capture an overlay will show on
screen where you can setup your zones for each of 48 leds. Click and drag to move the areas. When dragging the corresponding led is lit so you can see what led will be affected. You can turn on and off areas as well as resize them. I turned off leds that are on the inside of the lenses as in research paper.
Most games, at least the ones that I tried had somewhat uniform screen size so you set up your areas once.
The AmbiBox also allows you to save profiles so you can create profiles for each games you play.
Once you are satisfied with your areas click hide areas of capture and you are set.
Conclusion
What is left is to jam the rings in the headset the best way you can.
This was a fast and dirty hack to get a result similar to
the one described in research. It works fine. One thing that still needs to be done is to add plexiglass cover over the ring as diffusor.