OpenVR – 0 : Story
OpenVR – 2 : Software
In an earlier post, I mentioned story of OpenVR project. I will guide you through building an OpenVR headset, in this post.
OpenVR hardware consists of several parts; electronics, case and lenses.
Before we begin building an OpenVR, let’s make a list of requirements.
Parts:
- Arduino Mini Pro
- GY-85 9DOF IMU
- USB to TTL Converter
- 5.6” 1280×800 LCD Display
- 12V Power Adapter for
- 2x (50mm 5x Aspheric Lenses)
- 3D Printed Case
- Shoulder Sponge Pad
- Some wires
Tools:
- Soldering Iron
- Hot Silicone Gun
- Arduino Software
- Processing Software
Don’t try lenses on your eyes in sunlight, room light, anything other than a really close object.
You can use tape instead of hot glue, if you are hesitant about placement of any part.
- Download Github Repository
- Sensor Unit
Connection
Software
IMU Test - Assembly
Lenses
Display
Display Test
Sensor Unit Assembly
Sponge Pad for Nose and Cheek Rest - Calibration
1 – Download Github Repository
https://github.com/ayildirim/3DVR
On repository page, click “Download ZIP” and then unzip the file.
or if you are a more unix-nerdy type, run following code in terminal
git clone https://github.com/ayildirim/3DVR
2 – Sensor Unit
2.A – Connections
GY-85 | Arduino |
---|---|
SDA | A5 |
SCL | A4 |
VCC | VCC |
GND | GND |
2.B – Software
Open following arduino sketch located in extracted zip archive;
/Arduino/Final_arduino_code.ino
Connect arduino to computer using USB to TTL converter.
Upload arduino sketch to arduino.
2.C – IMU Test
While arduino is still connected to your computer, run following processing sketch located in extracted zip archive;
/IMU Calibration – Processing/Razor_AHRS_test/Razor_AHRS_test.pde
You should see 9DOF IMU represented as a box and it should rotate by how you move IMU.
It may be a little off, because we haven’t calibrated our sensor yet. We will do it after we complete assembly.
3 – Assembly
3.A – Lenses
The first and easiest is to place lenses. Gently place lenses onto holes on the 3D printed case. They should fit right into place since holes are specifically designed to hold the lenses.
Afterwards using hot silicone gun, glue lenses from their edges onto case carefully. Don’t pour too much silicone.
3.B – Display
We have the lenses on, but without a display, they are no good. Place the screen onto opening right in front of the lenses. I’m assuming you have the LVDS cable connected between the Screen and the Driver board.
Be very careful with the LVDS cable. They are pretty fragile and you wouldn’t want to wait for another shipment for weeks.
Glue the screen from screwing holes onto 3d printed case, using hot silicone gun.
Place the LCDPlace_1 onto back of the screen. This part will act as a separator between the screen and the driver board. Secure this part onto the screen using hot glue or tape.
I would suggest taping some bubble nylon onto this separator to increase heat insulation between driver board and screen. Because driver board gets very hot and you don’t want to damage the screen.
Then we need to place the driver board on the outside. Tape may not work for securing board because after several minutes of operation, heat from board loosens the tape. So you should probably use hot glue.
3.C – Display Test
Since we have both optics and display ready in place. We better test everything before taking further steps.
Now you should be able to watch a stereoscopic video using your OpenVR.
Connect driver board to your computer via HDMI, and connect power adapter to driver board.
You may see a blue screen waiting for a video signal. You may need to set HDMI as input source using buttons of the driver board.
Display acts just like a monitor. You should set your computer to duplicate its display onto HDMI.
Afterwards search for a stereoscopic 3d video on youtube then play it on full-screen. You should be able to watch it using your OpenVR now.
3.D – Sensor Unit Assembly
We are going to securely place both GY85 IMU and Arduino onto headset.
We will glue IMU onto headset like shown on the photo. We will pour some hot glue and then place and push IMU on it, before it cools.
Then we need to place Arduino onto headset. I would suggest gluing it sideways, because unused pins offers a surface for the glue. And it is easier to plug TTL side of USB to TTL converter, this way.
3.E – Sponge Pad for Nose and Cheek Rest
Carefully cut a linear piece from the sponge pad with a width of 1,5cm~. Then stitch the cut opening of cloth back together.
Then glue it onto plastic surface that rests on your forehead.
Repeat these steps for each plastic piece that rests on your face by carefully cutting pieces from sponge pad.
You should have a comfortable OpenVR, when you finish.
4 – Calibration
For calibration, please visit following page;
https://github.com/ptrbrtz/razor-9dof-ahrs/wiki/Tutorial#sensor-calibration
Photos
- The Latest Build https://flic.kr/s/aHsjVcwspA
- The Earlier Build https://flic.kr/s/aHsjUYveWu
Credits
Thanks to Croccy22 on Thingiverse for his 3D Model.
Leave a Reply