man who used a series of clicks, like a bat, to echo locate his surroundings. I
got to thinking about other blind people and their ability to navigate freely –
without the use of a guide dog or cane. I came up with the idea to use a series
of rangefinders that would take input from sensors and output feedback to pulse
vibration motors placed on a person’s head. As a person gets closer to an object
the intensity and frequency of the vibration would increase – it’s directly
proportional to the distance of an object. If a region was lacking feedback,
then it would be safe to proceed in that direction.
I call my submission the H.A.L.O. - the Haptic Assisted Locating of Obstacles. I
believe this can serve very useful for the visually impaired to have the freedom
to possibily move about hands-free without the assistance of a cane or seeing
eye dog. Technology has undoubtedly made our daily lives better. By using a few
inexpensive components and sensors, I’ve made a device that will allow the blind
to navigate their surroundings and avoid collisions.
Remove these ads by
Signing UpStep 1: Overview and Parts List
- Building the Halo
- Building the Motor Modules
- Building the Haptic Headband
- Wiring the Controller
- Creating the Software
The following is the parts list that will be relevant in the subsequent steps of this Instructable.
Halo:
- Rigid frame (I used a round embroidery frame)
- Female headers (for the sensors)
- Ultrasonic Rangefinders (Parallax Ping Rangefinders)
- Wire (Wires with male and female leads are convenient)
- Glue
- Twist ties to tidy up wiring
- Soldering station
- Male headers (for creating a bridge to feed 5v and ground
- RJ-45-Term Screw Terminal (2)
- RJ-45 Cable
- Marker
Motor Modules:
- Vibration Motors (5) - Motot, VIB,3V/60mA, 7500RPM
- Grid-Style PC Board
- Male header pins
- Motor "shroud" (to prevent things getting sucked into the motor)
Haptic Headband:
- Headband
- Sewing Kit
- 5 Motor Modules
- Wire (Wires with male and female leads are convenient)
- Safety Pins
- Female headers
- Soldering station
- RJ-45-Term Screw Terminal (2)
- RJ-45 Cable
- Marker
Wiring the Microcontroller:
- Arduino Mega 2560
- Wire (Wires with male and female leads are convenient)
- 5 LEDs
- Darlington IC - ULN 2803A
- 2 port screw terminal
- 9v battery
- 5v regulator
Building the Software:
- USB cable
- PC (for editing code and downloading to Arduino)
- Arduino
- Arduino development environment (www.arduino.cc)
- Source Code, modified Ping.h library










































Visit Our Store »
Go Pro Today »




Thanks so much for your nice words. You are right in that if there is a lot of detection in an area, multiple adjacent sensors are firing. Teasing out the bit of quiet in the "hallway" situation (left and right firing, forward is no vibration) requires some focus and training. However, it is amazing that as a sighted person, when blindfolded, you quickly focus your brain computing on those stimulus. I would like to see how I do after being blindfolded with the rig for an hour or so.
I think it'd be great to do a glove which you can feel distance on, too!
Also, would be great for able-bodied people, eyes in the back of the head...
I worked on a very similar project last year, for the Intel STS competition. It also uses 5 sensors and vibrating motors to convey distance information to the user. I like your idea of placing the motors around the head - I put them on a belt, against the lower back. I suppose that makes sense because whereas you have the sensors spread around 180 degrees, mine all face forward at slightly different angles, so the feedback doesn't really need to wrap around the body. The sensor placement is an interesting design choice - I wonder whether it's more useful to have good resolution in front of your face or be able to sense things in all directions around you. I guess if you added enough sensors, you could have both! Too bad vibrating motors are so imprecise...
I haven't had chance to check out your code yet, I'm looking forward to it.
Best of luck, I'll be voting for you.
http://dx.com/p/hc-sr04-ultrasonic-sensor-distance-measuring-module-133696
also i really found it hard to use the figure 1 because in the figure the motor has only 2 pins while in the your instruction it has 3 pins hehehe im confused, i know i might be a burden but thank you for being understanding.
// Display the range information
Serial.print("************ SENSOR ");
Serial.println(sensorNumber, DEC);
Serial.print(" Inches:");
Serial.println(inputSensorArray[sensorNumber].inches(), DEC);
Serial.print(" Feet:");
Serial.println(calculateRangeInFeet(inputSensorArray[sensorNumber].inches()),DEC);
Serial.print(" Gap in Milliseconds:");
Serial.println(motorStopTimeGap[sensorNumber]);
Serial.print(" Intensity:");
Serial.println(motorIntensity[sensorNumber]);
Serial.println();
we are having trouble with the codes. The following errors is below:
'RESCHEDULE_THRESHOLD_CONSTANT' was not declared in this scope.
In file included from HALO_Sketch_12_10_v8_2010.pde:15:
C:\Users\CAIMOL\AppData\Local\Temp\Rar$EXa0.454\arduino-1.0.2\libraries\Ping2/Ping2.h:22:22: error: WProgram.h: No such file or directory
HALO_Sketch_12_10_v8_2010.pde: In function 'int pingAndAdjustSchedule(int)':
HALO_Sketch_12_10_v8_2010:184: error: 'RESCHEDULE_THRESHOLD_CONSTANT' was not declared in this scope
From: bchua3
Date: Dec 13, 2012. 8:01 PM
Subject: Project HALO
Hi Sir,
Good day to you.
I am actually trying out the project HALO that you submitted.
I uploaded the code to our Arduino Mega 2560 directly.
There were a few errors, the RESCHEDULE_THRESHOLD_CONSTANT was not found so I had to delete the // before it. Wprogram.h was not found as well so I had to replace it with Arduino.h as we are using the latest Arduino IDE Build.
I compiled the program and it was a go, however, the motor kept on spinning and it wont detect the proximity of the obstacle.
Any advice Sir?
Thanks
Also, you will need to copy the ping2 library into /your_arduino_directory/library/Ping2
// RESCHEDULE_THRESHOLD_CONSTANT - Note: This may be replaced by "debouncing?" the motor
// This is the threshold over which the distance is large enough to trigger a
// reschedule event. If too small, there may be a lot of rescheduling, and if
// it is too large, then there may not be enough granularity.
//#define RESCHEDULE_THRESHOLD_CONSTANT 20.83
or all these lines:
// CALIBRATION VARIABLES
// INTERPULSE_LANTENCY (milliseconds) - Defines the period of time between when one ping
// fires and the next fires. This should allow for the sound to travel to
// its furthest detectable echo distance so that the next sensors RX will not
// pick up splash from the previous ping's TX. This may/will result in
// a lower than real distance result from the next sensor.
#define INTERPULSE_LATENCY_DURATION 25
// MOTOR_PULSE_DURATION (milliseconds) - Defines the duration that the motor will pulse
// This is a constant at the moment, and the MOTOR_VIBRATION_FACTOR will
// shorte between the pulses of the motor
#define MOTOR_PULSE_DURATION 250
// RESCHEDULE_THRESHOLD_CONSTANT - Note: This may be replaced by "debouncing?" the motor
// This is the threshold over which the distance is large enough to trigger a
// reschedule event. If too small, there may be a lot of rescheduling, and if
// it is too large, then there may not be enough granularity.
//#define RESCHEDULE_THRESHOLD_CONSTANT 20.83
'RESCHEDULE_THRESHOLD_CONSTANT' was not declared in this scope.
In file included from HALO_Sketch_12_10_v8_2010.pde:15:
C:\Users\CAIMOL\AppData\Local\Temp\Rar$EXa0.454\arduino-1.0.2\libraries\Ping2/Ping2.h:22:22: error: WProgram.h: No such file or directory
HALO_Sketch_12_10_v8_2010.pde: In function 'int pingAndAdjustSchedule(int)':
HALO_Sketch_12_10_v8_2010:184: error: 'RESCHEDULE_THRESHOLD_CONSTANT' was not declared in this scope
http://polymythic.com/HALO_SourceCode_v8.zip
Copy ping2 library into arduino/libraries/Ping2 and it should be good to go. You'll see the "include ping2.h" in the sketch.
by the way im louie from the Philippines and a computer engineering student.here thanks again and GOD Bless...
http://www.instructables.com/id/Haptic-Feedback-device-for-the-Visually-Impaired/
Zoom in and the pins should be right.
I am a Honours Industrial Design student and I've decided to replicate this project as part of my Major.
I've gone for the budget HC-SR04 ultrasonic sensor, and now trying to modify your library to suit these ping sensors - i'm a novice with coding so i will see how I go. If you happen to know of any existing mods to your code could you please let me know?
The project is based around Low Vision and Location Sensing.
Best,
imran
www.imranshamsul.com
If you have any questions, I will try to answer them. Email me at steve@polymythic.com.
Good luck!
http://www.instructables.com/id/Haptic-Proximity-Module-HPM-for-Low-Vision-users/
Thank you again for the inspiration!!
I can try to make a model of such a board, but I want to know what devices are existing circuit board used in your project.
or you can also use the el-cheap-o ultrasonic range finders from China but the adv of the ones on Parallax, is that you just need one pin for data transmission send and receive... vs. the other ones you need more code to control.. that's pretty much it...
I invite you to read the following book: make: arduino bots and gadgets... they show you how to build lots of really cool projects.
good luck
Does the Darlington IC convert 5V to 3V?
I have 1.3V vibro motor but I don't know how to drive it.
Link:
http://www.k2.t.u-tokyo.ac.jp/perception/HapticRadar/
FYI My GrandMother(84) is gonna stay with me now she recently lost all her vision and is quite hard of hearing so the vibration should be good.
If this helps a little its worth it.the design is pefect for my application. I'm interested to see how shes feels about the buzzing on her head though.LOL THANKS.
Have any real blind or visually impaired individuals been involved with this project?
I believe it would work better with an analogue feedback instead of using 4 steps.
And also would be quite simple to program too.. :)
That device was nice in that the user could wave it around to be alerted to things that were near them, in any direction it was pointed, though your project has the advantage of having several sensors working simultaneously at multiple angles.
Maybe a combination of these could provide a good solution, with multiple simultaneous sensors on the head, and maybe a couple of sensors in/on the hands that could be pointed to give feedback about a particular location? I'm envisaging something that looked like the things Iron Man had in the palms of his hands (of course). :)
(FWIW- I first saw a story on a blind guy using verbal "sonar" almost 10 years ago. I then blindfolded myself for 2 days, and tried it out. I was surprised how quickly I adapted; walls and large objects were easy.. but then again my brain & ears were 10 years younger :) )
Thank you for the best thing I've read in a bit!
maybe use vibraration for the "up close" hand and "sounds" for the distance hand.
just contributing to the sandbox.
I think one that could also see down low would be great. The whole project is great but imagine if you built it so that it showed objects on a screen. Of course that wouldn't be helpful for blind but imagine the applications for military use. And medical use. Before performing surgery put inside the wound and detect what needs to come out first. You should definitely get a patent for this because I'm sure someone would try to make money off of this before you do (if you plan on maing money?)? Anyways great instructable.
Whereas I agree with your comments on this 'ible', unfortunately, the author can no longer patent his idea as he has published it on this page and it is now in the public domain. If anyone is intending to patent a device, he/she must do so before the idea is published.
Only problem I see is shin biters. Got to watch low level obstacles. Great job!
If this technology could be present in cars and other transportation, then i think that the rate of car accidents would decrease significantly. I know that we have this in some newer vehicles. However, a device that fits around the head and emits a low tone when a car comes close would be very helpful. The range would not have to be very far, and it would be inexpensive.
Again I Appreciate your Instructable and hope that research in this area thrives to great extents. Increasing the safety of people all ages and benefiting the disabled din all ways possible.
(end of rant)
What fun!
-Frank
Cheers!
I look forward to seeing more progress with this wonderful idea that could help so many people!
i was working on a sensor for blind people too(sometime back) but that was with a tiny torch sized gadget giving out beeps at different BPM according to distance.
there is one point to consider though,have u tested it in a crowded environment for long time to see if it causes any headache coz of different vibrators being off/on most of the time.probably u can overcome that by having a voice guide the person(like:"Obstacle at 6o'clock".lol..but that'll need coding again.darn!)...have been designing a something similar to yours but for people who have sight,needs heavy coding,will start working on it soon.
i have a suggestion(stupid one nonetheless), to use my torch sized sensor thingy and connect the output of that one and the the outputs of your HALO to an AND gate so that u can confirm whats nearby(coz these sensors have certain drawbacks when the signal projected falls on funnily curved surfaces),know the approx distance and possibly have a switch to choose weather u want any 1 or both to be working.
Cheers! :D
Here is an example using a stimulating pad placed on the tongue.
http://io9.com/5338054/brainport-device-lets-the-blind-use-their-taste-buds-to-see
This one actually uses a video camera and encodes the information audio thats called soundscapes. The encoding isn't something that is very intuitive, but its trainable. So people learn to see with their ears. The craziest part is that people who can see normally process audio information in the audio cortex of the brain and visual information in our visual cortex. For blind who use this sort of system, the audio signals that correspond to visual information eventually get decoded in the visual cortex! This means that their most important sense (hearing) isn't disrupted. In fact I heard that people with this system can even watch TV decoding visual and audio independently.
http://www.israel21c.org/technology/teaching-the-blind-to-see-through-sound
This is such a fascinating topic to me and I encourage you to study and keep developing your systems. You're awesome!
Now if it is possible to do the same thing with the limbs as well, such as a vibrating motor on the hands to detect an object when the subject reaches for something.
The possibilities are endless...
There's no particular reason why the motors have to be on your head with the sensors, it would be interesting if other parts of your body have more granular sensitivity to the buzzing (i.e. a belt) or a necklace vs. a headband.
I hope I didn't sound mean, because I am really impressed.