HandSight is a prototype glove to aid the blind. It can sense the lightness or darkness of a surface with tactile feedback from a vibration motor for each individual finger. It can also sense distance from physical objects or obstructions and indicate direction and distance with the same vibration feedback. It supports additional modes, and the possibilities are nearly endless. The glove can connect over Bluetooth to switch modes and visualize the sensor readings.

This instructable was made as part of the final project requirement in the CS graduate course "Tangible Interactive Computing" at the University of Maryland, College Park taught by Professor Jon Froehlich. The course focused on exploring the materiality of interactive computing and, in the words of Hiroshii Ishii, sought to "seamlessly couple the dual worlds of bits and atoms." Please see http://cmsc838f-f12.wikispaces.com/ for more details.

See our Wiki class page for the project here (where we talk about some of our challenges and limitations):

Step 1: List of Materials

- Arduino Pro Mini-328 (5v, 3.3v may work but not tested) (x1)
- IR Reflectance Sensor - QRE1113 (x4)
- Vibration Motor ROB-08449 (x4)
- Ultrasonic Range Finder (x2) http://www.amazon.com/Ultrasonic-Module-HC-SR04-Distance-Arduino/dp/B004U8TOE6/ref=sr_1_1?ie=UTF8&qid=1355861471&sr=8-1&keywords=Ultrasonic+Range+Finder
- Bluetooth Mate Silver WRL-10393 (x1)
- 68 ohm Resistor (x1)
- 9v Battery and Battery Case with Switch (x1)
- FTDI cable (for programming) (x1)
- Double Sided Sticky Tape, or other adhesive to hold the ultrasonic sensors in place
- Wire, electrical tape, and soldering materials. Rainbow ribbon cable is recommended for easy wiring of the fingertip sensors.
- Glove that you don’t mind repurposing permanently
- Extra cloth that matches the glove
- Velcro, Sewing Materials
- Windows Phone to run our visualization and control app, or any device that supports the Bluetooth Serial Port Protocol (SPP) if you want to develop your own app

