Difference between revisions of "Visual Beats"
Line 99: | Line 99: | ||
=== Results === | === Results === | ||
---- | ---- | ||
− | * We successfully stored and used tones from the Arduino, which are manually accessible by a potentiometer. Out of several patterns we found (from 110Hz – 528Hz), we ended with choosing to show the Circle (110Hz), Vertical | + | * We successfully stored and used tones from the Arduino, which are manually accessible by a potentiometer. Out of several patterns we found (from 110Hz – 528Hz), we ended with choosing to show the Circle (110Hz), Vertical Waves(494Hz), Horizontal Waves(496), and the Butterfly(528Hz). The plate wasn't perfectly balanced for the demo due to a last minute fallback discussed in "Critical Decisions", but was able to do the job during the demo. |
{|style="margin: 0 auto;" | {|style="margin: 0 auto;" |
Revision as of 01:20, 14 December 2016
Contents
Overview
All objects have a set of natural frequencies at which they vibrate. These frequencies have unique standing wave patterns that can be seen by mediums such as sand. The sand vibrates until it arrives at the nodal positions where it comes to rest and collectively result in symmetric patterns. We initially plan on experimenting with an online frequency generator and a metal plate in order to see the different kinds of standing waves we can form. Once we have found specific frequencies that resonate well with the plate, we will choose one frequency and convert it into a tone playable through a button through the works of an Arduino. If this is successful, we will add more buttons with varying tones so that people can play around, creating their own beats in order to “see” what physical form their music takes on.
The Team
- Sudeep Raj
- Han Wang
- Li Gao
- Will Luer (TA)
Objectives
- Finding several frequencies that produce symmetric shapes [1]
- Having at the least 1 diametric and radial node pattern that is playable on the Arduino button.
- The higher the count on both diametric and radial nodes, the better
- (Only if the former is successful) Add several more buttons that create shapes at other patterns
- Balancing the plate
- Reducing the noise on the plate
Challenges
Most of the hardware we will use can be purchased, but there are still many foreseen challenges we will encounter:
- We don’t know what the resonant frequencies of our specific plate are, so we will have to find them using a range of frequencies from 20Hz to 2kHz (range is considered in order to stay safe and based on an article that ran a similar experiment)
- Preventing damage to exciter/amp (clipping, overheating, etc)
- We may exceed our budget if our trials keep failing, so we need to form detailed plans on how we will run our experiments in order to prevent going over our budget
- Assembling all our equipment in a neat and organized way for demo (for example: where we will be placing the amplifier and Arduino/circuit board as they are separate compartments to our main apparatus)
- Perfectly leveling the aluminum plate onto the exciter
- If we get to the point of adding more than one button: Transitioning between one frequency to another should be smooth and not abrupt
Budget
- .063 Thick Aluminum Sheet (12 x 12) (Amazon) ~ $12.98
- Black Aquarium Sand 20lbs (Petco) ~ $16.39
- Exciter (58mm and 25W RMS) ~$14.80
- OSD Audio SMP60 Amp (40W RMS) ~$65.00 (USED)
- 12-Bit DAC w/I2C Interface ~ $ 4.95
- 15" by 15" by 10" Bin (Walmart) ~ $7.00
- Headphone Jack Breakout Board ~ $8.98
- Elastomer Paddded Scres x2 ~ 16.56
Owned
- Hot Glue Gun
- Arduino UNO
- Breadboad
- Solderless Jumper Wires
- Button(s)
- 12 V DC Adapter (For Arduino)
- Salvaged Metal Bar
- Wood Plank
- 16-Gauge Speaker Wire
- Audio Video RCA Cable 6ft
Est. Total
- ~$145
Design & Solutions
Mechanical
- First design:
- We originally wanted to use a large diameter PVC where the exciter could stick snuggly in on top and surround it by a foam insulator. However, we couldn't conceptualize how we would keep the PVC intact to a platform. We also didn't really understand the process of noise canceling until thorough research showed us that wrapping the PVC in foam would not be as effective. Thus, we had to figure out a new design.
- Second design:
- Our next plan was to take advantage of the screw hole in the exciter and tighten it between some object using a nut to hold the exciter in place. We had a black pipe with a hole capable of tightening a machine screw and nut between, so we glued the pipe horizontally onto a wooden platform and screwed on the exciter.
- We super glued the exciter's plate onto the center of the aluminum plate.
- We then placed the platform, equipped with the speaker and plate, into a tub we bought from Walmart to control sand mess.
- Here, we noticed we were in a bit of an issue as the aluminum plate wasn't as balanced as we expected it would have turned out. The aluminum plate also created a bit of uneasy noise due to not being efficiently sturdy. What would happen is rather than just hearing the sound created by the speaker, we would hear noisiness of the aluminum plate from it's flexibility in vibration.
- Improvements:
- In order to tackle balancing and reduction in unwanted noise, we used 2 elastomeric pads placed diagonally from each other at corners of the aluminum plate. We weren't worried about it affecting the patterns as small dampening from the pads should only reduce the infinite peaks at resonance to large and finite, but not change the shapes created. We only bought 2 pads since we wanted to stay under budget and although 4 would have been even better, they turned out to be effective enough in taming the noise and assisting with balance.
Arduino
- First design:
- Arduino Red Board: The design of our Arduino part is fairly simple. On our Arduino board, We only hooked up a 8mm headphone jack breakout board and a potentiometer. An audio cable then connects the headphone jack to an amplifier.
- We will connect a 12 bit DAC to the Arduino board to generate a pure frequency(click the DAC to see the detail of the exact DAC). DAC will convert digital signal (which the arduino reads) to analog signal (which the amplifier can read).
- Second design:
- Arduino Red Board: The design of our Arduino part is fairly simple. On our Arduino board, We only hooked up a 8mm headphone jack breakout board and a potentiometer. An audio cable then connects the headphone jack to an amplifier.
- Code: We modified a sample code which originally plays a melody from Arduino digital pins. We then added [https://www.arduino.cc/en/Reference/Tone Tone() function} to generate a square wave of the specified frequency (and 50% duty cycle) on a digital pin on Arduino board. In our final code we generated four specified frequencies: 110Hz, 494Hz, 496Hz and 528Hz to pin 3.
- Headphone Jack Breakout Board: This headphone jack can send the digital signal to whatever headphone/amp/speak it connects. Although it is a TRRS headphone jack, we only need to connect sleeve and tip pin for this project. For the hookup, we first break off a strip of 4-pins of 0.1" male header and stick the LONG pins down into a breadboard. We then place the breakout board on top so the short ends of the header stick up through the pads. Next we solder each pin using a soldering iron and solder, to make solid connection on each pin. After all pins are soldered, we connect the sleeve pin on the headphone jack to the digital pin on Arduino (which generates the frequency). Then we connect the tip pin to Arduino's ground pin.
- potentionmeter: The potentiometer can be used as a variable resistance. Here it will be used to control an electrical potential (i.e., voltage), which the Arduino will be able to read via the analogRead(). Consequently, the potentiometer should be connected to an analog input pin. Here is the tutorial for the hookup.
Theory/Resources/Misc
The choices for the items under our budget are not arbitrary:
- The amplifier and subwoofer were chosen based on an article found on in the American Journal of Physics (AAPT)[2]. The article conducted an identical experiment and recommended using an amplifier that outputs at least 15 Watts and thus a sub that can handle such power.
- We concluded with a thickness of 0.063 for the Aluminum Sheet as as it satisfies the 6 assumptions presented in Kirchoff’s Plate Theory [3]
Reproducibility of different shapes do not rely on the assembly of the setup:
- The only two factors needed to reproduce a shape found is by using the same frequency and the arbitrary boundary conditions created
- We will not be experimenting with different boundary conditions and will only be using the center of the plate as the point of excitation (unfortunately, this will reduce the chances of us finding complex symmetrical patterns, but will not restrict us too far);Also, placing our exciter at the center of the plate will buildup the standing waves on the plate, so that the desired sand patterns will be more obvious.
Gantt Chart
Results
- We successfully stored and used tones from the Arduino, which are manually accessible by a potentiometer. Out of several patterns we found (from 110Hz – 528Hz), we ended with choosing to show the Circle (110Hz), Vertical Waves(494Hz), Horizontal Waves(496), and the Butterfly(528Hz). The plate wasn't perfectly balanced for the demo due to a last minute fallback discussed in "Critical Decisions", but was able to do the job during the demo.
Comparing Results to Objectives
- We were able to use one elastomer pad to balance out the plate and reduce the noise emitted by the plate.
- We were successful in finding quite a few patterns, especially with a complex pattern turning out on 528Hz.
- Not only did we have one frequency available to play, but were able to demonstrate others during demo.
- We initially planned on adding more buttons to present the extra frequencies, but since we were limited in pins to use we resorted to using a potentiometer instead.
Critical Decisions
- A major downfall of our project was the tiny screw that held down the exciter to the platform. Since this was the only support that held the speaker upright, it eventually ended up unscrewing. This happened right before the demo and caused us too long of a delay to reset the pads causing our plate to be slightly off balance and noisy during the demo.
- Initially, we had stored one tone (528Hz) and one melody, that would play one resonating frequency during the chorus, to use on the potentiometer. During the demo, people wanted to see the other patterns so we erased the melody and added 3 extra patterns: .
- We decided to glue the aluminum plate straight to the exciter’s plate. We could have had even less flexibility and a stronger design if we had screwed them together.
- Once we had the auxiliary break-outboard and DAC ready to connect, we were having a lot of trouble connecting the 2 as no sound would output. We decided to remove the DAC and work with just the auxiliary break-outboard and eventually were able to get an output but unfortunately weren't able to resolve how connect them.
For the Future
- Harmonics
- Starting with one pure tone and gradually adding overtones (harmonics) might be able to manipulate the patterns we see and also give us more tones to play with.
- Supporting the plate not at the center
- Currently using center as a support, we could find more interesting patterns at arbitrary areas of our plate depending on where were place the exciter under our plate.
- More power
- To find even more complex patterns, we’ll need to play with more speaker/amp power.
References
- ↑ Rossing, Thomas D. "Chladni’s law for vibrating plates." AAPT. Scitation, June 1998. Web. 7 Sept. 2016.
- ↑ Jensen, Harald C. "Production of Chladni Figures on Vibrating Plates Using Continuous Excitation." AAPT. Scitation, July 2005. Web. 05 Sept. 2016.
- ↑ Tuan, P. H., J. C. Tung, P. Y. Chiang, H. C. Liang, K. F. Huang, and Y. F. Chen. "Resolving the formation of modern Chladni figures." IOP Science. N.p., 5 Oct. 2015. Web. 7 Sept. 2016.