High Level Design
Rationale and Sources of Project Idea
We were intrigued by this
project because it incorporated so many areas of electrical
engineering. Also, the thought process we used to come up with idea
involved thinking of household electronics items that we could use the
microcontroller to create. Several items seemed to simplistic (for
example an alarm clock), and others we felt were not realistic goals
(such as a printer). A digital answering machine came to mind. It
seemed to have an appropriate level of complexity, and that is what we
modeled our project after. To simulate someone talking over a phone, we
had a microphone circuit. We had external memory to allow us to store
more data. Then, we had track functionality, to simulate multiple
messages. We added voice distortion as a fun feature.
Background Math
The main math revolves
around the Nyquist frequency. An established fact is that the human
voice’s highest frequency is 4000Hz. In order to get all the Fourier
components of a period signal, one must sample at twice the highest
frequency. So in this case, we sampled at 8kHz. All other math
involved in this project, was dedicated to designing filters with the
appropriate cutoff frequencies, and code to maintain this sampling rate.
Logical
Structure
The backbone of this
project is the microphone and the circuit that accompanies it. Without
this, we could not realistically test the other components of the
design. After this part worked, we implemented code to run the
DataFlash. This was necessary, since to record any significant amount
of sound, we needed to hook up an external memory source. To actually
get an accurate output, we also had to add a DAC circuit. We tried a
PWM and a DAC, and a DAC proved to be more accurate in being able to
reproduce the human voice. Finally we added a user interface, voice
distortion, and the ability to record and playback multiple tracks.
Hardware/Software Tradeoffs
We made compromises in
order to get our project into a state where it would demo able. The
first is the decision to use DataFlash over secure digital card. We
spent many hours in lab trying to get SD to work. However, after
realizing that there was a chance that we may not get it working in
time, we made the decision to start the implementation of DataFlash.
Part of the reason SD was so difficult was the lack of any buffer. This
made the timing all the more sensitive.
|