Difference between revisions of "Projects:2013S2-U1 Wireless Electrocardiography System"
(→Outline of Individual Work) |
(→Outline of Individual Work) |
||
Line 23: | Line 23: | ||
that it has multiple functions such as the BLE slave and the breakout board, which make the synchronization become more convenient. The breakout board works like a bridge between the analogue front-end and the microcontroller because it enables the microcontroller to grab digital data from the ADC board. The cable used to connect the Xadow boards is supple and bendable so the connection is simple and not easy to be damaged. The memory size of the mainboard is: 32K flash to store the program, 2.5K SRAM to store the data processed during running time such as register and stack, and 1K EEPROM to store the setting values. As an Arduino compatible boards, it has its specific develop tool – Arduino. This software can be programmed by using C or C++ languages so it is easy for developers to use. | that it has multiple functions such as the BLE slave and the breakout board, which make the synchronization become more convenient. The breakout board works like a bridge between the analogue front-end and the microcontroller because it enables the microcontroller to grab digital data from the ADC board. The cable used to connect the Xadow boards is supple and bendable so the connection is simple and not easy to be damaged. The memory size of the mainboard is: 32K flash to store the program, 2.5K SRAM to store the data processed during running time such as register and stack, and 1K EEPROM to store the setting values. As an Arduino compatible boards, it has its specific develop tool – Arduino. This software can be programmed by using C or C++ languages so it is easy for developers to use. | ||
− | '''Programming | + | '''Programming Structure''' |
The first thing is to set up all the devices and this will be written in the setup() (so does the code for analogue front end controlling). After finishing the synchronization with ADC board, an empty array with fixed length will be constructed to store the ECG data temporarily. At the endof the array, a time stamp will be inserted for synchronization with the tablet. The array will be added in to a multiple buffer and wait for transmitting and the array in the end of the buffer will be transmitted. Considering the limit of the memory size, the array in the end will be cleared after sending and the temporary array will start loading new ECG data again. | The first thing is to set up all the devices and this will be written in the setup() (so does the code for analogue front end controlling). After finishing the synchronization with ADC board, an empty array with fixed length will be constructed to store the ECG data temporarily. At the endof the array, a time stamp will be inserted for synchronization with the tablet. The array will be added in to a multiple buffer and wait for transmitting and the array in the end of the buffer will be transmitted. Considering the limit of the memory size, the array in the end will be cleared after sending and the temporary array will start loading new ECG data again. | ||
− | ''' | + | '''Structure of Array''' |
Each ECG point will bethree bytes long and there are three channels totally, so there would be 9 bytes for each set of samples. 4 sets are packaged into an array in the coding and the final length of the array will be 40 bytes long after inserting the 4 bytes long time stamp. The time stamp is obtained by the millis() and the return value will be an unsigned long data ,which is 4 bytes long, but the Bluetooth can only send single byte each time, so the time stamp needs to be divided in to 4 single bytes before inserted. | Each ECG point will bethree bytes long and there are three channels totally, so there would be 9 bytes for each set of samples. 4 sets are packaged into an array in the coding and the final length of the array will be 40 bytes long after inserting the 4 bytes long time stamp. The time stamp is obtained by the millis() and the return value will be an unsigned long data ,which is 4 bytes long, but the Bluetooth can only send single byte each time, so the time stamp needs to be divided in to 4 single bytes before inserted. |
Revision as of 20:52, 5 June 2014
Electrocardiography (ECG) is a standard diagnostic tool to investigate the conduction properties of the heart via sensors that are mounted on the body surface. The Wireless Electrocardiogram (ECG) is a medical telemetry instrument used to monitor a patient’s ECG signal while allow the user to remain fully mobile and comfortable. ECG measures small electrical signals from the patient’s chest caused by the heart beating. By using these signals stored in a single device, medical staff can monitor the patients’ well being and predict future heart problems. Using current ECG equipment can be a time-consuming task and changing wires also would introduce bacteria to the patient, further increasing the risk of infection. By using a wireless ECG, the patients will be more comfortable since they are free from unnecessary wires. The device is portable and does not require user interaction. Meanwhile, the visualisation in the Android application provides possible analysis for the hospital staff and the data is automatically synchronised and stored for future review.This project is motivated by the current state of wireless communication technology.
Project Information
This project aims to design and build a low cost electrocardiogram device which involves capturing heart signals via electrodes attached to the chest, amplifying,filtering and digitising them appropriately, and sending the data collected to a synchronised tablet for plotting and analysing. The project is a continuation of 2012 mid-year Final Year Project, where the initial prototype was designed. It consists of the hardware and software for a portable wireless electrocardiogram device, construction of textile electrodes, and a corresponding Android application which, together, displays and records the users heart signal. The aim of the thesis is to introduce the android platform and develop a android ECG application that works with the ECG monitoring device. The application will be used for the realisation that ECG data signals can be sent from the analog front end device via bluetooth communication.
System Overview
The prototype we delivered need be able to perform several tasks: (1) Sensing and Data Acquisition: acquire the voltage signal generated by the test subject from textile electrodes, filter out the unwanted noise, amplify the signal to a manageable level, convert this analog signal to digital signal and connect to Bluetooth device for data transferring ; (2) Communication: package the data which is acquired from Analog Front End and transmit it to Android device wirelessly via Bluetooth; (3) Synchronisation and Visualisation: extract the received data package, create patient file and received data in database, plot real-time ECG waveform and review the patient history in log-file.
Outline of Individual Work
Sensing and Data Acquisition
acquire the voltage signal generated by the test subject from textile electrodes, filter out the unwanted noise, amplify the signal to a manageable level, convert this analog signal to digital signal and connect to Bluetooth device for data transferring
Communication
In this stage the data which is acquired from Analog Front End will be packaged and transmitted to Android device wirelessly via Bluetooth
Hardware
The communication part consists two parts: the micro-controller and the Bluetooth device. The hardware for the communication part is Xadow, which is an Arduino compatible board.The most signification feature of the Xadow boards is that it can be connected to different modules so that it has multiple functions such as the BLE slave and the breakout board, which make the synchronization become more convenient. The breakout board works like a bridge between the analogue front-end and the microcontroller because it enables the microcontroller to grab digital data from the ADC board. The cable used to connect the Xadow boards is supple and bendable so the connection is simple and not easy to be damaged. The memory size of the mainboard is: 32K flash to store the program, 2.5K SRAM to store the data processed during running time such as register and stack, and 1K EEPROM to store the setting values. As an Arduino compatible boards, it has its specific develop tool – Arduino. This software can be programmed by using C or C++ languages so it is easy for developers to use.
Programming Structure
The first thing is to set up all the devices and this will be written in the setup() (so does the code for analogue front end controlling). After finishing the synchronization with ADC board, an empty array with fixed length will be constructed to store the ECG data temporarily. At the endof the array, a time stamp will be inserted for synchronization with the tablet. The array will be added in to a multiple buffer and wait for transmitting and the array in the end of the buffer will be transmitted. Considering the limit of the memory size, the array in the end will be cleared after sending and the temporary array will start loading new ECG data again.
Structure of Array
Each ECG point will bethree bytes long and there are three channels totally, so there would be 9 bytes for each set of samples. 4 sets are packaged into an array in the coding and the final length of the array will be 40 bytes long after inserting the 4 bytes long time stamp. The time stamp is obtained by the millis() and the return value will be an unsigned long data ,which is 4 bytes long, but the Bluetooth can only send single byte each time, so the time stamp needs to be divided in to 4 single bytes before inserted.
Queue Buffer
The multiple-buffer used here is a linked list (or queue). The queue is composed of several nodes and the nodes will be used to store the array. There are two pointers for the queue: *head and *tail. Head is the node for storing the next array while Tail will points to the array to be transmitted next. The Nodes have two pointers as well: *array refers to the array and *next links to next node. The buffer follows the First In First Out (FIFO) rule, and the board will free the node after sent to get enough memory space for new data. The number of the nodes is determined by the available SRAM size.
Synchronisation and Visualisation
The tablet Nexus 7 from previous team is used in this project, which is based on Android system Version 4.4.2. It contains 16GB internal storage,1GB RAM and 4.325Ah for the battery capacity(up to 10 hours). Large data storage and battery capacity can perform long time patient monitoring and data storing.