230 likes | 329 Vues
This final report details an innovative audio visualizer system called Frequency Beats, incorporating electromagnets, a display filled with ferrofluid, and custom software using Arduino programming. The report covers the control circuit, electromagnet design changes, display improvements, challenges in software development, and demonstration of the system. The project utilized Fourier Transform algorithm for analyzing audio signals, sampled input signals, and transformed them into visual representations. The report concludes with the successful demonstration and potential applications of the Frequency Beats system.
E N D
Frequency Beats:Final Report8 April 2014 Academic Advisor: Joseph Hoffbeck Industry Representative: John Turner – Impinj, Inc. Client:William Taylor - Student Team Couch Street Alex Arlint Jake Nylund Kevin Ratuiste Robert Rodriguez
Overview • Introduction • What Is it? • Control Circuit • Electromagnets • Display • Software • Demonstration • Conclusion
What is it? • Frequency Beats • Audio Visualizer • Low, Mid, High frequencies • Utilizes Ferrofluid
Control Circuit ON OFF Ve> Vb Pulled Up HIGH LOW Pulled Down Ve < Vb
Electromagnets • Initial Design Plan • 110 feet of 22 gauge magnet wire around .5” diameter metal core 5” in length. • Would provide internal resistance of 1.77Ω. • Hand wrapped • Final Design • Approx. 270 feet of 26 gauge magnet wire around 0.25” diameter iron core 5” in length. • Provided internal resistance of ~13Ω. • Wrapped using a Lathe. • Kept coils tight and close together. • Slow process (2+ hours per magnet)
Electromagnets (Cont.) • Reasons for Design Change • Increased length necessary to attain stronger magnetic field. • Diameter of core change selected based on availability. • Lathe vs. Hand-Wrapping Magnets • Lathe was a vastly slower process, but ultimately yielded a superior product (as seen on the next slide)
Electromagnets (Cont.) Hand-Wrapped Lathe
Display • Initial Design Plan • Plexiglass cylinders with 2” diameter and 5” height. • Filled with “homemade” ferrofluid. • Toner mixed with vegetable oil. • Final Design • Glass cylinders with 1” diameter and 2.5” height. • Filled with ferrofluid (Ordered online) and encased in water for better reactivity.
Display (Cont.) • Reasons for Design Change • Homemade ferrofluid was unforeseeably difficult to manufacture • Consistency not correct. • Not reactive enough to magnetic field. • Plexiglass seemed to allow the ferrofluid to stick to the sides, thus “mucking” up the display.
Display (Cont.) Purchased Ferrofluid in Plexiglass Purchased Ferrofluid in Glass Container Homemade Ferrofluid
Software/Arduino • Initial Design Plan: • Fast Fourier Transform algorithm • Quickly sample audio signal • Compute amplitude of each frequency in audio signal • Problems with the Arduino Due • Contingency Plan: • MSGEQ7 IC – does frequency analysis of audio signal and outputs 7 bands • Arduino combines bands and scales values
Software – cont. • Final Design • Same as initial design plan • Took weeks to troubleshoot • Adapted customized library to be compatible with IDE instead of using premade libraries • Used sample implementations of FFT and other source codes as a model for custom library
Arduino Programming • Init() • sampleLoop() • Continuously sample the analog audio input • Perform FFT, producing real and imaginary parts for each frequency bin • Take magnitude of each frequency bin • Combine magnitudes into three frequency bands • 80Hz-255Hz, 255Hz-6kHz, 6kHz-12.5kHz • Select highest magnitude from each band • Output to LPF as a PWM signal to smoothed into a DC signal for control circuit • Repeat
FFT – Cooley-Tukey • Fourier Transform: transform signals between time and frequency. • Measure amplitude & frequency of audio input http://en.wikipedia.org/wiki/Fast_Fourier_transform
Sampling • - Input signal • - Samples • The samples are gathered by measuring the voltage on the Arduino. • We take 512samples Audio Input
Using the output • Output array of 256 samples or bins • The FFT gives half of the input • Each bin is approximately an 85Hz sample range • Bin 1 would be 85-170Hz roughly • Bin 0 is a reference bin and causes some noise for our calculations
The PWM • Each value initially calculated by the FFT is scaled to a value between 0 and 255 • 63-> • 127-> • 191-> http://arduino.cc/en/Tutorial/PWM
Demonstration! • Switches • Individual frequencies • Music
Conclusion • Introduction • What Is It? • Control Circuit • Electromagnets • Display • Software • Demonstration • Conclusion