Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Date: 3/23/18
Introduction:
As our world progresses, technology improves, and embedded systems can be found in
all aspects of our lives; one of these is medical equipment. My original work strives to create an
electrocardiogram (EKG) that not only accurately takes the EKG signal, but also uses
programming to find the heart rate. In the end, this should look like a finished product, ready to
Hardware:
Objective:
The EKG signal is extremely small - on the scale of milliVolts - and contains a lot of
noise from both the body and the surroundings. Therefore, by creating a circuit to filter and
amplify this signal, when the signal enters the program, it will be easier to manipulate.
This filtering is an integral part of not only the overall EKG, but it is also a chance to
demonstrate my knowledge of filtering techniques and printed circuit board (PCB) design, as this
Materials:
- breadboard - people
- electrodes - KiCad
- oscilloscope - solder
Dates:
Most of this design is experimental and thus requires a lot of flexibility. As such, there
are no specific dates to work on the hardware. However, the deadline for having a finalized filter
design is March 18. The deadline for the PCB design is March 24.
Description of Process:
Circuit Design:
The creation of the design of the EKG is mostly based on trial and error. Half of the EKG
is already set in stone and therefore does not need to be changed. However, the original filters
need to be modified, as they allowed for too much noise to pass through. Thus, by identifying the
sources of noise (DC drift, power line noise), I am able to find the cutoff frequencies of my
To identify the cutoff frequencies, I have to find which filter I am using. Using a filter
resistor and capacitor values quickly, allowing for higher efficiency when trying to find the
PCB Design:
Once I finalize a design on the breadboard, I will then have to use KiCad, a PCB design
software, to create a PCB design that will be sent to a PCB manufacturer to get the board created.
To do this, I will first have to create a schematic that shows how each of the components are
connected. Then, I will have to create footprints for components not included in the KiCad
library. Most of these will be the integrated circuits, and thus, the information for these footprints
will be easily found online. Once this is complete, I will then have to move to the PCB editor,
where, using the rats nest created from the schematic connections, I will lay traces that show
exactly where the connections will be on the actual board. To send my design to the PCB
manufacturer, I will have to produce a gerber file, as well as a bill of materials for myself to buy
the components.
After I receive both the PCB and the components, I will then solder the components onto
the PCB using both solder paste and a soldering iron. After a final test to ensure that the design
Results:
I have been able to finish the filter design after countless hours of trial and error. The
output of the instrumentation amplifier goes through a high pass filter with cutoff frequency of 1
Hz to eliminate DC drift. After that, it goes through an active low pass filter that both filters the
signal and amplifies it, a notch filter at 60 Hz (for power line noise), then a final filter to
eliminate some of the noise at around 200 Hz that was showing up on the oscilloscope.
The signal of the filter was extremely clean, and while I did lose a little information on
the QRS peak, my main concern was cleaning the signal of noise, which I accomplished. As far
as the small QRS peak, this will not be a problem in the software aspect.
(image: my filtered EKG signal with movement artifact)
As of right now, I have only just finished the filter design, and thus, have not begun to
design the PCB. However, I plan to do that soon, and as I can reuse portions of my old EKG, I
do not expect this part to take as long as the circuit design. As of now, I plan to design the PCB
so it sits on top of the Arduino Uno (the microcontroller that I am using) as a shield, so that the
EKG will all be put together. After this is completed, I will then just have to solder all of the
parts together.
Overall, I was extremely pleased with how well the final signal turned out. Filters have
always been a topic that I often had to return to my notes for, but after working with them for
weeks, I have a higher level of comprehension than I have had before. Additionally, I am more
familiar with the oscilloscope, and I am now able to use it without too much help from others.
Software:
Objective:
Most people are unable to interpret an EKG signal, and in order for this to mimic an
actual medical device or instrument, it needs to be user friendly. Thus, I made the decision to
create a program that detects a QRS peak and find the heart rate of the user. To find the heart
rate, I need to use a program that detects each pulse in the EKG. This portion will test me in new
ways, as I have almost exclusively used C++ and MSP microcontrollers, not Arduinos.
Materials:
Description of Process:
By referencing existing projects on the Arduino website, I will be able to learn the
individual parts of the project before putting them all together. This includes being able to read
an analog signal and manipulating it, as well as using the LCD properly and outputting
Once I am able to link the two together, I will begin manipulating the signal. To do this, I
will have to find the second derivative of the signal to detect where the fastest rates of change are
(the QRS peaks). Then, by storing consecutive data points for the times where these take place, I
will be able to find the average heart rate. I will also issue a warning to the user when they move
and corrupt the EKG signal, as a way to further improve the user-friendly aspect of the EKG.
Dates:
The deadline for this is May 5, and I am expecting to be on a slight time crunch, due to
the fact that this will be very difficult to fix when I encounter problems. However, since I have
already begun to work on this and have knocked out one of my major concerns in terms of
Because I do not yet have the PCB for the signal, I have been unable to proceed very far
into this step. However, I have all of the components (minus the PCB) and have already begun
programming the device in the IDE. I have had problems with the LCD, because the print
function will not output text to the screen. This may be due to a problem with the LCD or with a
As far as manipulating the signal, Dr. Foland and I worked with a sample EKG as a .csv
file and Octave, a program very similar to MATLAB. We found a way to detect the heart rates
and by transferring the code to the Arduino, I will have finished a major portion of the software
work.
I am the most nervous about this part of my original work, as I am the most unfamiliar
with this portion. I have experience working with hardware, but very little working with analog
programming language and logic are very similar, so I hope that this will not be too much of a
struggle.