Difference between revisions of "Visual Beats"

From ESE205 Wiki
Jump to navigation Jump to search
m (Protected "Visual Beats" ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite)))
 
(125 intermediate revisions by 3 users not shown)
Line 1: Line 1:
 
=== Overview ===  
 
=== Overview ===  
 
----
 
----
This project is inspired by Cymatics, the study of visualizing sound through the representation of physical mediums. The common method to visualize sound in Cymatics is by creating a frequency on a plate that vibrates a medium (such as sand or water) placed on top. The more in tune a frequency is to the plate, the more complex of a geometric shape (nodal lines) the sand creates. We initially plan on experimenting with an online frequency generator and a metal plate in order to see what how big of amplitudes we can make on the antinodal regions. Once we have found specific frequencies that resonate well with the plate, we hope to mix/record specific tones and develop it into an Arduino based electric xylophone. People will be able to play on the xylophone, creating their own beats that will create resonating geometric patterns in order for them to “see” what physical form their music takes on.
+
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. [[File:Butterfly.png|thumb|upright=0.70|alt=Butterfly at 528Hz.|One of the patterns produced by our project.]]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 by 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 ====
 
==== The Team ====
Line 7: Line 7:
 
* Han Wang
 
* Han Wang
 
* Li Gao
 
* Li Gao
 +
*Will Luer (TA)
  
 
=== Objectives ===  
 
=== Objectives ===  
 
----
 
