DIY ultrasound would be awesome.
Ultrasound (of the type that can image internal organs) would be sweet, it would likely not be practical in any useful way without a beefier processor though (DSP, FPGA, maybe creative use of a BeagleBoard or Gumstix). The speed of sound in water is much faster and in medicine they like resolutions on the order of mm, so you have to be up in the MHz to get those kind of results. The probe (transducer array) might be expensive, not sure if there are cheap transducers you could assemble. Underwater longer-distance ranging would be much easier, but admittedly not as cool in some ways. I'd be thrilled just to see a little ground robot with the ability to use ultrasonic ranging to map a room in 2D or 3D using a phased array, it ought to be much more powerful/flexible than traditional ultrasonic ranging arrays.
Thanks! No source released yet, but I assure you there's barely anything in it to begin with. I'm using microsecondDelay() (or whatever it is) which isn't the most reliable timing method especially for 4us and under, and right now it doesn't do continuous tones well because for each element it just energizes it (square wave), waits the proper delay based on the element spacing and azimuth angle, and does all the rest of the transducers before going back and de-energizing them all. Super cheesy code right now, nothing to it. I'll probably at least add a pot so you can change the azimuth angle that way instead of having to change a #define and recompile, but that will require using sine, which right now is handled at compile time. Might just do a lookup table.
Ultrasound (of the type that can image internal organs) would be sweet, it would likely not be practical in any useful way without a beefier processor though (DSP, FPGA, maybe creative use of a BeagleBoard or Gumstix). The speed of sound in water is much faster and in medicine they like resolutions on the order of mm, so you have to be up in the MHz to get those kind of results. The probe (transducer array) might be expensive, not sure if there are cheap transducers you could assemble. Underwater longer-distance ranging would be much easier, but admittedly not as cool in some ways. I'd be thrilled just to see a little ground robot with the ability to use ultrasonic ranging to map a room in 2D or 3D using a phased array, it ought to be much more powerful/flexible than traditional ultrasonic ranging arrays.
Whoa! Directional sound in a haunted house would be fantastic! "Did you hear that whisper?" "No...." "I swear I heard something whisper in my ear!" "Well, you must be hearing things because I'm standing next to you, and didn't hear a thing."
:D
sent by telephone
My super cheesy array is still very audible even when you're off the axis of the beam. I think I know some ways to fix that but several of them would require better hardware.
Don't get your hopes up too high, I'm no expert and I was unable to find a half hour to work on this all weekend!
> As far as the "clicks" - are they actually just single burst like a single wavefront or is it a chirp
I haven't yet recorded one to see it, but my transducers have a resonant frequency around 3.3kHz. So if I drive it with a square wave (5v / 0v / 5v...) at that frequency it will emit a whine. When you apply a voltage to it it acts like a capacitor: charging it up causes it to deform, producing a sound much the same way a speaker would if you energized it. The piezo requires no power to hold that deflected position once charged up so there's no risk of blowing the piezo if you just leave it high (don't try this with a speaker!), no current will flow. You can then discharge it to produce the tail end of the wave, completing a full cycle. The transducer will have some amount of ring to it at its resonant frequency after you stop driving it. Think of it like pushing a swing: one push will get it going at its resonant frequency, and you can theoretically push it back and forth at any rate you want, but anything far from the resonant freq will be lots more work.
> at a certain frequency? I'm not at all familiar with these devices so I may just be talking out my ass, but I wonder at the use of having different transducers chirp at different frequencies - perhaps ones that are distantly harmonically related so their peaks would all combine constructively at some desired distance away so you could have a point of concentrated acoustic energy.
With a phased array you can time the element phase delays such that all the signals hit the same point at once, you basically just use a parabolic phase delay map, focusing it like a sound lens. This only works in the near field, I doubt it's possible to do something like this in the far field. Your transducers have to 'surround' the target to some degree so the waves aren't all parallel. My current code just assumes far field with parallel wavefronts: delay = element spacing * sin(azimuth angle) / speed of sound.
Dunno what I'll have time for, but it's sure fun thinking about the possibilities. Here's one for a cheeseball ultrasound system: you have an array of receivers (let's say 4x4, very crude), pressed against the skin. In the center just have a rubberband that you pull back and snap. That sends a single wavefront into the body in all directions, and you capture a couple of ms of signal from each receiving element. Now in software after the fact you can go through, 'listening' in each direction (azimuth and elevation), maybe even sweep through different focus distances. You can do all the heavy (but dead simple) processing on a PC or Gumstix or whatever. Might be cool. Albeit slightly painful. ;)