CEN/CE Capstone Project @ EKU

Download Report

Transcript CEN/CE Capstone Project @ EKU

EGUITAR TUNER
Mark Stocker
Eastern Kentucky University
Department of Technology
OUTLINE




Automatic Guitar tuning
Amplification of signal
Frequency Measurement
Harmonic Interference
2
MOTIVATION



Beginners often have
trouble tuning their
guitar properly.
Self tuning guitars
such as the Gibson
Robot are extremely
expensive ($4000!)
http://www.youtube.c
om/watch?v=WetVXb
YRfWk
3
INTRODUCTION


Each guitar string vibrates at a
unique fundamental frequency.
The fundamental frequency of the
string directly relates to the musical
note being played via the formula:
2

n / 12
 440 Hz
n is the number of steps away from
middle A (which is exactly 440Hz)
4
PROBLEM STATEMENT


Frequency measurement is typically
done by custom made Digital Signal
Processors (DSP’s).
DSP’s take a lot of time and money to
develop into a working product.
5
PROPOSED SOLUTION


Analyze and tune the guitar using general
purpose devices that are easily acquired and
very inexpensive.
Perform the signal processing and motor
control in software instead of a hardware DSP
device.
6
FREQUENCY MEASUREMENT



Measure the voltage of the guitar signal using
the Atmel AVR built in Analog-to-Digital convertor
(ADC).
Sample the change in voltage at a very high rate
(200uS) to detect each time the waveform
crosses the zero point or bias.
After a predetermined number of zero crossings
have been detected, determine frequency using
the formula 1/T where T is the amount of time
that passed during the sample.
7
FREQUENCY MEASUREMENT
8
FREQUENCY MEASUREMENT

Compare the measured readings to those known to be in the
correct range (+/- .05% of intended frequency) and tune string
accordingly with a stepper motor.
Standard Guitar Tuning:
Frequency (Hz) Period
E = 82.4069
0.0121
A = 110.0000
0.0091
D = 146.8324
0.0068
G = 195.9978
0.0051
B = 246.9417
0.0040
e = 329.62775 0.0030
Samples @ 200uS
606.75
454.5
340.5
255
202.48
151.69
9
PROBLEM #1





The output of the guitar is very weak. 3mV peak-topeak is typical.
The 8-bit ADC of the AVR is setup to use a 5V
reference voltage.
We have 255 usable steps over the 5 volt range
which is equal to 19mV per step.
This will not allow us enough precision to detect the
zero crossings of the wave form.
The bias or baseline of the guitar signal needs to be
at 2.56 volts, so we can detect both the positive and
negative part of the waveform.
10
SOLUTION #1

Amplify and bias the signal using a simple op-amp circuit.
11
PROBLEM #2

Due to the varying stiffness of steel guitar strings, along with
the fundamental frequency, harmonic frequencies are also
generated, which can be quite powerful as seen below:
12
PROBLEM #2


The 2nd harmonic is especially powerful.
Since we are only measuring zero crossings of the waveform,
the harmonics end up being measured also, producing incorrect
results.
13
SOLUTION #2


To prevent false readings, we will filter the harmonics
from the signal in software, with the filter customized
for each string.
I use a bitshift in this filter (>>) to do the division in
order to save CPU cycles.
signal = ((filter * last_sample_value + (16 – filter) * sample_value)>>4);

The value of filter is set according to current string
selection. Lower values create a more narrow bandpass.
14
RESULTS


The circuit and program are
successful at reading determining the
input frequency accurately.
The stepper motor assembly is
successful at tuning the strings
automatically, although slow.
15
16
17
AVR uC
Darlington
Array
String
Selection
BIAS
OP-AMP
Guitar Input
18
Stepper Motor
Gear Reduction unit
Guitar Interface
MEDIA
eGuitar tuner in action:
http://www.youtube.com/watch?v=5ctUjII-M6Y
http://www.youtube.com/watch?v=LXHzzM-_Uao
eGuitar put to the test against commercial tuner:
http://www.youtube.com/watch?v=rRlvrPupO9o
eGuitar C code:
http://www.stockmarker.org/AVR/eguitar/eguitar_code.ht
ml
20
CONCLUSIONS


Considering commercial guitar tuning devices use
specialized DSP’s, I was quite surprised at how
well the AVR functioned.
I learned many new things during the project,
such as filtering signals in software, the use of
AVR ADC and Timers, and stepper motor control.
21
COST
Device
AVR uC
LM324 op-amp
Components
4x20 LCD Display
Stepper assembly
Power Supply
Total Cost:
Commercial Tuner:
Savings:
Cost
$3
$0.50
$2
$10
$0
$0
$15.50
$80
$64.50
Source
Mouser
Mouser
Mouser
EBay
Junk FB Scanner
Junk Box
22
FUTURE WORK



Use a shielded enclosure to prevent outside
interference.
Fine tune the OP-AMP circuit and
implement hardware filters for faster and
more accurate tuning.
Streamline the program by writing it in
pure assembly code.
23
SOFTWARE
Only free / open source software was used in the making of this project,
except for Microsoft PowerPoint.
Operating System:
Development Environment:
Compiler:
AVR Programmer:
Signal Generation:
Ubuntu Linux running KDE
KATE
AVR-GCC
AVRdude
Siggen
24
REFERENCES
Atmel Corporation, ATtiny261/461/861 Datasheet, November 7th 2006,
Retrieved from:
http://www.atmel.com/dyn/resources/prod_documents/doc2588.pdf
Atmel Corporation, Digital Filters with AVR, July 16th 2008, Retrieved from:
www.atmel.com/atmel/acrobat/doc2527.pdf
NonGNU.org, AVR Libc Online Manual, Retrieved from:
http://www.nongnu.org/avr-libc/user-manual/index.html
25