Radar Glasses

9,602

70

31

Introduction: Radar Glasses

About: I am an engineer, teacher and maker. Remember, help mentor a kid...we need a smarter world. Kids need our help. Later, we'll need them...

Last summer on vacation in Maine we met a very nice couple: Mike and Linda. Linda was blind and had been blind since the birth of (I think) their first child. They were a really nice couple and we had a lot of laughs together. After we came home, I couldn't stop thinking about what it would be like to be blind. The blind have seeing eye dogs and canes and I am sure a lot of other things to help them. But still, there must be a lot of challenges. I tried to imagine what it would be like and I wondered, as an electronics nerd, if there was something I could do.

I burned my eyes one summer with a welder when I was around 20 years old (long story...dumb kid). It's something I'll never forget. Anyway, I had my eyes patched for a day. I remember my mother trying to walk me across the street. I kept asking her if the cars had stopped. She said something like, "I'm your mother...do you think I'd walk you out into traffic?" Thinking back on what a dweeb I was when I was a teenager, I wondered. But I couldn't get over not knowing if there was something about to hit me in the face as I walked. I was very happy and relieved when we took the patches off. That's the only thing close to 'experience' that I have had in my life with regards to blindness.

I recently wrote another Instructable about a young friend at work who lost his sight in his right eye and a device I made for him to tell him if there was something on his right side. If you want to read it it's here. That device used a Time-of-Flight sensor by ST Electronics. About a minute after finishing that project I decided that I could make a device to help the blind. The VL53L0X sensor I used on that project has a big brother/sister sensor called the VL53L1X. This device can measure greater distances than the VL53L0X. There was a breakout board for the VL53L0X from Adafruit and for the VL53L1X there was a breakout board from Sparkfun. I decided to create a pair of glasses with the VL53L1X on the front and a haptic feedback device (vibrating motor) behind the glasses near the bridge of the nose. I would vibrate the motor inversely proportional to the distance to an object i.e the closer an object was to the glasses, the more it would vibrate.

I should note here that the VL53L1X has a very narrow Field of View (programmable between 15-27 degrees) meaning, they are VERY directional. This is important as it gives good resolution. The idea is that the user can move their head like a radar antenna. This along with the narrow FOV allows the user to better discern objects at different distances.

A note about the VL53L0X and VL53L1X sensors: they are time-of-flight sensors. This means that they send out a LASER pulse (low power and in the Infrared spectrum so they are safe). The sensor times how long it takes to see the reflected pulse come back. So distance equals rate X time as we all remember from math/science classes right? So, divide the time in half and multiply by the speed of light and you get distance. But as was pointed out by another Instructables member, the glasses could have been called LiDAR Glasses as using a LASER in this way is Light Distance and Ranging (LiDAR). But as I said, not everyone knows what LiDAR is but I think most people know RADAR. And while infrared light and radio are all part of the electromagnetic spectrum, light is not considered a radio wave as microwave frequencies are. So, I'll leave the title as RADAR but now, you understand.

This project uses basically the same schematic as the one for the other project...as we'll see. The big questions for this project are, how do we mount the electronics on glasses and, what kind of glasses do we use?

Step 1: The Glasses

I decided that I could probably design a simple pair of glasses and print them with my 3D printer. I also decided that I only needed to 3D print the skeleton or frame of the glasses. I'd add a printed circuit board to solder in the components. The printed circuit board (protoboard) would be attached to the frames which would add strength to the whole assembly. A 3D rendering of the frames is shown above.

The STL files are also attached to this step. There are three files: left.stl, right.stl (the earpieces/arms) and glasses.stl (the frames).

Step 2: The Printed Circuit Board

I used an Adafruit Perma-Proto Full Sized Breadboard. I positioned the breadboard over the front of the glasses and centered them. The top edge of the glasses I made even with the top of the protoboard. The rectangular part of the glasses that extends out from the top is where the Time-Of-Flight sensor will eventually be mounted. A good portion of the top of this part of the frames sticks up above the protoboard. This is OK as we do not need to solder anything to the top of the sensor, just the bottom.

