The Haptic Proximity Module (HPM) seeks to enable people with low vision, or other vision impairments, to engage with their direct surroundings through vibration feedback from a range detector, and do so cheaply with readily available components.
The aim of this instructables is to share the parts and process of creating this device in the hope that it will get shared and improved to become something beyond my current imagination! I also have hopes for it to allow one person to enable another through making this project and giving it away to someone who is experiencing vision impairment or loss, such as Low Vision.
This project has been developed during my final year as an Industrial Design Honours student at RMIT University, Melbourne, Australia. Special thanks goes to Dr. Scott Mitchell for the inspiration and technical expertise in helping form the code underlying the HPM and further technical debugging.
Its included functions are:
- Pause button that switches off the range finding sensor and motor.
- Potentiometer to control the maximum PWM output to the motor (0 - 255)
- Potentiometer to control the maximum distance detected by the ultrasonic sensor (2-200cm)
- Inverse mapping of range to motor PWM, i.e. as the distance detected is closer to the sensor the motor vibrates stronger.
A comfortable level of soldering skill and familiarity with electronics is helpful along with an understanding of the Arduino programming environment. If you're just starting with electronics/arduino build this project on breadboard first! Head to Step 6 and Step 4 to review the code and schematics to get your head around it.
A user test video can be seen here.
User test video:
Step 1: Shopping List
These are the components you will need plus most of the equipment I used.
Strip Board [circuit mounting, jaycar electronics] (approx $6)
McDonald's Straw [perfect diameter as a shroud to suit the vibration motor bellow] (free)
Arduino Nano v.3 (compatible) w.out headers soldered [sourced from ebay, but can be found on Deal Extreme] ($14)
Devantech SRF05 Ultrasonic Sonar Range Finder [distance sensing, from Robotgear.com.au] ($26) (Cheaper Options: HC-SR04 $4 from DX.com)
Female Header 1x4pin Straight 0.1" [socket for ultrasonic sensor, from Robotgear.com.au] ($0.45)
Break Away Headers 40 Pins [Robotgear.com.au] ($1.75)
6mm Tact Switch [jaycar] ($0.95)
3V DC Vibrating Motor [Jameco part No. 256382] ($4)
Sub-Mini Toggle Switch [jaycar] ($2.45)
50k 9mm Square Potentiometer Linear Single Gang (qty. 2) [JayCar] ($2.75 ea)
Knobs (qty. 2) [jaycar] ($0.95 ea) pick something different/recycle old knobs if you have them
Economy Breadboard Jumper Kit - 5 Colours [jaycar] ($3.45)
Duracell 6V PX28L (2CR11108) 160mAh battery (qty. 2) [HollyHockBatteries.com.au] ($12.80 ea) (Cheaper option from Jaycar $3.25 ea)
Battery Holders pcb mount 1/2 AA (qty. 2) [RS Australia] ($3.95 ea)
Approx cost: $99.95 (+$50 for any further costs - generous estimation)
Approx with cheaper options: $56.95 (+$50 for any further costs - generous estimation)
Heat Shrink ($various)
Isopropyl Alcohol (pads from Jaycar $4.95)
Wire for proximity sensor
Velcro Cable tie (in a small roll - this part is optional see optional step)
Step 2: Board Prep, Layout and Cutting
Show All 8 Items
Step 3: Prep the Sensor
Prep the sensor by soldering on the wires and header.
Step 4: Solder up the Board!
Show All 14 Items
Before you commit to soldering, ensure you have read through this entire instructables, specifically read through step 6 as this step includes the arduino code file. Once you have read and understood the code and potentially tested it in breadboard form, you will hopefully find your self more confident to layout and commit to solder.
If there is any confusion regarding the circuit layout please comment bellow. I have included the Fritzing file [zip], schematic and strip board diagram. The fritzing file should help you investigate the layout much closer - I attempted to replicate the layout on strip board also, despite best intentions, this is messy. Also I have used 9V batteries in the layout diagram as there are no 6V batteries in frizting - the 9v batteries will work fine but they will not fit on the board (unless you get creative...).
Order of soldering:
HPM_Fritzing file.zip979 KB
Step 5: Prep & Solder the Arduino
Step 6: Load the Code
Understanding this part of the process will help you understand how to solder it together. Do not be afraid to try this out in breadboard first! In fact I recommend you have a dry run using a bread board - it will really help you learn about the circuit and how to manipulate its functions.
HPM CODE PACKAGE.zip8 KB
Step 7: Optional Step
This is an optional step.
Get the velcro ziptie tape and wrap it around the board, this makes it easy to use the velcro tape as a means of attaching it to the body via a strap.
Develop your own housing using 3D CAD and Printing.
Step 8: Video and Suggested Uses
Suggested uses (images for suggested use to come):
Step 9: The Next Level: Custom PCB and 3D Printed Housing
Custom PCB to suit components and fit within the 3D printed housing. The pcb has been designed to suit components listed in the beginning of this instructables. This should hopefully make construction a bit quicker and easier.
Custom PCB has been included as Gerber files in a .zip and 3D printed housing as STL files.
The gerber files still have some trouble, but they have been tested and printed so please tweak as you see where they need to be!
Any questions please ask and I will see how I can help! SS_CUT_BACK.STL
SS_CUT_BACK.STL409 KB SS_CUT_FRONT.STL