Beruflich Dokumente
Kultur Dokumente
Date: 4/9/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:
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)
The EKG filter stood the test of movement, and although it was transported (very
unsafely) around my house, school, and the Shoulders of Giants lab, it worked perfectly at the
I have finished creating the PCB schematic, although I do need to assign footprints to
each of the components, as well as add a 5V linear regulator so the Arduino runs off the battery
rather than my laptop. Additionally, I need to find a way to design this to fit on top of the PCB.
This process may take about as long as my programming will, but if worse comes to worst, I will
be able to just use the EKG as a PCB, since I know that it functions properly.
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:
April 14: modify an existing Arduino program to take in the EKG signal
Results:
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. In addition to this, Dr. Foland also gave a lecture over digital filtering, which will help
Using an Arduino-user’s tutorial, I created a program that took the temperature and
humidity of the area around it as an exercise. Although I still do not have a PCB created, I had
the breadboard, so, by changing around the wiring and the temperature/humidity sensor code, I
was able to display the analog values of the EKG. I stored these values and graphed them in
excel, and found that I was indeed getting an EKG signal. This was extremely unsafe, as I was
essentially connecting myself to the power in the wall, so I will be attempting to do the same
I combined this with the code that Dr. Foland helped me create, and with additional help
from his digital filtering lecture, I have begun to put all of the project together. It does not yet