There is a hole in the center of the breadboard that is almost exactly on top of where the bridge of the nose will be in the glasses. I marked the 4 holes that are in the frame onto the protoboard using a fine tip marker. I then drilled the holes into the breadboard.

Next, I mounted the frames to the breadboard using M2.5 screws. Mine are nylon and I got a whole kit of screws from Adafruit for this purpose. Once the screws were attached I took a marker and drew a line around the frames onto the breadboard. For me, I marked straight down the indents on the sides of the frames where the ear pieces will be located. This is my preference...but maybe you'll want the ear parts of the frame to be visible.

Step 3: Cutting It Out

Next I took the 4 screws back out from holding the frames to the breadboard. I did a rough removal of material outside of the line we marked. I was careful to stay a little bit away from the lines because I would refine this later with the tabletop belt sander that I have. You can use a file...but we are getting ahead of ourselves.

You can rough cut around the line using whatever means you have. Maybe a bandsaw? Well, I don''t have one. I have a 'nibbler' for printed circuit boards so I used that. It actually took a fair amount of time and it is kind-of-a-drag to do. But printed circuit board material can shatter and crack and so, I wanted to go slow. I nibbled my way around and also up into the nose area...but only roughly. You can see what I was doing into the picture above.

Step 4: Sanding or Filing

I removed the material much closer to the line using my tabletop belt sander. Again, you can use a file if you don't have anything else. All I can say here about sanding is that, depending on the grit of abrasive in the sander, take care with how much material you try to remove. There's no going back. Sometimes a single slip can ruin the board (or at least make it look asymmetrical or blemished). So, take your time.

You can see my before and after pictures above.

Step 5: Fine Tuning

I reattached the frames with the 4 screws and went back to the belt sander. I very very carefully sanded off right up to the edge of the frames. I did need to use a round file in the nose section because I just couldn't make that sharp of a turn in my sander. See my final results above.

Step 6: Adding the Sensor

At this point I added the VL53L1X sensor breakout board. First I added two long M2.5 nylon screws pushing them through the holes in the frames and through the holes in the VL53L1X. I added a nylon nut to each screw and very gently tightened them. Over the top of each nut I added two (four total) nylon washers. These are needed to make sure that the VL53L1X sensor lays parallel to the protoboard.

I placed a 6 position terminal strip onto the board in a position so that the holes in the top of the VL53L1X lined up with the two screws I put at the top of the frames (with the nylon washers). I added nylon nuts to the ends of the screws and again, gently tightened them. See the pictures above.

Step 7: Schematic

As I said earlier, the schematic is roughly the same as the one for the Peripheral Radar project. One difference is that I added a pushbutton (a monetary contact switch). I imagine that at some point we'll need one to change modes or implement some feature...so, better to have it now than add it later.

I also added a 10K potentiometer. The pot is used to adjust the distance the software will consider as the maximum distance to respond to. Think of it as a sensitivity control.

The schematic is shown above.

The parts list (which I should have given earlier) is as follows:

SparkFun Distance Sensor Breakout - 4 Meter, VL53L1X - SEN-14722
Adafruit - Vibrating Mini Motor Disc - PRODUCT ID: 1201
Adafruit - Lithium Ion Polymer Battery - 3.7v 150mAh - PRODUCT ID: 1317
Adafruit Perma-Proto Full-sized Breadboard PCB - Single - PRODUCT ID: 1606
Tactile Switch Buttons (6mm slim) x 20 pack - PRODUCT ID: 1489
Sparkfun - JST Right-Angle Connector - Through-Hole 2-Pin - PRT-09749
10K ohm resistor - Junkbox (look on your floor)
10K-100K ohm resistor - Junkbox (look on your floor near the 10K resistors)
2N3904 NPN Transistor - Junkbox (or phone a friend)
Some hookup wire (I used 22 gauge stranded)

