Gauri Konanoor - gmk2 ECE120
Marshall Shriner - shriner3 ECE120
Tulika Gupta - tulikag2 ECE120
Final Report:
Introduction
Statement of Purpose:
Oftentimes, at parties or in restaurants, people find themselves shouting at one another rather than having a relaxed conversation, because of loud music. We propose designing a prototype of a speaker that measures the volume of the general atmosphere, and increases or decreases the volume of the music depending on that.
Background Research
Certain sound level ranges (we estimate between 40-50 dB) of background music are optimal during an event. If the music is too quiet with respect to the ambient room volume, the event may seem dull or empty. On the other hand, if the music overpowers the room, it is very distracting, annoying, and a detriment to the gathering.
When the music reaches levels of over 100dB, many guests leave with tinnitus that persists for over 30 minutes, some even with permanent ear damage.
Normal conversations occur at 50-60 dB. At a noisy restaurant, decibel levels can escalate upto 70dB. A change in 10 dB doubles the sound.
Design Details
Block Diagram
System
The microphone detects sound and the VU circuit detects volume. The arduino will use that reading to set the music output volume. The arduino will have a limited amount of songs stored on the memory, which we will get from a computer's music library. The speaker will play our stored music. We plan on having two settings for our arduino program: one for background music and one for party music. For background music, we will adjust the volume inversely proportional to the detected room volume, and in the party setting our output volume will be directly proportional to the room volume.
Parts
(Preliminary):
- arduino
- speaker
- Volume Detector
- Condenser microphone
- 6 Volts of power (either from 4 'AA' batteries or a DC power supply)
- 2KΩ-6KΩ resistor (depending on the microphone in use)
- 10Ω resistor
- 10KΩ potentiometer
- 2 10μF electrolytic capacitor
- 100μF electrolytic capacitor
- 0.1μF ceramic capacitor
- 47nF ceramic capacitor
- Voltage-Dependent Current Amplifier
- LM386 IC
- LM386 IC
Possible Challenges
- Lack of experience in Arduino programming
- Limited Arduino memory might not allow us to store a whole lot of music
- Microphone readings may not be optimal
- Designing and integrating logic circuits in our project
- Microphone taking speaker music as input
Weekly Update Log
10/24: We finished our sound detection circuit and spent most of the hour implementing and messing with our arduino code, while observing the effect each of our changes had on the sensor. We still are having trouble figuring out how to reliably utilize what our microphone is giving us. The remainder of our project will be debugging and fleshing out our code to do everything we want it to do (as of right now we have a shell of the goal), as well as implementing our output logic and amplification circuit.
10/31: We developed a solid idea of our execution of the arduino-controlled volume adjuster. We will use a special transistor to manipulate the strength of an audio signal passing from a computer playlist to the speaker. We plan on attending extra sessions to accelerate the progress on our project.
11/7: We improved the functionality of our sound detection circuit (one of our input pins must not be as responsive as others). We also made progress on the code, making significant steps towards a testable prototype. On the other hand, we have no idea if our prototype test will work at all at this point.
11/14: We presented our progress so far on our project, and also ordered the final part that will hopefully bring our whole project together. We spent most of the time before demo researching further to give ourselves a good idea that this part will accomplish what we want it to.
11/28: We continued planning our code and how to use the digital potentiometer
12/5: We received some more much-appreciated guidance from Alonzo, and succeeded in getting the arduino circuit to change the volume of the music. All we need to do now is test and see if we can change the volume during the song too, instead of just after every song
References
Acceptable decibel levels:
http://www.ddca.org/pdf/1_ddca/Noise_Decibel_Levels_DDCA_OSAA.pdf
http://www.instructables.com/id/Arduino-Audio-Input/
http://www.instructables.com/id/Arduino-VU-meter-1/step3/Amplifier-circuit/
http://www.circuit-finder.com/categories/sensor/sound-sensor/317/room-noise-detector
Attachments:
Smart Music Player Clock Diagram (1).png (image/png)
Smart Music Player Clock Diagram.png (image/png)
Smart Music Player Final Report - Google Docs.pdf (application/pdf)
Comments:
Please add more to the background research: "Gauri thinks that ears are damaged if the sound level is too high." Example of something that isn't research. Idea is approved, please fix research, consider adding specific decibel ranges.
Posted by atmarsh3 at Sep 26, 2016 17:56
|
"... and in the party setting our output volume will be directly proportional to the room volume." Isn't this an unstable feedback mechanism? Voices are loud, music gets louder, voices get louder, etc.? Or, am I misinterpreting your "party setting"?
Posted by cdschmit at Oct 17, 2016 15:16
|
Yes it would be unstable, we need to have the sound source and the sound detector far enough away from each other to avoid the slippery slope.
But upon reading your question again, couldn't we just set a maximum volume?
Posted by shriner3 at Oct 17, 2016 15:58
|
So you could set a maximum volume, but you would end up going to that volume no matter what (slippery slope). Because if your microphone picks up the audio from the speaker, it would be above the current value, then increase the volume then... until you hit the maximum value. So yes, in a way you fix the problem by setting a max, but you would just hit it.
Posted by atmarsh3 at Oct 20, 2016 12:04
|
On Monday we were talking about mathematically factoring out from our microphone input the volume that we estimate is caused by our own speaker. Do you think that would be doable?
Posted by shriner3 at Oct 20, 2016 12:51
|
I mean, maybe.... It would require the algorithm to be completely aware of the audio, and there might be syncing issues. Honestly, I would count on being able to keep the microphone and the speaker far away from each other to deal with most of the problem and make sure that the speaker wasn't pointed directly toward the microphone.
Posted by atmarsh3 at Oct 20, 2016 12:57
|
Well that was our original plan, but it sounded like you and Professor Schmitz thought that wouldn't fix the problem...
Posted by shriner3 at Oct 20, 2016 17:06
|
Here's the microphone you are using: https://www.sparkfun.com/products/8635
Posted by atmarsh3 at Oct 21, 2016 17:44
|
Reminder that everyone should have a short (5 minute) progress report presentation ready for the next meeting! Just share what your team been working on, challenges, opportunities, and your plan for the rest of the semester.
Posted by ajborn2 at Oct 24, 2016 17:11
|
Correction: presentations will be November 11th (Friday teams) and 14th (Monday teams). However, it's never too early to start preparing demos and stuff!
Posted by ajborn2 at Oct 24, 2016 17:39
|
You are assuming that people aren't trying to talk over the music. If the music gets louder, people will likely talk louder. Even if you back out the loudness of the music from your algorithm, louder music still begets a need for even louder music due to its effect on conversation.
Posted by cdschmit at Oct 31, 2016 14:52
|
I see... what if, when we raise the volume, we measure the change in the microphone input over a short period of time (one minute maybe?), of course attempting to account for the music's effect on the change. If the people are talking louder after the time period than before, we could step the volume down again?
Posted by shriner3 at Oct 31, 2016 17:13
|
It's not particularly well calibrated, but it will work for the demonstration. I'll also have it ready to run on my laptop when you all present as well.
https://drive.google.com/open?id=0B3R9ZI-Ft_H_X3diRHdLem1jbUk
Posted by atmarsh3 at Dec 07, 2016 13:42
|