----
* Finding several resonating frequencies of the plate since stable figures are obtained the best at these frequencies
+
* Finding several frequencies that produce symmetric shapes <ref>Rossing, Thomas D.  [http://scitation.aip.org/content/aapt/journal/ajp/50/3/10.1119/1.12866;jsessionid=R9JZ0gT7b6kg-6S9JEwxvgzk.x-aip-live-06: "Chladni’s law for vibrating plates."] AAPT. Scitation, June 1998. Web. 7 Sept. 2016.</ref>
** Reference: [http://scitation.aip.org/content/aapt/journal/ajp/50/3/10.1119/1.12866;jsessionid=R9JZ0gT7b6kg-6S9JEwxvgzk.x-aip-live-06: Chladni’s law for vibrating plates] by Rossing (Page 271)
+
* Having at the least one symmetric pattern that is playable on the Arduino button.
* Achieving a consistent image will depend on the distribution of sand (or silica grains) spread on the plate since the higher density nodes will be providing the form we seek.  
+
** (Only if the former is successful) Add several more buttons that create shapes at other patterns
* Having at the least 5 unique sets of diametric and radial node patterns that are playable on the xylophone.
+
*     Balancing the plate
** The higher the count on both diametric and radial nodes, the better
+
*     Reducing the noise on the plate
* At least 3 melody kits (specifically themed notes) the xylophone will be able to play
 
* During the demo, anyone should be able to play the xylophone and form images on their own (although we will prepare/practice some melodies that do create designs)
 
  
 
=== Challenges ===
 
=== Challenges ===
 
----
 
----
 
Most of the hardware we will use can be purchased, but there are still many foreseen challenges we will encounter:
 
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 kind of pattern(s) a specific frequency will produce beforehand, so we will have to try find them using a predetermined range of frequencies from 20Hz to 2kHz (range is considered in order to stay safe and based on an [http://iopscience.iop.org/article/10.1209/0295-5075/111/64004/meta#epl17406eqn9 article] that ran a similar experiment)
+
* 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 [http://iopscience.iop.org/article/10.1209/0295-5075/111/64004/meta#epl17406eqn9 article] that ran a similar experiment)
* We may try different mediums (sands, silicon beads etc). They may get stuck on the center of speaker and cause damage.
+
* 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
 
* 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
* We must be aware of the environment we perform our project in as some frequencies might have the potential to shatter glass
+
* 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)
* Coming up with back up plans if our set frequencies do not form the expected shapes
+
*     Perfectly leveling the aluminum plate onto the exciter
* Finding the most effective way to reuse and not waste sand
+
*     If we get to the point of adding more than one button: Transitioning between one frequency to another should be smooth and not abrupt
* The high speaker and high amplifier may harm our ears, so the earplug is needed for protection
 
  
 
=== Budget ===
 
=== Budget ===
 
----
 
----
==== Speaker/Plate Setup ====
+
*[https://www.amazon.com/RMP-063-6061-Aluminum-Sheet/dp/B00HRHBB20/ref=pd_sim_328_1?ie=UTF8&pd_rd_i=B00HRHBB20&pd_rd_r=4FHJ26SS09RQA4E248RQ&pd_rd_w=ribuE&pd_rd_wg=fU8D7&psc=1&refRID=4FHJ26SS09RQA4E248RQ .063 Thick Aluminum Sheet (12'' x 12'') (Amazon)] ~ $12.98
* [https://www.walmart.com/ip/26680521?wmlspartner=wlpa&selectedSellerId=0&adid=22222222227019320406&wl0=&wl1=g&wl2=c&wl3=40840113392&wl4=pla-78653240792&wl5=9022860&wl6=&wl7=&wl8=&wl9=pla&wl10=8175035&wl11=online&wl12=26680521&wl13=&veh=sem 4 Ohm Sub (400 Watts RMS) (Walmart)] ~ $17.38
+
* [http://www.petco.com/shop/en/petcostore/petco-black-aquarium-sand Black Aquarium Sand 20lbs] (Petco) ~ $16.39
* [https://www.amazon.com/RMP-063-6061-Aluminum-Sheet/dp/B00HRHBB20/ref=pd_sim_328_1?ie=UTF8&pd_rd_i=B00HRHBB20&pd_rd_r=4FHJ26SS09RQA4E248RQ&pd_rd_w=ribuE&pd_rd_wg=fU8D7&psc=1&refRID=4FHJ26SS09RQA4E248RQ .063 Thick Aluminum Sheet (12'' x 12'') (Amazon)] ~ $12.98
+
*      [https://www.amazon.com/Dayton-Audio-DAEX58FP-8-Ohm-Exciter/dp/B00CWEJJ9K Exciter (58mm and 25W RMS)] ~$14.80
* [http://www.bossaudio.com/product/car-audio-sound-system-auto-2-channel-amplifier-boss-audio-r1002/200/ Amp 38 W X 2 RMS @ 4 ohm, AB Class (BOSS)] ~ $34.99
+
*      [https://www.amazon.com/gp/offer-listing/B004Y2NTAI/ref=dp_olp_all_mbc?ie=UTF8&condition=all OSD Audio SMP60 Amp (40W RMS)] ~$65.00 (USED)
* [http://www.petco.com/shop/en/petcostore/petco-black-aquarium-sand Black Aquarium Sand 20lbs] (Petco) ~ $11.39
+
*      [https://www.adafruit.com/product/935 12-Bit DAC w/I2C Interface] ~ $ 4.95
*      [http://www.lowes.com/pd/3-4-in-Common-Birch-Plywood-Application-as-2-x-2/1000066195 3/4-in Common Birch Plywood (2 x 2 Ft)] (Lowe's) ~ $10.80
+
*      15" by 15" by 10" Bin (Walmart) ~ $7.00
*      [http://www.homedepot.com/p/3M-Orange-Disposable-Earplugs-7-Pairs-per-Pack-92077-7-20DC/202080168 Ear Plugs (x3++)] (Home Depot) ~ $4.00
+
*      [https://www.amazon.com/Gikfun-Breakout-Headphone-Arduino-AE1223/dp/B01KFP0HBG/ref=sr_1_fkmr0_1?ie=UTF8&qid=1480541812&sr=8-1-fkmr0&keywords=8mm+headphone+jack+breakout+board Headphone Jack Breakout Board] ~ $8.98
*      [http://www.homedepot.com/p/Waddell-1-4-in-x-36-in-Oak-Round-Dowel-6504U/100375674?MERCH=REC-_-PIPHorizontal1_rr-_-203706844-_-100375674-_-N Wooden Rod] (.625in Diameter and 2inch Length) ~ $3.28
+
*      [https://www.amazon.com/gp/product/B002FHPE7U/ref=ya_st_dp_summary Elastomer Paddded Scres x2] ~ 16.56
 
 
==== Electric Xylophone ====
 
*      [http://www.delviesplastics.com/p/Fluorescent_Cast_Acrylic_Sheet.htmlAcrylic Pink Plexi Glass] (12'' x 12'') ~ $5.75
 
*      [http://www.delviesplastics.com/p/Fluorescent_Cast_Acrylic_Sheet.htmlAcrylic Blue Plexi Glass] (12'' x 12'') ~ $5.75
 
*      [https://www.google.com/shopping/product/9947471754061825420?lsf=seller:8740,store:12216529701977711798&prds=oid:3027300756907173303&q=acrylic+cutting+tool&hl=en&ei=o5TlV56QE4nMjwSy26DoCw&lsft=cm_mmc:Shopping-_-LIAs-_-D23-_-100542314&lsft=gclid:Cj0KEQjwpZO_BRDym6K_nMye7cEBEiQAVA7RaDYonQLlZhx8bW3MXR4z6riETETLSs2BftkIbtcpJu4aAqqb8P8HAQ Acrylic Cutting Tool] (Home Depot) ~ $3.67
 
*      [http://www.robotshop.com/en/usb-cable-a-b-arduino.html?gclid=CjwKEAjwgo6_BRC32q6_5s2R-R8SJAB7hTG-kpq5mtQ9lT7Mn_G2pZf_oI-wvLVV5gUCIO2QgoLuLBoCtPzw_wcB USB Cable A-B] ~ $1.49
 
*      [https://www.amazon.com/15-Pieces-Elements-Acoustic-Pickup/dp/B00DH2QJG2 Piezo Discs] (~1in Diameter) (Amazon) ~ $15.99
 
  
 
==== Owned ====
 
==== Owned ====
 
*      Hot Glue Gun
 
*      Hot Glue Gun
* 10k Resistor
 
*      1M Ohm Resistors (x8)
 
 
* Arduino UNO  
 
* Arduino UNO  
* Breadboard
+
* Breadboad
 
*      Solderless Jumper Wires
 
*      Solderless Jumper Wires
*      DMM
+
*      Button(s)
*      Cardboard Box (12in x 7in)
+
*      12 V DC Adapter (For Arduino)
*      Software:
+
*      Salvaged Metal Bar
**  Serial – MIDI (xylophone) converter
+
*     Wood Plank
** Garageband (to read MIDI data and develop tunes)
+
*     [https://www.amazon.com/AmazonBasics-16-Gauge-Speaker-Wire-Feet/dp/B006LW0W5Y/ref=pd_lpo_23_bs_t_2?ie=UTF8&psc=1&refRID=WY3XND1TVVF1KCYN5AJH 16-Gauge Speaker Wire]
**      Arduino
+
*      [https://www.amazon.com/dp/B00BDYKXNG/ref=twister_B00IFQN8R8?_encoding=UTF8&th=1 Audio Video RCA Cable 6ft]
  
 
==== Est. Total ====
 
==== Est. Total ====
*      ~$125
+
*      ~$145
  
=== Schematics and Sketches ===  
+
=== Design & Solutions ===  
 
----
 
----
  
[[File:VB Scheme.jpg|400x400px]]
+
==== Mechanical ====
 +
*First design:
 +
[[File:3-D_graphing.png|thumb|upright=0.40|alt=The first mechanical design.|The first mechanical design that wasn't meant to be. (Speaker is hidden, but meant to be between PVC and plate)]]
 +
**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.
 +
[[File:Exciter.jpeg|thumb|left|150px|Close up of the exciter.|Exciter seen screwed using nuts and glued to the aluminum plate.]]
 +
*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.
 +
[[File:IMG 0148.jpeg|thumb|right|100px|View of the aluminum plate.|View of the aluminum plate/wooden platform within the container.]]
 +
**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.
  
This is our visual-beats scheme.
+
*Improvements:
We first hit the xylophone, Piezo would receive the hit and convert pressure to voltage signal. The signal goes to Arduino, which would then convert signal to readable data of computer.
+
**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.
Next, SM would converts data for Garageband and Garageband plays music through our amplifier/speaker system. Finally, the platform above the speaker vibrates and makes the unique pattern through sands!
 
  
[[File:Xylephone.jpg|400x400px]]
+
==== Arduino ====
 +
*First design:
 +
**We connected a 12 bit [https://www.sparkfun.com/datasheets/BreakoutBoards/MCP4725.pdf DAC] to the Arduino board to convert our digital frequency to an analog in order for the amplifier to the read the signal.
 +
**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.
 +
**We started having trouble when we figured that connecting the DAC to the amplifier wouldn't be that simple. Eventually, we figured we could get an 8mm headphone jack breakout board that could connect to our auxiliary cable. Once we received and worked with this breakout board, we had a lot of trouble getting any sound to output from connecting it to the DAC.
  
This is how we gonna construct the xylophone.  
+
*Second design:
We put six 1.5*8 in acrylic plexiglass boards on the top of a 12*7 in box.  
+
**There happened to be another DAC within the headphone jack breakout-board and therefore the breakout-board was searching for a digital signal to convert while we kept trying to supply it an analog signal. We decided to remove the original DAC and only hook up a 8mm headphone jack breakout board and a potentiometer. An [https://www.walmart.com/ip/Griffin-3-Flat-Auxiliary-Audio-Cable/17188961 audio cable] then connects the headphone jack to an amplifier.
Then we stick 6 piezo (1.1 in diameter) to the plexiglass boards.
+
[[File:Circuitvb.png|thumb|upright=0.60|alt=The circuit connecting Arduino to potentiometer.|The Arduino connected to only the potentiometer]]
 +
**[https://www.amazon.com/Gikfun-Breakout-Headphone-Arduino-AE1223/dp/B01KFP0HBG/ref=sr_1_fkmr0_1?ie=UTF8&qid=1480541812&sr=8-1-fkmr0&keywords=8mm+headphone+jack+breakout+board 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.
 +
**[https://www.sparkfun.com/products/9806 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 [https://www.arduino.cc/en/Reference/AnalogRead analogRead()]. Consequently, the potentiometer should be connected to an analog input pin. In our final code we generated four specified frequencies: 110Hz, 494Hz, 496Hz and 528Hz to pin 3 of the Arduino.  Here is the [https://learn.sparkfun.com/tutorials/sik-experiment-guide-for-arduino---v32/experiment-2-reading-a-potentiometer tutorial] for the hookup.
  
[[File:Speaker&Platform.JPG|400x400px]]
+
=== Theory/Resources/Misc ===
 +
----
 +
Reasoning for specific items:
 +
* The amplifier and subwoofer were chosen based on an article found on in the American Journal of Physics (AAPT)<ref>Jensen, Harald C. [http://scitation.aip.org/content/aapt/journal/ajp/23/8/10.1119/1.1934080?ver=pdfcov "Production of Chladni Figures on Vibrating Plates Using Continuous Excitation."] AAPT. Scitation, July 2005. Web. 05 Sept. 2016.</ref>. 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 <ref>Tuan, P. H., J. C. Tung, P. Y. Chiang, H. C. Liang, K. F. Huang, and Y. F. Chen. [http://iopscience.iop.org/article/10.1209/0295-5075/111/64004/meta#epl17406eqn9 "Resolving the formation of modern Chladni figures."] IOP Science. N.p., 5 Oct. 2015. Web. 7 Sept. 2016.</ref>
  
On the bottom is a 3/4 in common birch plywood. We stick a 400w speaker(8 in diameter) to it and put a wooden cylinder (1 in diameter) on the top of the speaker. We then stick a 12 * 12, 0.063 in thick aluminum platform to the top of wooden cylinder.
+
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.
  
=== Theory/Resources/Misc ===
+
=== Gantt Chart ===
 +
----
 +
[[File:Ganttchart(11.4).png]]
 +
 
 +
=== Results ===
 
----
 
----
The choices for the items under our budget are not arbitrary:
+
* 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(496Hz), and the Butterfly(528Hz).
* The amplifier and subwoofer were chosen based on an article found on in the American Journal of Physics (AAPT). 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
+
*The plate wasn't perfectly balanced for the demo due to a last minute fallback. The machine screw that held down the exciter to the platform was the only support that held the speaker upright, and thus 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.
** Article: [http://scitation.aip.org/content/aapt/journal/ajp/23/8/10.1119/1.1934080?ver=pdfcov Production of Chladni Figures on Vibrating Plates Using Continuous Excitation] by Harald C. Jensen (Page 504)
 
* 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
 
** Article: [http://iopscience.iop.org/article/10.1209/0295-5075/111/64004/meta#epl17406eqn9 Resolving the formation of modern Chladni figures] (A Letters Journal Exploring the Frontiers of Physics)
 
  
Reproducibility of different shapes do not rely on the assembly of the setup:
+
{|style="margin: 0 auto;"
* The only two factors needed to reproduce a shape found is by using the same frequency and the arbitrary boundary conditions created (Noted from [http://scitation.aip.org/content/aapt/journal/ajp/23/8/10.1119/1.1934080?ver=pdfcov Jensen's Article] (Page 505))
+
| [[File:Circle.png|thumb|upright=0.40|alt=Circle at 110Hz.|The Circle: 110Hz]]
** 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)
+
| [[File:Horizontalwaves.png|thumb|upright=0.40|alt=Horizontal Waves at 496Hz.|Horizontal Waves: 496Hz]]
 +
| [[File:Verticalwaves.png|thumb|upright=0.40|alt=Vertical Waves at 494Hz.|Vertical Waves: 494Hz]]
 +
| [[File:Butterfly.png|thumb|upright=0.40|alt=Butterfly at 528Hz.|The Butterfly: 528Hz]]
 +
|}
 +
 
 +
===== Comparing Results to Objectives =====
 +
* We were able to use the elastomer pads to balance out the plate and reduce the noise emitted by the plate, but weren't able to reset the placement of these in time after our screw came loose right before demo.
 +
* 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 on the Arduino, we resorted to using a potentiometer instead.
 +
 
 +
===== Critical Decisions =====
 +
* Having only a machine screw hold down the speaker was a very poor choice. It managed to be efficient until minutes before the demo when the screw came loose from the nut and dropped the speaker/plate. We had to dismantle everything off the platform and screw the speaker/plate back on.
 +
* Initially, we had stored one tone (528Hz) and one melody, that would form a pattern when the frequency was 294Hz, 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.
 +
**    One of our reasonings for not changing this was because we were stuck on the idea that the exciter was causing flexibility because it wasn't designed to take on so much weight. Thus, screwing the plate to the exciter might have not made a difference. Although, we should have tried since we were basing it off of a conjecture and especially since Humberto recommended us to do it.
 +
 
 +
[[File:294vb.mov|300px|thumb|center|The melody that we didn't get a chance to perform during demo. (Displays a pattern when the melody hits the 294Hz tone)]]
  
3D/2D Graphing Using Mathematica:
+
===== For the Future =====
* We hope to use some of the theory found in the [http://iopscience.iop.org/article/10.1209/0295-5075/111/64004/meta#epl17406eqn9 Resolving the formation of modern Chladni figures] Article to compute some nice graphs explaining how our project works in relation to Kirchoff-Love's Equation !
+
* 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 creative 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.
  
=== Gantt Chart ===
+
===References===
 
----
 
----
[[File:GanttChart2.0VB.png|800x800px]]
+
 
 +
 
 +
 
 +
 
  
 
[[Category:Projects]]
 
[[Category:Projects]]
 
[[Category:Fall 2016 Projects]]
 
[[Category:Fall 2016 Projects]]

Latest revision as of 05:23, 15 December 2016

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.

Butterfly at 528Hz.
One of the patterns produced by our project.

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 by 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 one symmetric pattern that is playable on the Arduino button.
    • (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


Owned

Est. Total

  • ~$145

Design & Solutions


Mechanical

  • First design:
The first mechanical design.
The first mechanical design that wasn't meant to be. (Speaker is hidden, but meant to be between PVC and plate)
    • 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.
Exciter seen screwed using nuts and glued to the aluminum plate.
  • 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.
View of the aluminum plate/wooden platform within the container.
    • 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:
    • We connected a 12 bit DAC to the Arduino board to convert our digital frequency to an analog in order for the amplifier to the read the signal.
    • Code: We modified a sample code which originally plays a melody from Arduino digital pins. We then added Tone() function to generate a square wave of the specified frequency (and 50% duty cycle) on a digital pin on Arduino board.
    • We started having trouble when we figured that connecting the DAC to the amplifier wouldn't be that simple. Eventually, we figured we could get an 8mm headphone jack breakout board that could connect to our auxiliary cable. Once we received and worked with this breakout board, we had a lot of trouble getting any sound to output from connecting it to the DAC.
  • Second design:
    • There happened to be another DAC within the headphone jack breakout-board and therefore the breakout-board was searching for a digital signal to convert while we kept trying to supply it an analog signal. We decided to remove the original DAC and only hook up a 8mm headphone jack breakout board and a potentiometer. An audio cable then connects the headphone jack to an amplifier.
The circuit connecting Arduino to potentiometer.
The Arduino connected to only the potentiometer
    • 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. In our final code we generated four specified frequencies: 110Hz, 494Hz, 496Hz and 528Hz to pin 3 of the Arduino. Here is the tutorial for the hookup.

Theory/Resources/Misc


Reasoning for specific items:

  • 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


Ganttchart(11.4).png

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(496Hz), and the Butterfly(528Hz).
  • The plate wasn't perfectly balanced for the demo due to a last minute fallback. The machine screw that held down the exciter to the platform was the only support that held the speaker upright, and thus 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.
Circle at 110Hz.
The Circle: 110Hz
Horizontal Waves at 496Hz.
Horizontal Waves: 496Hz
Vertical Waves at 494Hz.
Vertical Waves: 494Hz
Butterfly at 528Hz.
The Butterfly: 528Hz
Comparing Results to Objectives
  • We were able to use the elastomer pads to balance out the plate and reduce the noise emitted by the plate, but weren't able to reset the placement of these in time after our screw came loose right before demo.
  • 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 on the Arduino, we resorted to using a potentiometer instead.
Critical Decisions
  • Having only a machine screw hold down the speaker was a very poor choice. It managed to be efficient until minutes before the demo when the screw came loose from the nut and dropped the speaker/plate. We had to dismantle everything off the platform and screw the speaker/plate back on.
  • Initially, we had stored one tone (528Hz) and one melody, that would form a pattern when the frequency was 294Hz, 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.
    • One of our reasonings for not changing this was because we were stuck on the idea that the exciter was causing flexibility because it wasn't designed to take on so much weight. Thus, screwing the plate to the exciter might have not made a difference. Although, we should have tried since we were basing it off of a conjecture and especially since Humberto recommended us to do it.
The melody that we didn't get a chance to perform during demo. (Displays a pattern when the melody hits the 294Hz tone)
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 creative 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


  1. Rossing, Thomas D. "Chladni’s law for vibrating plates." AAPT. Scitation, June 1998. Web. 7 Sept. 2016.
  2. Jensen, Harald C. "Production of Chladni Figures on Vibrating Plates Using Continuous Excitation." AAPT. Scitation, July 2005. Web. 05 Sept. 2016.
  3. 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.