All electronic components available on sparkfun unless otherwise noted
<p>Sir. May I know at what line should I edit the code for the bluetooth module? I have the HC-05. I can't seem to find it in the C# code. </p>
<p>search for &quot;handsight&quot; and convert it for what u desire :) simple :D :D</p>
The bluetooth module we used allowed us to replace the built-in serial port functionality that is usually used for USB. If you're using a different module, you'll need to find a tutorial for how to set it up and then replace our Serial.write lines with the equivalent for your module (usually there's a library you can pull in that has a nearly identical function, so a simple find and replace should suffice).
Should I download the libraries of the sensor? I can't upload the sketch on my pro mini.
<p>I'm not sure exactly what problem you're encountering, but it's been awhile since we wrote this code and it's likely that some of the libraries have changed in the meantime. Please make sure that you're set up to install some other example on your board (e.g., blink), and that our code compiles. Please feel free to post any compilation or uploading errors and I'll see if I can help you resolve them.</p>
Guys I don't know how to make an app, is there any remedy to select the modes w/o using an app?
<p>We mostly used the app to help us visualize the sensor readings, it's not really necessary for changing the mode. The simplest solution would be to hard-code the mode that you want to use, or else change it via the Arduino Serial Port window. You'd need to connect it to a computer whenever you wanted to change the mode, though.</p><p>Another possibility is to add a push button, and then replace the Serial port reading code with a check for whether or not the button is down. If it is, then switch to the next mode. You'll probably also want to add some logic to check for the button release, or a limit on the amount of time that must elapse before it increments the mode again (otherwise it may cycle through the events too quickly).</p>
Thank you sir
<p>We have the fingers of the glove working, the adruino programmed and the bluetooth connected to a windows phone with the app installed. We can't seem to get the app to read anything. The bluethooth keeps disconnecting once it returns to the app section. The red light hasn't stopped flashing on the bluetooth. Does this mean that it is not connected to the adruino or the phone?</p>
Sound like there's a problem with the Bluetooth connection. It's been a few years since we implemented the app's Bluetooth functionality, and it's likely that something has changed in the libraries since then. Also, if you're not using exactly the same Bluetooth module as us you may need some slightly different parameters to connect to it.<br><br>I'd recommend finding a different tutorial to help you get the Bluetooth module connected to your phone (sorry, but I haven't done any Windows phone development since we posted this Instructable). Or you could use a different method of controlling and visualizing the glove's functions (maybe using some hardware buttons and LEDs).
<p>Nice project....... i loved it</p><p>my only question is that how can i make an android app for this. Please can you help me i'm in 9th standard and i have no clue about making an app.</p><p>if someone could explain it to me in detail ... it would be great.</p><p>Please reply fast</p>
<p>The bluetooth module and app aren't really necessary, they were just used to visualize the sensor readings and set the mode. You could just hardcode the mode, control it from your computer over USB, or hook up a button to cycle through the modes.</p><p>As for your other question, we did not use an uno, but really any small arduino compatible board would work.</p>
<p>i have used the bluetooth module hc06 will that be okay?</p>
<p>did u connect mini using arduino uno?</p>
<p>if someone could make the app it would a huge favour......</p>
<p>Hey guys , Could you explain for me these lines belows (in void navloop) </p><p>int v = (readings[numFingers+i]-10)/150*256;</p><p> v=v&gt;255 ? 255 : v;</p><p> v=v&lt;0 ? 0 : v;</p><p> analogWrite(vibrations[i*3], 255-v);</p>
<p>It's been awhile since I've worked on this code, but based on the comment above these lines it looks like this was taking the range readings from the two ultrasonic rangefinders (which are stored in the readings array after the IR reflectance sensors for each finger, hence the numFingers+i) and translating it into vibration intensity. We wanted the maximum vibration strength to be at 10cm and the minimum to be at 150cm, and the rest is just ensuring that the value we write to the motor is within the analog range of 0-255. Please let me know if you need further clarification.</p>
Thank you so much , guys .Surely, if i have another question , i will ask you . Thanks in advance :D
<p>Hey guys , this's actually great ,</p><p>but I really need to know , how the 'messages&quot; and the &quot;typing&quot; modes are working !! because you didn't mention enough information about the both of them , so I need some explanation for these 2 modes , any help !!</p>
Hi, thanks for your interest in our project.<br><br>The massage and typing modes were a bit half-baked, just added to demonstrate some additional possibilities. You'd need to do some additional work to make them useful in the real world.<br><br>The massage (not messages) mode is simply a single command to turn on all of the vibration motors so that you can use the glove as a massage tool. This mode was added as a bit of a joke.<br><br>The typing mode uses the status of the 4 reflectance sensors as a binary input to generate ASCII text, but since there are only 4 bits of information you're obviously limited to 15 different characters. We basically sensed which fingers are down by measuring the reflectance value and then sent a character matching the up/down pattern over Bluetooth. See the Arduino code for the exact details.<br><br>Let me know if you have more questions.
<p>Thanks a lot for your answer , I'm gonna check the Arduino code out , actually I'm trying to make this project by myself , so sure if I have more questions I'm gonna ask you guys , and thanks in advance :) ...</p>
<p>guys how do i get the app?? i did all the connections and everything is working i just need the app now to change modes instantaneously. can i have the replay ASAP.. and great work guys</p>
The code for the app is available on Github, and the link is at the end of the instructable.
<p>the simple sensor is available instead of IR Reflectance sensor QRE113 so can i use this in replacement of this</p><p>moreover i don't have same vibration motor i have a different one</p><p>plz tell me which properties to be the same while using this</p><p>plz reply fast</p>
<p>hye im interesting in your project, em how can i get die block diagram for this project?</p>
<p>can anyone provide me the IC number </p>
Thank you very much for replying but I still did not find the app. All I can see are codes. Can you tell me the name and exact location of the app. Kindly can you please give us more information about the spp part, we did not understand that part.
There is no stand alone app, just the code. In order to use it you will need a Microsoft developer account and Visual Studio installed to deploy the app. However, the Bluetooth control protocol is very simple (see the last step in the Instructable), so you could build your own app for another platform fairly easily.
<p>Please tell if we need to download any app or any code in the windows phone.</p><p>Please reply fast .I will be very thankful if you do</p>
Both the code for the arduino and the Windows Phone app are available on our github page linked to near the end of the instructable. Here's the link: <a href="https://github.com/lstearns86/handsight" rel="nofollow">https://github.com/lstearns86/handsight</a>. The Windows Phone code is within the handsight folder.<br> <br> The app is very simple, just a few buttons to control the arduino mode and some visual feedback for the values returned by the reflectance sensors. The only marginally complicated thing we did was set up the Bluetooth communication over the Bluetooth Serial Port Profile (SPP), which wasn't immediately obvious in the Windows Phone APIs at the time.<br> <br> Let me know if you have any questions, although it's been quite awhile since I developed the app.
<p>where is the app for wimdows phone.......</p><p>plz answer fast......</p>
<p>where is the app for wimdows phone.......</p><p>plz answer fast......</p>
<p>where is the app for wimdows phone.......</p><p>plz answer fast......</p>
<p>Hello there!! you guys did an amazing job there by constructing that device. I'm just wondering if the device can sense drop-offs (like stairs or pitfalls)</p>
<p>Oh man, you guys rock so hard :D</p><p>I was wondering to build a project similar like this and i'm seeing really hard work here about it! :D Really nice.</p><p>Did you guys have iterate on it? </p><p>Will really want to know if you have been testing it on over this year and if you can &quot;sense&quot; images better.</p><p>Thank you so much!</p>
<p>Thank you for your comments and for your interest in our project!</p><p>We haven't iterated on this particular design (it was for a class project), but we are working on other related ideas. One thought we had was to increase the resolution of what the fingers could &quot;see&quot; by using a small camera like those found in optical mice or even ones used for medical purposes. There is a lot of room for innovation in this field, so I hope that you'll feel inspired to try your own designs.</p>
That's a nice idea, like having analog camera feed converted to vibes(processed data to different vibes)? Or just changind de ir sensors to a laser sensor?<br><br>The awesomedary thing of this haptic devices is that I think that if a children learns to use it, maybe with years of practice they are able to actually &quot;see&quot; throught that.<br><br>In Spain theres a famous case of a daltonic person that can't see colors and uses a ir device that launches a freq. sound for each color in front of it (its also analog because he can &quot;sense&quot; the enviromnt general color when its measure at a distance)<br>The incredible thing of this is that he actually says that hes brain has begin(fourth year of use) to make colors appear!<br>This case went famous because he wanted to had that device implanted on his body to always had it on so noone could say to him to wear it off.<br>Thanks for answering :D
I've been thinking about making this myself and I thought I read somewhere that you had initally wanted to make it as a head mount but realized that the vibration motors on the head were a bad idea. Which is why you made them into a glove. However, I've used many glove devices for VR simulators and such, and I find that holding your hands out becomes tiresome pretty quickly. <br> <br>So I was wondering about modifing your design to still put the dectors on a hat/headband, but move the motors to something you ware on a belt clip or somewhere else? <br> <br> <br>
This is an interesting idea, and certainly feasible. Our original plan was actually to make a belt with the vibration motors sewn into the fabric, and the ultrasonic sensors placed at different angles around it. When we started focusing more on the tactile surface feedback via the reflectance sensors we decided it made more sense to put everything on the hand instead. I don't see any reason why you couldn't put the sensors and feedback mechanism in different places, especially if you're only interested in the navigation portion.<br> <br> One of our early inspirations was the idea of a haptic compass like the one described here: <a class="vt-p" href="http://www.gradman.com/hapticcompass" rel="nofollow">http://www.gradman.com/hapticcompass</a>. It uses multiple vibration motors to indicate direction, and can either point north or toward an arbitrary compass direction for guidance. It wouldn't be too hard to modify that idea to give feedback from the ultrasonic distance sensors instead (or as well).<br> <br> If you want to put the sensors on the head, you could use long wires as long as their resistance isn't too high. An alternative would be to build a second arduino device and have them communicate over&nbsp;Bluetooth.
crazy cool. you guys are amazing

About This Instructable




More by lstearns86:HandSight: A Glove for the Blind to Feel Shapes and Navigate Obstacles 
Add instructable to: