Optical Heart Monitor/Jump Drive - HEIG-VD
Download
Report
Transcript Optical Heart Monitor/Jump Drive - HEIG-VD
ECE 191 – Group 6
Fall 2008
Optical Heart
Monitor/Jump Drive
Sponsor: Calit2
Mentor: Paul Blair Ph.D.
Team: Matt Chandrangsu, Jeffrey Chi, Kari Nip
Agenda
•
•
•
•
•
Project Background and Objective
Design Summary
Approach and Methodology
Results
Conclusions
Background and Objective
• There is increasing interest within the medical
community in studying an individual’s heart rate
variability.
• Existing data collection systems are cumbersome and
report heart rate rather than the variations of each heart
beat.
• There are not many applications that allow users to save
their heart rate data to view later for medical purposes.
• Our objective is to develop a small, reliable device
capable of conveniently reporting a person's heart rate
variability and storing the data for later use.
Design Summary
Pulse Oximeter
Sensor
2 Stage
Amplifier
Digital Signal
Filtering
AVR Microprocessor
AT90USB1287
Flash Memory
Computer
Database
Approach and Methodology
• Research and familiarize with Atmel AVR
Microcontrollers
• Understand heart rate monitor work from previous
quarters
• Research FAT12 file systems
• Write digital signal processing code that detects time
differences between heart beats from a raw signal
• Write code that properly writes data to microcontroller
flash memory and verify data is read on PC
• Write interrupt driven AVR Microcontroller code to
properly run application integrating all components
Pulse Oximeter Sensor
Purpose: Indirectly measures the oxygen saturation of a patient's blood to find
heart beat wave
Typically a 2 LED system:
-One red LED (660nm)
-One infrared LED (910nm).
We only use 1 LED:
-Only care about finding peaks of
heart beat signal, not oxygenation
levels or accuracy of waveform
-Implemented using 1 SFH487
infrared LED transmitter and 1
SFH309 photodetector
light
2 Stage Amplifier Schematic
2 Stage Amplifier
• Operational Amplifier Chip LM358 used
• Circuit amplifies input signal and also filters out
higher frequency noise components
– Gain of circuit is ~ 9.4
• Potentiometer functions as “volume control” –
dials up or down output voltage
• Analog filter output signal is fed into ADC port of
the microcontroller to undergo digital signal
processing
Oscilloscope Views
Inside the AVR Microcontroller
Interrupt-driven AVR Microcontroller code structure
LED ON
Timer 1
LED OFF
Start Timer 0
ADC ON
ADC OFF
Digital Signal Processing
• Find time between peaks
to determine heart rate
variability
• High frequencies make
determining the time
between beats difficult
• Approach: Matched
filtering to improve signalto-noise ratio
Matched Filtering
Convolve input signal with
template pulse to detect the
presence of the template in the
obtained signal
Inside the Microcontroller
• Data from ADC inputted into an array
• Array filtered using template signal
array
• Time between beats is saved to buffer
array for later storage onto flash
memory
Storing the heart rate variability to
flash memory
• Modifications of working storage C code to
implement.
• As data flows into a buffer array, it is read
and stored into a single file on the flash
memory.
• New data is appended to the same file.
FAT Filesystem
• Boot Sector
– Describes structure of file system
• File Allocation Table
– Acts as a map of the data region
• Root Directory (aka Directory Table)
– Displays name and information about the files stored in memory
• Data Region
– Actual file storage
File locations in the flash memory
• Directory Table = Sector 0x20 (32)
• First File in Data Region = Sector 0x40 (64)
Inside the Microcontroller
Digital Filtering Output Array =
1010 900 1300 …
Preparation for Conversion =
1 0 1 0 NULL 9 0 0 NULL 1 3 0 0 NULL
ASCII Conversion =
31 30 31 30 00 39 30
30 00 31 33 30 30 00
Store to intermediate buffer
Storage in USB filesystem at sector 40 =
31 30 31 30 00 39 30 30 00 31 33 30 30
00 00 00 00 00 00 00 …
Conclusion
• Completed:
– Pulse oximeter sensor
– 2 stage analog amplification element
– Digital filtering code that detects peaks and computes time
differences
– Code for writing bytes to a file system and transferring to PC via
USB
– Interrupt driven code infrastructure in place
• Future Development:
– Integrate all individual code elements into one cohesive program
and test and fine tune for functionality
– Mill PCB of amplifier circuit along with surface-mountable AVR
microcontroller chip and other circuit components to have a
standalone module
Questions??