A more complex ultrasonic sensor

One of the difficulties with your idea is the need to measure the amplitude of the return pulse as well as the round trip time. Commercial ultrasonic imaging devices operate at frequencies as high as several MHz, which is not possible with the Arduino.

However it should be possible to use the more common 40 kHz transducers. The standard ranging approach is to emit a short train of 8-16 pulses at 40 kHz and then listen for an echo. Any one pulse can result in a reflection. So, to accurately measure the return pulse height using an ADC, you would need to sample the incoming signal at several hundred kHz. That could be done with an external ADC, but not with the built-in ADC.