Taken me a while to get back to this project, my “Blind Assistance Technology” (BAT) hat: Little over a year ago, I blogged about using some Ping Sonar sensors to drive vibrating motors, to turn distance into haptic feedback. Doing some “trials” at work, the biggest comment was “I don’t like having my head vibrated”.
I thought I’d try a different technique: audio. Rather than vibrating one’s head, you could simply listen to what the sonar had to tell you. In theory it seems like a great idea, but as usual in practice, it’s not quite what I expected. All files are available for download at the bottom.
- Have multiple Ping sensors around your head, translating the distances into different sounds, in stereo: Would give you spacial wareness based on the stereo sound.
- Based on the hardware I choose, it’s not in stereo, nor does it update fast enough.
My current hardware configuration is a Arduino Uno mated with an Adafruit Wave Shield, being fed data from three Ping))) sensors, mounted to some brackets I designed and 3d printed on my Makerbot Replicator (in nylon), being powered by 6xAA batteries attached to the back of the hat.
I thought the wave shield was in stereo when I bought it: It is not. Don’t get me wrong, it was easy to solder together and worked immediately, so I have no complaints about that aspect of the hardware. I simply should have read up on the specs better before settling on it. Secondly, and unless I’m just missing something (which is possible), each wav file needs to complete before the next beings. This really limis the ‘audio refresh rate': You can only get audio updates as fast as the wav files play back… so unless you’re walking pretty slowly, it’s not quite fast enough.
All that being said, the hardware does work: But doning the crazy-mad-scientist hat, you can walk around your environment with your eyes closed, and it will give you audio cues when you are within 100cm of something (about the length of an arm): Is says the letters “F”, “L”, & “R” based on if you’re in range of something. And to speed up the audio, I detect for multiple directions at once, and made combo audio file sto play back. Like “F L R”, “F L”, etc.
I generated all the audio via this AT&T site, that does text to speech: AT&T Natural Voices Text-to-Speech Demo
It saves out all the audio in the exact format the wave shield wants, making that aspect really easy.
I think the next step will be swapping out the Arduino\Wave Shield for a Raspberry Pi: By using PyGame, I can use stereo audio, and play multiple sounds at once. My hope is to use actual “pinging” sounds rather than speech. We’ll see what happens…