BAT Hat
You always need a good acronym when developing a new project. BAT = “Blind Assistance Technology”.
I came up with an idea… sometime last year while working on my “Ponar” tech, to make a device that would help one navigate blindly, by sonar. It’s been a really slow process to get this prototype off the ground: Work\life\learning all take their time. But I finally got something functional. During development, other similar items have appeared on the web (a Ping\servo glove-based solution, for example). And they’re great! But I’ll just start out by saying this idea came to me on its own, not that others haven’t already envisioned it\implemented it (better) elsewhere.
Conceptually, it’s a device you wear on your head that can sense the world around you via ultrasonic sensors. Based on a certain distance, motors attached to the device will vibrate, tactually telling you you’re getting close to something. There are a total of three sensors\motors mounted on the front, and each side.
The brains are an Arduino (Uno). Parallax Ping))) sensors are used for the ultrasonic distance readings, and vibrating DC motors from Xbox 360 controllers are used to convey the distances to the user. The framework I used to hook everything up was an old hat, using shapelock to form brackets for the motors, Ping))) sensors, & battery pack, and zipties to hold everything else. Originally I had a single 9v battery powering it,… but…. it made the device was unreliable. I switched to 6xAA batteries (still 9v total), and it’s much happier now.
Parts List:
- Arduino Uno : 1
- Parallax Ping))) sensors : 3
- Vibrating DC motors (from Xbox 360 controllers) : 3
- Mini-breadboard : 1
- 6x AA Battery-pack : 1
- Small switch : 1
- AA Alkaline Batteries : 6
- Shapelock : enough
- Zip-ties: many
- Hat : 1
Here is a Fritzing image of how the whole thing was wired together:
And here’s a link to the Arduino code.
Project Notes:
- After some research online, I figured out that the rumble motors I received from a friends Xbox 360 controllers only need 2v: Originally I had a system setup with transistors driving them from the battery directly, but this realization simplified the process. Furthermore, my multimeter claims they draw less than 20 mA, which makes them safe to be driven off the Arduino’s pins.
- The motors are driven off PMW Arduino pins so I can vary the voltage as distance changes. In the current configuration, they’ll start to spin as they approach items 1.5m away, and are at full velocity at 1m.
- If I can, I’m going to pick up some pager-motors: They shouldn’t vibrate one’s head as much as those rumble-motors 😉
- I also have three servos: It would be interesting to see how well one’s head could ‘detect’ their pressure.
- I had originally powered the system with a single 9v battery. But the Ping))) sensors and motors wouldn’t behave properly. When connecting the Arduino over USB for debugging purposes everything worked fine… which didn’t make sense to my limited electrical knowledge: USB is only 5v, while the battery pack was 9v. However, my guess is that the 9v battery wasn’t providing enough current for the whole system, while the USB was. So I switched out for a 6xAA battery pack (equaling 9v total) and everything started working properly. Presumably however, since the Arduino/Ping only needs 5v, and the motors only 2v, a 4xAA battery system (6v) should work fine.
- Honestly, it doesn’t work as well as I envisioned when starting. But that was a pretty high bar I set myself. Don’t get me wrong, it works fine. But in my head I’d have this robust system of navigating blindly. However, with only three motors, that detect obstacles at eye level front, left, and right, you’ll still run into problems with items at knee height. And with ultrasonic sensors, ‘fuzzy’ items like pillows don’t reflect well, and the less perpendicular you are to a surface the less likely it is to reflect the sound back. Doubling the number of sensors\motors would be a good start. Or additional systems hooked up to one’s waist, and knees, or even feet.
- I’d be very interested to have someone who is actually blind give this a try. If you know anyone in the San Francisco peninsula who is blind and would be up for it, let me know.
How would you do this with 5 ping sensors and 5 motors?
I’m sure it could be done, but the software would need updated, since it’s only expecting 3 sensors/motors.
How so, I am very interested. Could you provide the code and the schematic?
Or even 4 sensors and 4 motors.
@Miso Mat
lol, I’ve already provided that all above. Feel free to modify as you see fit.
How would I modify the code if I am using mini disc motors that work from 2V up to 5V.
5V current draw: 100mA, 4V current draw: 80mA, 3V current draw: 60mA, 2V current draw: 40mA
11000 RPM at 5V
from where can we get like these vibration motors ? give us a site that we can order them from it
From above: “rumble motors I received from a friends Xbox 360 controllers”. Google can help you find them
Thnx a lot .. can u tell me the steps of ur project ? can i communicate with u by email cuz i have questions? if it is posible give me ur email plz
The above post prettymuch has the jist of it. But if you have a really specific question: warpcat at gmail dot com
Hi,
can u tell me what will be the change in the code if i am going to use hc-sr04 ultrasonic sensor ?