-
-
The working prototype of Cardea
-
Flat wave being displayed when pulse is not obtained
-
Placing the index finger between the LDR and the LED (light source)
-
Systolic peaks visible on user interaction
-
Accurate BPM data given by Cardea
-
Circuit Schematic
-
Prototype in dark gives even better results
-
BPM Data collected during calibration
Inspiration
One of our common friends has a heart condition that she didn't even know about until her doctor advised her to do some tests because her pulse rate was very high. This got us both thinking of how several people in the world might suffer from heart diseases and yet don't get to know about it until it's very late. This negligence mainly occurs because most people find it unnecessary to invest in costly devices like oximeter, and many others cannot even afford them. Hence, we thought of developing an inexpensive solution that will allow people to check and monitor their heart condition. We thought the name 'Cardea' would be perfect for the project as it is the name of the ancient Roman goddess of health (Cardea or Carda), as this device will help people identify any early signs of heart abnormality and take the necessary actions at the earliest.
What it does
Cardea is a revolutionary idea in the market of medical devices like oximeters. With the help of this inexpensive device, we will be able to measure the essentials of one's heart health. Here it is performing photoplethysmogram aka PPG with a sensor that we built. With this PPG, we optically detect the blood volume change inside the microvascular bed of tissue. By analyzing the graph, the program auto-detects the systolic peaks and calculates the BPM. The user has to put the finger between the LDR and light source to check their pulse. It calibrates itself and prints the BPM, and after much calibration, we got the results of the PPG graph to be very accurate. Also, Cardea, on further development, will be able to display the logged results in memory for further analysis. Hence one will be able to consistently monitor their heart's function. Consistent heart monitoring might help people identify a health problem at a quite early stage or at least catch the symptoms of any heart disease before it gets to a stage that requires serious medical attention.
How we built it
First of all, we built the sensor, and for that, we used a LED and an LDR. We put both of them in front of each other such that we can place our index finger in between for pulse monitoring. Next, we needed a microcontroller for taking the readings and the calculations; for that, we used an atmega328p. The output of the sensor gets connected directly to the ADC of the microcontroller. Unlike the conventional pulse oximeters, which require external circuitry such as filters and smoothing capacitors and amplifiers, we have implemented digital filters to achieve the same results with accuracy. For that, we have used a recursive IIR (Infinite Impulse Response) filter that at first removes the high-frequency ADC noises and smoothes out the sensor readings. After that, we used a moving average algorithm to average 100 samples for higher accuracy. Till now, we were able to see the Beats. But the values had a high offset. We used a High pass recursive filter to get rid of that and finally obtained the accurate PPG graph in the monitor. Next, we had to detect the systolic peaks, and for that, we used a local maxima algorithm and used a millisecond timer to measure the time required from one peak to another. This is the time period of the peaks. By doing the inverse of the time period, we get the frequency. And multiplying that frequency with 60, we get the BPM. To recheck that BPM, it again runs a performance check by measuring the number of peaks detected in 10s and multiplying it with six; we get the number of peaks in the 60s. By fusing these values, we get the accurate BPM.
Challenges we ran into
Since for this project, we used LDR to identify the pulse rate, it was more difficult to calibrate the code than it would have been for an IR sensor. Another challenge was finding the filter coefficients for accurate readings, as it required a lot of trial and error. The algorithm for auto-calibration was a tough one to nail, and this project truly tested our level of patience.
Accomplishments that we're proud of
One of the accomplishments that we are very proud of is being able to extract accurate readings from the highly noisy data that the LDR provided. We did this by implementing the filters properly, and honestly, setting their filter coefficients was a great success. Finally, when we inserted our finger between the light source and the LDR, it successfully showed the PPG wave. We were able to identify it as very similar to the actual PPG graph, which made us very happy. The biggest achievement for us was building Cardea with just a few simple laying around components and without using any external analog filter. This made us feel very proud as makers.
What we learned
We learned about photoplethysmogram and also how we can achieve the PPG using simple components like an LED and LDR. We also learned about and experimented with digital filters, which we can implement into our future projects. We, of course, didn't get such smooth results at the very beginning when we saw the signal received by the LDR and then read by the ADC, for it was an absolute mess and a very noisy reading. However, after much toiling on the filtering aspect, we were able to get the desired readings.
What's next for Cardea
In the future, we will try to modify the algorithms for detecting the Diastolic peak and the Dicrotic notch and measuring the transit times. This will help in revealing many secrets of the user's health. Next, we will try to build an app that will display all the data recorded from Cardea's user, and the app will also be able to analyze and express if the user has any health condition using algorithms. Along with focusing on healthcare, this hack will also help people in general to monitor their well-being and learn about the factors that affect their health. We will try to turn this device into a commercial product that can also be used for educational purposes in institutes and hospitals.
Log in or sign up for Devpost to join the conversation.