To charge the LiPo battery I also scooped up:
Adafruit - Micro Lipo - USB LiIon/LiPoly charger - v1 - PRODUCT ID: 1304

Step 8: Components Placement

I was trying to be as clever as I could about placing the components. I usually try and line up certain pins like power and ground...if I can. I try to at least minimize wire lengths. I needed to be sure to leave a space above where the bridge of the nose is for the vibration motor. In the end I arrived at the placement that can be see in the picture above.

Step 9: Grounds

I first soldered all of the components to the board in the positions I had decided on. Next, I added ground connections. Conveniently one of the big long strips on the PWB was still exposed so, I made this the common ground strip.

The picture above shows the ground connections and the 10K resistor. I'm not going to tell you where to place every wire as most people have their own ideas on how to do things. I'm just going to show you what I did.

Step 10: Wires

I added the rest of the wires as shown in the picture above. I added a piece of double stick tape under the vibration motor to ensure it is held in place. The sticky material that already came on the bottom of the motor didn't feel strong enough to me.

I used 22 gauge wire for my connections. If you have something smaller, use it. I used 22 gauge because that's the smallest I had on hand.

Step 11: Battery Bracket

I 3D printed a bracket to hold the LiPo battery (a rendering of it is shown above). I marked and drilled holes in the protoboard to mount the bracket to the opposite side of the glasses from the components as shown above.

I should note here that the bracket is very thin and flimsy and I have to print it with support material (I used ABS plastic for all of the parts for this project). You can easily break the bracket trying to get the support material off so go easy.

One thing I do to make my parts stronger is to dip them in acetone. Of course you have to be very careful doing this. I do it in a well ventilated area and I use gloves and eye protection. I do this after I remove the support material (of course). I have a container of acetone and, using tweezers, I completely dip the part into acetone for maybe a second or two. I immediately remove it and set it aside to dry. I usually leave parts for an hour or more before I touch them. The acetone will 'melt' the ABS chemically. This has the effect of sealing the layers of plastic.

The STL file for the bracket is attached to this step.

Step 12: Programming

After double checking all of my connections I attached the USB cable in order to program the Trinket M0.

To install and/or modify the software (attached to this step) you'll need the Arduino IDE and the board files for the Trinket M0 as well as the libraries for the VL53L1X from Sparkfun. All of that is here, and here.

If you are new to it, follow the instructions for using the Adafruit M0 on their learning site here. Once the software (added to this step) is loaded the board should start up and run on the power from the USB serial connection. Move the side of the board with the VL53L1X close to a wall or your hand and you should feel the motor vibrate. The vibration should get lower in amplitude the further away from the device an object is.

I want to emphasize that this software is the very first pass at this. I have made two pairs of glasses and I will be making two more right away. We (me and at least one other person working on this) will continue to refine the software and post any updates here. My hope is that others will also try this and post (maybe to GitHub) any changes/improvements they make.

Step 13: Finishing the Frames

I snapped the ear pieces into the notch on both sides of the glasses and applied acetone using a cue-tip. I soak up the acetone so I get a good amount when I press it into the corners. If they are snapped in tight then the acetone will be carried around via capillary attraction. I make sure they are positioned straight and if needed I use something to hold them in place for at least an hour. Sometimes I reapply and wait another hour. The acetone makes a great bond and my glasses seem quite strong at the frame boundary.

Of course, these glasses are just a prototype so, I kept the design simple and that is why there are no hinges for the arms of the glasses. They work pretty well anyway. But, if you want, you could always redesign them with hinges.

Step 14: Final Thoughts

I have noticed that the sensor doesn't do well in sunlight. This makes sense as I am sure that the sensor is saturated by IR from the sun making it impossible to separate that from the the pulse that the sensor emits. Still, they'd make good glasses indoors and on nights and maybe cloudy days. Of course, I need to do more tests.

