Summary of BINAURAL HEARING MODELED WITH AN ARDUINO
You don’t have two ears by accident. [Stoppi] demonstrates binaural hearing with an Arduino using two cheap microphone modules and a servo to point toward sound. Time differences between when each microphone detects a sound let the Arduino compute direction. Modules provide analog and thresholded digital outputs, making the circuit simple: Arduino, two microphone modules, and a servo. The project illustrates interaural time differences and suggests recording binaural audio or 3D printing a virtual head for more realistic spatial sound.
Parts used in the BINAURAL HEARING MODELED WITH AN ARDUINO:
- Arduino (microcontroller)
- Two cheap microphone modules (with analog and digital outputs)
- Servo motor
- Potentiometer (on microphone module to set digital trigger level)
- Wiring/jumper cables
- Power supply for Arduino and servo
You don’t have two ears by accident. [Stoppi] has a great post about this, along with a video you can see below. (The text is in German, but that’s what translation is for.) The point to having two ears is that you receive audio information from slightly different angles and distances in each ear and your amazing brain can deduce a lot of spatial information from that data.
For the Arduino demonstration, cheap microphone boards take the place of your ears. A servo motor points to the direction of sound. This would be a good gimmick for a Halloween prop or a noise-sensitive security camera.
Math-wise, if you know the speed of sound, the distance between the sensors, and a few other pieces of data, you wind up with a fairly simple trigonometry problem. In non-math terms, it is easy to get a feel for why this works. If the sound hits both microphones at once, it must be coming from straight ahead. If it hits the left microphone first, it must be closer to that microphone and vice versa. If the sound were right in line with both microphones but closer to the left, the time delay would be exactly due to the speed of sound over the distance between the sensors. If the time is less than that, the sound must be somewhere in between.
The microphone modules have both analog outputs and digital outputs. The digital output triggers if the sound level exceeds a limit set by a potentiometer. By using these modules, the circuit is trivial. Just an Arudino, the two modules, and the servo motor.
Now imagine that you wanted all this spatial detail to come through your headphones. Recording binaural audio is a thing. You can 3D print a virtual head if you are interested. We’ve seen projects for this several times.
Source: BINAURAL HEARING MODELED WITH AN ARDUINO
- What is the main idea of the project?
The project models binaural hearing using two microphone modules and an Arduino to determine sound direction from time differences. - How does the system determine the direction of sound?
By comparing the time the sound reaches each microphone and using the speed of sound and sensor separation to infer direction. - Which outputs do the microphone modules provide?
The modules provide both analog outputs and digital outputs that trigger when sound exceeds a threshold set by a potentiometer. - What components are required to build the circuit?
Only an Arduino, two microphone modules, a servo motor, wiring, and a power supply are required. - Can the digital output be adjusted?
Yes, the digital output trigger level is set by a potentiometer on the microphone module. - What does the servo motor do in the project?
The servo points to the detected direction of the sound based on the Arduino calculations. - Is complex circuitry needed for this project?
No, using the microphone modules with analog and digital outputs makes the circuit trivial. - What real-world applications are suggested?
Possible uses include a Halloween prop or a noise-sensitive security camera that points toward sound. - Does the project relate to binaural audio recording?
Yes, the article mentions binaural audio and 3D printing a virtual head as related topics for spatial sound.