Introduction: VIA (Visual Impairment Aid)
This project uses a 'kit' of electronics that can be purchased at any electronics store (like radioshack) and is a good beginner project into arduino/electronics. No programming skills are needed to do this project, as I have included my code! The case is 3D printed and I have included the files on thingiverse, but I have also uploaded it to Shapeways so anyone can order and have the custom enclosure to make this project.
Step 1: Parts
The electronics for this project are all a 'kit' that can be bought at an electronics store, such as Radioshack. I've also added links to show the exact part used.
1x Arduino Micro
1x Buzzer speaker
1x Slide switch (for on and off)
2x Pushbuttons (I used large 12mm ones)
2x Resistors (I used 2k Ohm ones)
1x Quarter size proto board
2x Vibrating motors (this isn't completely required if you have a buzzer, but is highly recommended)
1x Distance sensor
This can be made out of whatever surplus material you have, but I'll go into more detail about building this later.
No matter what your housing is, you will most likely need:
1inch wide straps
Step 2: The Basic Circuit
Now it's time to make a mock-up of the circuit. I bread boarded mine at first to make sure it all worked and test the program and so I really recommend doing something similar before you solder everything. You can see the basic circuit for my components below. Feel free to use whatever parts you have and modify it accordingly. Note that the vibrating motors MUST be attached to PWM pins to be controlled correctly. Once you've got it set up, you are ready to download the program and try it out for real!
Step 3: The Program
You can download a TXT file on this step for my program! Just copy paste it into an arduino sketch and upload it to your Micro. This program was written for use with my exact circuit, so if you're only using one button or have a different distance sensor feel free to modify it as needed. Make sure when uploading that under 'Tools' you select Arduino Micro, it will pick Arduino Uno as a default which could cause some problems.
For this program I use two buttons. One toggles between having the device give sound, haptic, or both types of feedback. The other button switches between long and short distance mode. That just means that in short distance mode the beeping/vibrating is scaled so it's easier to tell differences between things close up (<3 feet) and long distance mode makes it easier to tell things far away (~10 feet max).
Step 4: Soldering
Since you are all capable DIYers and will probably modify the circuit to fit your needs, I'm not going to walk you through the soldering wire by wire. For those new to soldering check out this instructable HERE. Make sure to refer back to the pictures of my circuit. Once done with soldering you will have a jumble of wires and components, make sure to use some electrical tape or the sort to cover all the solder joints and prevent inadvertent circuit connections.
Clip the six leads on the back of your arduino micro, this makes it fit much better in the case.
Place your buttons and switch into the breadboard and press it into the lid so that the components are held in their place while soldering.
Step 5: Making the Enclosure
When building my enclosure, I was lucky enough to be able to 3D print a custom casing. For those who have the capability I have included the STL files on Thingiverse HERE, but for those who don't I have also uploaded the case to Shapeways HERE so it can be ordered! I cut a grill pattern into the design on Shapeways because it brought the cost down a lot. Obviously this can be made out of any materials though, so if you want to try and design it out of wood, cardboard, etc go for it! My rough dimensions for the inside of the box were 130mm x 46mm x 28mm. The lid has holes for the two buttons and the power switch and also has small braille writing that tells what each button does. It has cutouts in the front and back for the distance sensor and speaker as well as little walls to keep the battery and arduino in place. Lastly it has cutouts in the bottom for vibrating motors. To assemble this lid you will need:
4x M3 bolts (~16mm in length)
2x M3 hex nuts
Step 6: Adding Straps
In my pictures you can see I folded over one part of the strap and sewed it around one notch on the case. Then on the other side of the strap I pulled it through the opposite notch and sewed velcro patches on opposite sides of the strap. Repeat this process for the other strap.
Step 7: Assembly
Assembly goes in the same order as pictures, so check there if confused. Also to get a nice tight fit some components may need to be wrapped in a layer of electrical tape or thin foam.
1. Take the buzzer speaker and pop into its place on the back wall of the case.
2. Take your arduino and slide it between the outer wall on the right side and its place holding walls.
3. Take the vibrating motor and line it up with one of the cutouts in the bottom, push it through flat against the table you are working on. Next take some electrical tape and cover the hole so it can't pop back inside during use. You may need something a bit stiffer like a layer of cardboard to help too.
4. Take your 9V and slide it into the opposite side as the arduino.
5. Take your lid and screw in two bolts on the left and right side. Now take your breadboard with the two buttons and switch, line up the components so the bolts fit through the mounting holes of the breadboard and the components are able to stick through there designated holes in the lid. Take two hex nuts for your bolts and tighten them so the breadboard is firmly secured.
6. Carefully fold wires into empty openings in the box and slowly try to move the lid to its place on top of the lower part of the case. Once everything is packed, take your two remaining bolts and screw them into the top and bottom holes of the case. You're assembled!
Step 8: Final Thoughts
This project, although simple, has the ability to make a positive impact. It's pretty basic right now, but with some higher-end sensors this could be an extremely effective tool. I hope you like it, and let me know if you do anything cool with it! Feel free to post constructive criticism or ideas for improvement!