One thing I will do to change the design is add some kind of rubber to the notch that touches the bridge of the nose. If you tip your head down it's hard to feel the vibration as the glasses lift off of the skin a little under the force of gravity. I think some rubber to create friction will keep the glasses fixed to the nose so the vibration can be transferred to it.

I'm hoping to get some feedback on the glasses. I don't know that the glasses will be helpful to people but we'll just have to see. That's what prototypes are all about: feasibility, learning and refinements.

More sensors could have been added to the design. I chose to use one for this prototype because I think more than one vibration motor will be harder for the user to discern. But it might have been a good idea to have two sensors aiming out from the eyes. Then using two motors you could vibrate each side of the glasses. You could also use audio fed to each ear instead of vibration. Again, the idea is to try a prototype and get some experience.

If you made it this far, thanks for reading!

Share

    Recommendations

    • Fix It! Contest

      Fix It! Contest
    • Metalworking Contest

      Metalworking Contest
    • Water Contest

      Water Contest

    31 Discussions

    Great idea, worth every effort! Maybe you can put your electronics and the vibrator on side of the glasses, and only the most crucial part of the sensor in front of normal sunglasses. Or you could use one of this cheap camera glasses and exchange the camera eye with your sensor. There is a guy on youtube, who made his own google glasses. He just clicked his printed case onto the sides. Keep on!

    1 reply

    Thanks. I agree. I hope a future prototype has the glasses free to look through or is just something to add to regular glasses.

    0
    None
    Artuino

    Question 4 weeks ago

    Your idea is great!..just want to know is it's safe for your brain having such electronics on your head?

    2 more answers

    The CPU speed and communications speeds are far far slower than say a cell phone. A lot of research has been done in this area. But I think a comparison against existing electronics is fair and this set of electronics generates far lower frequencies than many other devices we are exposed to.

    Thanks!

    Good to hear that!...thanks.

    You see a problem, you try to solve the problem - and you do solve them. That's a gift of mother nature you have.

    1 reply

    Really cool & well developed instructable. I will note that technically this is more of a LIDAR, not a RADAR because the VL53L1X - SEN-14722 uses infrared laser (not radio waves)...but still a really cool instructable.

    4 replies

    You are correct. But most people know what RADAR is and few know what LiDAR is. I wrote software to process LiDAR data to create 3D raised relief maps of the earth and I have given several talks about it to engineers and many of them didn't know what LiDAR was. Maybe as more applications of LiDAR make it out into the world it will enter common use. But, for now, I thought people would 'get' the title. I wondered if it was "Walking LiDAR' or 'LiDAR Glasses if people would have clicked right past it.

    But again, you are correct. And such a small time of flight sensor is just so cool. I still keep finding things to use it for. Thanks!

    That's good because putting a RADAR that close to your eyes would give you cataracts.

    Seems perfectly reasonable! Perhaps adding a brief explanation in the description of the Instructable could help bridge the gap of understanding between RADAR & LiDAR (or even a link as I know most people don't want to read lengthy instructables). This is a great project/application that people can relate to (since it involves the eyes) and would be an excellent way to explain how RADAR & LiDAR are similar, but different technology. Again, job well done!

    I'll think about adding something. Thanks again!

    Is there a commercially available way to make the Google Glasses effect (with the screen that projects over the lens)? This inspired me to make a pair of backup-cam sunglasses!

    3 more answers

    Thanks. I had to wait until I got home from work to look at both links. Very cool. I may have to give this a go...after the projects that are ahead of it! :)

    This is a great start and idea tpsully. I don't know if you realize what you're trying to do or not, but effectively you're attempting to tap into the plasticity of the brain. The brain is astonishing in what it can do, and you use this more often than you think. For instance, you've probably heard the farmer puzzle where he has to cross a river in a small boat with a fox, a goose and a bag of beans, but he can only take one thing at a time because the fox will eat the goose, and the goose will eat the bag of beans. If you think through this puzzle for a few moments, whether you arrive at the solution or not, but look at how you are solving it, you'll notice you are visualizing the solution in your head. This is a major challenge to artificial intelligence because we are trying to mimic what the human brain does - but how on earth do you do mimic this astonishing visualization with algorithms?

    Yet the human brain visualizes things in other ways with other senses, for example, a blind person using a cane to navigate is visualizing the obstacles and terrain in their brain. So using the sense of touch, they can generate "sight" in their brain. One young man uses echolocation by clicking his tongue or listening to echoes from nearby noises:

    https://www.youtube.com/watch?v=r9mvRRwu5Gw

    Again, if you try to navigate your house either blindfolded or in the dark, you'll find you use this echolocation as well, even hearing the echo off the walls of your footsteps.

    The plasticity of the brain is extremely powerful in that it's been used to help deaf people to hear through their skin or "see" sound through their vision, or even allow blind people to see using their tongue:

    https://www.youtube.com/watch?v=OKd56D2mvN0

    The brainport simply takes advantage of the sensitivity of the tongue to electrical currents (stick a 9 volt battery on your tongue to find out) and all they do is paint a grid of electrical impulses on the user's tongue based on the black and white image from the video feed.

    So effectively what you are doing is tapping into this plasticity of the brain with your project, and attempting to help a blind person visualize their surroundings using the sense of touch, stimulated by your electronics. You mentioned adding sensors as a way to improve the system, and that is correct but even what you've done here is very smart and very useful, because you might find yourself surprised by how the plasticity of the brain uses the information generated. And you might be surprised by how quickly a blind person's brain learns how to use the system in ways you never thought of. Effectively what you've got is a one pixel sensor - but then so is a blind person's cane, and they can navigate and visualize their surroundings with remarkable clarity because of that "single pixel sensor."

    We see in stereo, so sure, just doubling your system and putting the vibration motors with one above each eye would probably add a surprising amount of depth perception. Your TOF sensors are extremely narrow which is very good because in tandem and looking at the end of a car for example, one sensor would be vibrating rather vigorously because it's detecting a close distance to the car. The other sensor is actually looking past the end of the car, so might not be vibrating at all because the next object it sees might be a tree 10 meters away. The user's brain plasticity will be very quick to learn even subtle differences between the two vibration motors, and for that matter, would even self-calibrate if the two vibration motors vibrated differently for the same distance! This is the astonishing power of brain plasticity. You add a whole mess of sensors and vibration motors (say 8 or 10) across the brow of the person, I expect we would all be surprised by how well a totally blind person would use it. You could also potentially use voice coils applying pressure to the skin instead of vibration motors. I don't honestly know how sensitive the skin would be to varying pressures, it would be a huge experiment.

    One practical suggestion on your setup, try using off-the-shelf glasses (sunglasses or the like) for the frame and set up. I tried making glasses in a project many moons ago, and learned real quick just how hard such a silly thing was. The ear hooks and even the front face frame become painfully uncomfortable really fast on home-built glasses. Whereas, going and spending $10 at Wally World gets me a pair of sunglasses that someone spent a lot of research and development on to make them confortable to wear long-term. Totally worth the money.

    But kudos for your project, I love it. Let us know if you test it out and how well it works! I know I for one will be very interested in hearing the results and feedback from a blind person.

    1 reply

    Thanks for your comments. I do understand what we are doing. My friend Andrew at work is the person I originally did this for. He has lost sight in his right eye. In his case, I think (and he thinks so too) that his brain will adapt to the vibrations. He'll just instinctively know that something is on his right side just as we might with peripheral vision. Andrew is quite young too so he has time to adapt and his brain is still much more pliable than an older persons brain...not impossible for an older person but, it does get harder as you get older.

    I'll update the page as software changes are made and hardware. I have 3 blind people who are going to test this device. It really is just a prototype. My wife agrees with you and so I am going to make the first actually printed circuit board version so that it works with a pair of real glasses. I can do better with my 3D printed design but, let's face it, a set of frames-only has to be cheaper and easier than trying to do it with a 3D printer.

    Thanks again for your comments. Again, I'll be posting changes.