200 likes | 367 Views
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.
E N D
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 • 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
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 signal-to-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