How I made my own Google Glass using an Arduino
Have you ever considered getting an augmented reality headset? Were you also wowed by the possibility of augmented reality and looked at the price tag with a broken heart?
Yes, me too!
But that didn’t stop me there. I built up my courage and instead, decided to build my own AR headset.
I really felt that the augmented reality market is niche and it needs an open market. Makers and developers are the market enablers.
But the problem is that event developer kits are expensive and costs upwards of $1000. So a normal maker or developer cannot afford it. So I am building this open source platform for augmented reality on both software and hardware so makers and developers can innovate together on it.
Step 1: Inspiration
The cost of building this development kit won’t cost you more than $20 for a bare minimum design. Now that is where I realized that I need to understand the basic science on how augmented reality headset works.
I watched a few hands-on demos of few headsets on YouTube and I understood the simple logic behind the display.
One of the uses of this device is to avoid accidents. Most accidents happen in the city due to the distraction caused by phone calls while riding. This could be developed as a device that helps in delivering message notifications and navigates users through the helmet, causing lesser distractions thereby making it a safe ride. Fitted with a GPS and accelerometer, both connected to the cloud, the geographical data collected helps in providing better terrain details for that the rider’s geographical location.
Step 2: Tools Needed
1. Pref board
2. Arduino Nano
3. HC 05
4. SSD1306 OLED Display
5. Buzzer
6. Vibrator motor
7. Transparent plastic sheets
8. Berg pins female
9. Wires
10. Solder station
11. Scissors
12. Battery bank
Step 3: Making the HUD
How does a HuD work?
High school physics tells you that light reflects on a mirror, refracts on a semitransparent mirror, and passes through a transparent glass. We will be using that exact principle here.
How do I make the HUD?
- Cut a thick polythene sheet into 5 equal square shaped pieces.
- Arrange four pieces as a cube with OLED and glue it together.
- Fix the light refractor by placing the sixth piece diagonally inside the cube.
- Glue it such that one surface is facing the OLED display and the other is facing the side of your eye.
- Finally fix the last piece and seal it.
Tada!! That is your HuD display. So simple!
Step 4: Making an OLED Display
I used a Chinese OLED display that works on the SPI bus. It took me almost a day to figure out the data sheet. I found out that the u8lib library is needed to make it work.
- Connect the SPI OLED Display to the SPI pin of the Arduino Nano.
- Connect this OLED display with a long wire to fit near your eye for easy view.
- Now download the library file and extract it into your Arduino library folder.
- Now uncomment the particular OLED driver in the program to enable your OLED Display
- Finally Test with different modes in Library Example folder.
U8Lib Arduino Library
Step 5: Connecting the OLED and AR Display
Test the OLED with the AR glass by using the sample code and adjust the display for better viewing experience.
The major problem with this AR display is that we are using a mirror to refract the rays, so the image to be displayed has to be inverted. This requires you to build a library with the inverted alphabet and bitmaps to display it properly.
There are many websites, which convert bitmap into HEX code that can be used directory into the OLED library files.
You can use a small concave lens for better Focal length
Step 6: Hardware interfacing with Ard-G
Now refer to the schematics here and solder it in a pref board.
It will be a bit tricky to solder if you are a noob in soldering.
I would recommend that you use as many wires as possible to avoid any mistake while soldering.
Now cut the pref board into two pieces and make it look like an AR glass.
Place some foam between the OLED and the pref board to ensure stability. You can also glue it together.
Here I have made a bare bone shield for the Arduino Nano where any sensor or device can be interfaced.
I have connected accelerometer, light sensor and sound sensor for sensor acquisition and can be used for user’s application.
Step 8: Arduino Code
Download the code by clicking on the attachment below.
For each function I am sending a number followed by “.” which acts as end of one data and reads the next data. It can configure in the ATC Lite Android App.
Check the in-line comments to understand the code better.
As for the Android app part, let me be honest. I am not an Android app developer so I haven’t implemented the navigation control to it. I just downloaded the ATC Lite app and created a custom layout like forward, backward, message and call notification to it. This sends numbers via Bluetooth to the headset.
Step 9: The Final Test
In the above image, you can see the HuD projecting the display to your eye gear.
I have demoed the glasse at the Workbench Project and I got tremendous feedback on the design and use cases.
Please do give me suggestions and your feedback after trying it out.
I would love to hear from you. Feel free to comment below! Let’s talk!
Sudo vs Root is a publication managed and run by Skcript.
If you enjoyed reading this, please click “Recommend” below. You’re awesome.