Autorul poate fi contactat la adresa: andrei.tachici@stud.acs.upb.ro
Proiectul consta in realizarea unui aparat ECG (Electrocardiograma) cu 3 electrozi (leads) atasate de piciorul drept, mana stanga si mana dreapta. Inima produce curenti electrici mici care au rolul de a contracta muschii cardiaci ritmic, cu scopul de a facilita circulatia sangelui in corp. ECG-ul are rolul de a masura tensiunile (din mai multe puncte ale corpului) cu scopul de a produce o electrocardiograma din care rezulta vizual neregularitati posibile in modul de functionare a inimii.
ECG-ul din acest proiect va avea o functionalitate simpla fata de cele reale. In loc de a masura tensiunea din 12 borne, va masura tensiunea doar din 3 borne: picior drept, mana stanga, mana dreapta (cele mai importante de altfel) si va afisa forma de unda pe un ecran LCD.
Circuitul de fata se numeste Driven right leg circuit (DRL). Acesta se adauga pentru a reduce interferenta de mod comun cauzata de faptul ca pacientul actioneaza ca o antena si “prinde” frecvente de 50 Hz de la liniile de tensiune.
(Origine: wikipedia)
Cele 3 borne formeaza ceea ce se numeste Triunghiul lui Einthoven. Cele 3 potentiale, insumate, dau zero, astfel, daca consideram piciorul drept punct de masa virtual, putem obtine diferenta de potential dintre mana stanga (LA) si mana dreapta (RA) = LA - RA. Aceasta diferenta de potential va trebui amplificata (are maxim 2mV) de un amplificator de instrumentatie, filtrata (filtru trece banda: 50 Hz) si afisata pe un ecran LCD.
Circuitul ce va reprezenta ECG-ul contine 3 stagii:
Schema hardware contine ECG-ul, microcrontroler-ul Atmega328 si un ecran LCD TFT ST7735 (comunicarea MP-LCD se realizeaza prin SPI):
Am folosit LCD-ul: ITDB02-1.8SP TFT LCD Module (ST7735 controller). Pentru acesta am folosit libraria: uTFT (aici)
Am activat ADC-ul fara intreruperi, 5V referinta, cu prescaler 32.
Citesc de pe portul 0 semnalul.
Pentru afisarea acestuia fac polling la 100 ms si inserez punctul masurat intr-o coada de capacitate limitata, in implementarea mea 10.
Pentru desenarea semnalului unesc aceste puncte prin linii folosind algoritmul lui Bressenham (implementare care poate fi gasita in libraria uTFT de mai sus)
Functii folosite:
//adauga o noua masura si shifteaza la stanga vectorul de V masurati addMeasure(Measure x); // deseneaza pe LCD punctele interpoland liniar drawMeasuredPoints(); // Functia initializeaza convertorul Analog-Digital. void ADC_init(void); //incepe conversia si intoarce valoarea citita uint16_t ADC_get(uint8_t channel)
Datorita complexitatii circuitului propus pentru ECG am decis ca va trebui simulat. Pentru simulare am folosit aplicatia de la Texas Instruments TINA.
Rezultatul simularii circuitului de mai sus:
Problema principala a fost cauzata de zgomotul din jur si astfel nu am reusit sa obtin chiar unda PQRST.
Am reusit totusi sa captez semanalul cu ajutorul unei solutii cu sare aplicata pe piele in zona electrozilor.
Proiectul s-a dovedit a fi mai dificil decat m-am asteptat. Nu este un proiect la care sa se lucreze cu fire lipite. Este necesar un PCB pentru a minimiza zgomotul pe care circuitul il prinde din imprejur dar si folosirea unui Amplificator de Instrumentatie mai performant. De asemenea ar fi fost util sa aplic si un FFT pe semnalul captat de catre micro-controller. Am petrecut foarte mult timp incercand sa fac un LCD sa mearga prin SPI. Initial am cumparat un LCD care nu a mers tot TFT SPI st7735. Aparent librariile pentru ST7735R merg si pentru ST7735.
Cumparat Letcon, Multimetru, fludor, sacaz, tresa(neaparat) (sunt indispensabile)
Dat comanda piese de baza
Am cautat in multe locuri ce inseamna un circuit pentru un ECG cat si pericolele acestuia
Am dat comanda de aplificatoare.
Am stat foarte mult sa incerc sa fac un LCD sa mearga care la final s-a dovedit a fi stricat.
Am stat sa lipesc mai multe divizoare de tensiune pentru a interfata cu LCD-ul.
Am lipit restul amplificatoarelor.