Introduction: Uware: a DIY AR Headset
Whats up everyone!
Does anybody remember Google Glasses? No? It's okay, Google probably doesn't remember them either. Maybe because it was over priced or that they marketed to everyone or maybe just because you had to say, "take a picture" just to take a picture. But it still was a pretty cool idea. This instructable will guide you through the steps I used to make an AR Headset, that will display the date, time, and text messages from your phone. It will also allow you to take pictures from the headset itself all controlled with a gesture sensor (yup, its gesture controlled, no touching required).
I got the idea when I went mountain biking with my brother. On that same day, we were supposed to meet up with our dad for lunch, so I had to continually check the time. It was really annoying to have to keep stopping to check my phone (any mountain bikers out there). So, I came up with the idea to make a headset that would display the time so I wouldn't have to rely on my phone as much. Overall, this AR Headset will allow you to check your phone less and be more focused on the task at hand.
It is all controlled by an Arduino pro mini. This combined with an HC-06, a tiny OLED screen and a Gesture sensor and you get a sweet, relatively cheap AR head seat. It also has magnetic charging!! (see video above and step 7 for more details).
The four main steps are, creating an enclosure, coding some code, assembling the electronics and combining them all.
Step 1: Materials
The materials I used to create this invention are relatively cheap and easy to find online. I bought all the electronics for just under $60 dollars!
- 1 x Arduino Pro Mini 3.3v 8mhz
- 1 x HC-06 Blue Tooth Module
- 1 x 0.49 Inch OLED Display Ali Express
- 1 x 5V Mini USB 1A Lithium Battery Charger Module
- 1 x 3.7v Lithium Battery
- 1 x APDS-9960 Gesture Sensor
- 1 x Mini Spy Camera (Adafruit)
- 1 x Stationary Push Button Switch
- Soldering Iron
- Small Dremel (to creat rectangular holes)
- Hot glue gun
- Super Glue
- PLA Filament
- Thin Gauge Wire ( I used 22 but I would recommend an even thinner gauge)
- Wire Strippers
- 1 x lens
- 1 x mirror
- 8 x rare earth magnets
After doing some research it turns out the eye can only focus on a virtual image (an image that seems to be at a further distance away than it actually is) that is 25cm away from the eye. I just kind of guessed with my lens and the distance. But to double check I used this Lens Calculator. Remember the image created must be a virtual one so make sure the Image Distance is greater than 25, virtual images have negative values (also remember some eyes may not be able to focus closer like others).
Step 2: Creating the Enclosure: Part 1
The enclosure for the electronics of Uware ( yes I'm not to great at naming things, any suggestions?) was 3D-printed using an Annet A8. I wanted to give it a unique design and therefore decided to make Uware go around the back of the head and not attach to the front of glasses. It is also convenient since most people don't have access to microscopic state of the art electronics, so it allows for more space.
I printed all of the parts out of PLA filament. However, in the future I am planning on making it out of bridge nylon to allow for some flexibility and less rigidity. Also, the nylon won't break as easily as PLA. I created the enclosure using Fusion 360. Once it was done I split the design into 4 pieces and then split it again, but this time between top and bottom, so now there are eight parts in total. I like to print this way on larger projects so if the printer messes up badly, I won't have to restart the print. The design is not as thin and sleek as it could be, but then again this is a prototype so it won't be perfect (for now).
Step 3: Creating the Enclosure: Part 2
In this step were just going to put the pieces of Uware together. For simplicity I just printed thin little rectangles and overlapped them between two pieces and used glue to put them together (as shown in the first few pictures). For the far right side I had to put the plastic pieces on one of the walls since there were no flat pieces on the bottom (as shown in picture 4).
Next, it's time to fill in those gaps and to do this we are going to use the Bondo. Be sure that you use a putty knife to flatten out the Bondo so its stronger and dries quicker. I applied a few coats, sanding it in between each one. While you are doing this to the bottom, start to put together the top in the same way.
Caution: When gluing the thin rectangles to the top piece use masking tape to tape the pieces of the top onto the pieces of the bottom. Be sure that everything is aligned that way it will fit nicely when put together.
Step 4: Creating the Enclosure: Part 3
Now it's time to spray paint. Add the snap connectors so you can attach the top to the bottom (before 3D printing the connectors be sure to separate them in a slicer i.e. cura), and create holes in the enclosure for the components. I spray painted first, but in retrospect I should have put the clips on first.
To attach the connectors cut out rectangles (in the bottom piece) the width of the connector and the depth of half the height and then glue them on with super glue. I connected eight in all, two on the right most piece, two on the back right, two on the back left, and two on the left most piece.
Once you have all of the connectors on use some more Bondo to fill in the gaps.
Next you need to make holes for the charger, the gesture sensor, and for the camera. For the charger I drilled two holes the diameter of my magnets in the right back piece. Then you need to make the hole for the camera. I placed the camera module inside the enclosure and then kind of eye balled where to drill (Picture 3). Then place the gesture sensor inside the enclosure. Use a small Dremel to cut out a rectangle (.....ok kind of a rectangle....I know its not to great). This is for the larger component on the gesture sensor. Next place some putty on the actual gesture sensor component (picture 5). Then place the large component in its hole on the outside and press the whole module against the enclosure. This is so you can get a perfect distance from the large component to the small component. Finally, make a hole where the putty is and drill out a rectangle the size of the gesture sensor module.
Now lets move on to some software.
Step 5: Coding Some Code and Making an App
As a novice at coding it took me quite a while to create a working program, but after many long hours of research, trying, and retrying I was able to complete my task.
The Low Down: Alright, here's how it works. I made a simple app ( which I will get to later) that sends strings of characters via blue tooth to the Arduino Pro Mini. If the string doesn't start with anything it will read it as time and go to the time function. If the string starts with a quotation mark the Arduino will read it as a Text message and run the text function. The code automatically runs the Time so it's kind of like a home screen. If you swipe right on the gesture sensor it will go into camera mode. From there you can take pictures (and eventually videos) and it will stay in this mode until you swipe back. Once I l do more research I plan it give it the full capabilities of a smart watch.
The App: If you thought my Arduino code was rough wait until I tell you I don't know java script,
(Me): " I don't know Java Script"
(You): *gasp* "What?!"
So how did I create a fully functional smart glasses app? I finally did what my teachers told me and used my resources. I found an App creator called "MIT App Inventor 2". It uses block coding (yes, blocks:|) to make an app. It's actually pretty cool and has a lot of useful functions. Like clocks and blue tooth, gyros sensors, texting, GPS...... very resourceful. In all seriousness I do plan to learn how to make apps to make Uware a lot more functional (plus it seems like that's where the money's at.;)
Step 6: Electronics Assembly
Now for my favorite part, (but also the most frustrating) putting the electronics together.
The whole thing is pretty straight forward after looking at the schematic (Screen shot above). Some warnings: make sure you put the Tx and Rx pins of the HC-06 to the correct pins on the Arduino, also make sure that you connect the right pins on the gesture sensor to A4 and A5.
I cut out a piece of perf board to make it easy for things like the power, ground, SDA, and SCL pins.
Above is a video of showing the prototype of the code using a larger OLED.
Step 7: Charger
Now its time for some sweet magnetic charging. To do this, solder wires from the Power In and Power Out holes in the charger module. Make sure that they are long enough to reach the two holes that were drilled earlier. Next get two magnets and sandwich the wire between the two (picture 3). Be sure that the wire is frayed a little to allow for more surface area. Once you are done, place the magnets inside the hole and use hot glue to hold it in place. Do the same for the other and make sure that it's flush on the bottom (picture 6).
WARNING: THE MAGNETS ON THE BOTTOM MUST BE OPPOSITE POLLS. i.e IN THE 6TH PICTURE PRETEND THE ONE ON THE RIGHT IS NORTH AND THE ONE ON THE LEFT IS SOUTH.
Next take off the mini USB on the USB cord and strip the Power and the Ground cord. Follow the same steps as above. THIS TIME MAKE SURE THAT THE POWER MAGNETS OF THE USB CORD ARE ATTRACTED TO THE POWER MAGNETS OF UWARE. i.e. IF THE MAGNET ON THE RIGHT IS THE POWER MAGNET AND IS NORTH THEN MAKE SURE THE POWER MAGNET ON USB CORD IS SOUTH. VISE VERSA FOR GROUND.
Put the wires under the plastic piece then into to the large wholes for the magnets.
Step 8: Adding Electronics and Finishing Up
Now it's time to stuff that enclosure like a Thanksgiving Turkey!
First thing to do is to make a hole somewhere in the back of the enclosure so that your switch will fit snugly. I would recommend putting in the switch first before any other electronics. Then place the gesture sensor into its place. Once all of its components are in use glue to keep it in place (Picture 2). Caution: Before gluing make sure that the gesture sensor will work where it is (sometimes the hole isn't big enough). Now for the Camera. Place the actual lens in the hole we made earlier apply then apply some glue. Use the small Dremel to make a long rectangle in the bottom of the enclosure for the SD Card to go into. Finally Glue the screen into the proper place. The rest of the electronics won't need glue so I just put them in.
Almost done! All that's left is to glue the mirror, the lens, and the prism holder in place. As for the prism you can cut out a piece of plastic from a CD case but I used glass since it is more reflective. In the pictures at the beginning of the instructable you can see that there is a blue cap over the glass. I glued in a piece of static protection bag (what electronic components usually come in) so that I can just slide it on to give it more tint making it easier to see.
Once you have done this put the top on and make sure every thing fits nicely.
Step 9: Conclusion
(some pictures with the camera above)
Even though there are plenty of things that I could improve on I am pretty content with Uware. Now I have a clock and a camera in my field of view when doing a task (I've yet to take it mountain biking, don't worry I will take safety glasses). In the near future I plan to trick it out with full capabilities of a smart watch. Here is a list of things I would like to add:
- Input micro phone for texting
- Output speaker for listening
- OLED with higher resolution
- Stop watch app
- Alarm app
- Voice control
- GPS Navigation
- Weather Widget
- AI Voice
- Take calls
- Make the image brighter for daylight use
- Connection to Smart Board
- Own custom App (sorry MIT APP Inventor)
I've got a long list of things to improve on but I guess that's the process of making an Invention. With a lot of work ahead of me I would like to hear what the community thinks. Comments, questions, suggestions and critics.... all the things are welcome. I'd love to hear what everyone thinks.
If you liked this Instructable of creating Uware consider giving it a like and a vote for the Instructables Invention Challenge.
Thanks for all who view, see you later!