Sistem de Monitorizare Biomedical Conectat Wireless la Pc
LUCRARE DE LICENȚĂ
SISTEM DE MONITORIZARE BIOMEDICAL CONECTAT WIRELESS LA PC
CUPRINS
Cap.1 Introducere
Motivarea temei
Implementări actuale
1.2.1 Sisteme de telemonitorizare
1.2.2 Determinarea direcției privirii cu ajutorul unei camere video (Eye tracking video)
1.2.3 Dispozitiv fix de monitorizare parametrii vitali
1.2.4 Dispozitiv mobil de monitorizare ECG
1.2.5 Dispozitiv mobil de monitorizare a parametrilor vitali
1.2.6 Sistem Integrat pentru Supraveghere Continuă în Rețea Inteligentă e-Health a Pacienților cu Afecțiuni Cardiologice (CardioNET)
Cap.2 Sisteme de senzori și achiziție de date pentru sistemele biomedicale
2.1 Senzori.Sisteme de senzori
2.1.1 Condiționarea senzorilor
2.1.2 Elemente de condiționare al semnalelor
2.1.3 Clasificarea senzorilor
2.2 Sisteme de achiziție de date
2.2.1 Sisteme de achiziție de date
2.2.2 Circuite pentru conversia datelor utilizate în sisteme de achiziții
Cap. 3 Microcontrolere
3.1 Caracteristicile generale ale unui microcontroller
3.2 Microcontrolere AVR ATMEL pe 8 biți
3.2.1 Microcontrolerul ATmega 328
3.3 Sisteme de transmisie de date
3.3.1 Comunicație serială de date
3.3.1.1 Interfața RS-232
3.3.1.2 Interfața I2C
3.3.1.3 Interfața USB
3.3.2 Comunicație paralelă de date
3.3.2.1 Interfața HPIB
Cap.4 Descriere module folosite
4.1 Descrierea platformei E-HEALTH
4.2 Caracteristicile senzorilor platformei E-Health
4.3 Descrierea paltformei Arduino Uno
4.4 Descriere modul Ethernet
Cap.5 Realizare practică
Cap.6 Concluzii
Bibliografie
Cap.1 Introducere
Motivarea temei
Un lucru foarte important îl reprezintă sănătatea populației, iar de aceea în lucrarea mea de licență am decis să fac mai multe cercetări asupra domeniului medical. Sănătatea populației este o problemă de actualitate atât pe plan european, cât și pe plan mondial, încercând să se aducă noi soluții în ajutorul pacienților. Diagnosticarea și tratarea pacienților depinde foarte mult de calitatea serviciilor medicale, de rapiditatea intervenției, precum și de capacitatea personalului medical de a asista cât mai mulți pacienți. Sistemul medical românesc se confruntă cu un număr insuficient de personal, de asemenea Casa de Sănătate alocă fonduri reduse, iar în consecință și costurile pe pacient sunt reduse. Prin urmare, cred ca o soluție fiabilă o reprezintă telemedicina, care în ultimii ani s-a bucurat de o dezvoltare importantă, fiind înregistrate progrese notabile în acest domeniu.
Telemedicina permite recepționarea la distanță a datelor medicale legate de un pacient, precum și stabilirea unui diagnostic. Această ramură a medicinei este foarte utilă, de exemplu atunci când pacientul aflat în stare critică este departe de o unitate spitalicească, sau când un medic trebuie să supravegheze starea mai multor pacienți în același timp. Telemedicina permite transmiterea și recepția informației despre parametrii vitali ai unui pacient: EKG, respirație, puls etc.
Una dintre aplicațiile principale de telemedicină o reprezintă telemonitorizarea, iar în capitolul următor se găsesc cateva exemple de implementări ale acestui sistem. Ca urmare a documentării în acest domeniu și efectuării unor lucruri practice la laboratorul de electronică medicală pe care le-am realizat pe durata unui semestru la facultate, am decis ca și în lucrarea mea să merg pe această direcție. Astfel o sa realizez un sistem de monitorizare biomedical conectat la calculator a unor parametrii vitali ai organismului.
1.2 Implementări actuale
1.2.1 Sisteme de telemonitorizare
Recentele progrese în tehnologia radio au deschis noi posibilități ce ar putea revoluționa furnizarea serviciilor medicale (Soomro 2007). Conectivitatea radio furnizează infrastructura și suportul mobil pentru monitorizarea în timp real și peste tot a pacientului (Istepanian 2004) precum și sistemul de urmărire pentru localizare în caz de alarmă (urgență) (Liszka 2004). Acestea sunt doar câteva exemple privind aplicațiile tehnologiilor radio în mediul medical, dar oportunitățile sunt nenumărate. De exemplu, dezvoltarea rețelelor radio personale (Wireless Personal Area Networks – WPANs), a rețelelor radio corporale WBAN (Wireless Body Area Networks – WBANs), a tehnologiei 802.15.1/Bluetooth (Lorincz 2004), a tehnologiei IEEE 802.15.3/4 (Howitt 2003, FCC), a sistemelor UWB/WiMedia (Soomro 2004) precum și a rețelelor radio locale (WLANs), ca de exemplu IEEE 802.11a/b/g/e/h/I (Cordeiro 2003), combinate cu rețele radio pe arii întinse (WWAN) cum sunt cele mobile 2G, 2.5G și 3G, la care se adaugă Internet-ul, permite realizarea unei rețele omniprezente care poate fi folosită pentru îmbunătățirea asistenței medicale pentru o gamă largă de utilizatori.
Pentru realizarea unei mari mobilități și a conectivității necesare îngrijirii globale, se impune integrarea unor tehnologii radio heterogene. Rețeaua celulară 3G are restricții de capacitate și nu este capabilă să suporte aplicații medicale care impun lucru în timp real pentru mulți pacienți. Ca urmare, tehnologiile WBAN, WPAN și WLAN – care obișnuit suportă fluxuri de date mai mari, dar pe arii de acoperire mult mai restrânse decât sistemele celulare, pot fi integrate și utilizate pentru realizarea conectivității în mediu non-medical și medical, în spitale, clinici și acasă sau în centre rezidențiale.
În trecut, serviciile medicale beneficiau de benzi de frecvență anume alocate. În prezent, este de dorit ca tehnologiile WBAN, WPAN și WLAN folosite în aplicațiile medicale să folosească aceeași infrastructură și aceleași benzi de frecvență, precum aplicații non-medicale: administrație, divertisment, comunicații vocale. Acest lucru este justificat de:
1. Benzile de frecvență alocate aplicațiilor medicale – cum este WMTS (Wireless Medical Telemetry Service) sunt prea înguste pentru a suporta fluxuri mari de date impuse pentru realizarea unei asistențe de calitate;
2. Sistemele radio care operează în benzi în care nu se solicită licență – așa cum sunt WBAN, WPAN și WLAN devin tot mai populare, tot mai folosite în spitale și în casele oamenilor;
3. Situația este avantajoasă economic.
Fig.1: Descriere sisteme de telemonitorizare
Fig 1.1: Rețea integrată de telemedicină pentru activități în spitale, în ambulatoriu și în teren
1.2.2 Determinarea direcției privirii cu ajutorul unei camere video (Eye tracking video)
Eye tracking video reprezintă determinarea direcției privirii cu ajutorul unei camere video. Două tipuri de imagini sunt folosite frecvent în eye tracking: imagini în spectrul vizibil și în spectrul infraroșu (Hansen 2005). Procesarea imaginilor în spectrul vizibil reprezintă o abordare pasivă și se bazează pe lumina ambientală reflectată de ochi. Caracteristica urmărită este irisul și în special conturul acestuia. Totuși procesarea este complicată datorită condițiilor de iluminare variabile ce poate determina obținerea unor imagini speculare și difuze. Procesarea imaginilor ochiului în infraroșu elimină aceste neajunsuri. Ochiul este iluminat în mod constant și uniform, imperceptibil pentru utilizator (Parkhurst 2005). Un alt avantaj îl reprezintă imaginea pupilei care apare mult mai pronunțată comparativ cu irisul, fiind preferată în procesările de imagine pentru eye tracking. Dezavantajul constă în faptul ca nu prea poate fi utilizat afară în timpul zilei datorită iluminării ambientale care are o componentă importantă în infraroșu.
Sistemul eye tracking în infraroșu utilizează două tehnici: pupilă albă, ori pupilă neagră. Prima se obține atunci când camera este poziționată astfel încât radiația infraroșu este reflectată de retină – fenomenul ochiului de pisică noaptea. A doua tehnică presupune poziționarea camerei și a sursei de lumină infraroșu astfel încât fenomenul reflexiei pe retină să nu mai fie înregistrat de cameră. În aceste condiții pupila apare ca un punct negru în imagine. În ambele cazuri este întâlnită reflexia corneală și apare în imagine ca fiind punctul cel mai luminos.
Fig 1.2 : Dispozitiv pentru prelucrarea imaginii ochiului (ASISTSYS 2008)
1.2.3 Dispozitiv fix de monitorizare parametrii vitali
O primă variantă constă într-un dispozitiv de monitorizare cu consum redus pentru pacienți imobilizați la pat.
Fig 1.3 : Schema bloc a dispozitivului de monitorizare pentru pacienți imobilizați la pat
Schema bloc a dispozitivului este prezentată în figura 1.3 și se compune dintr-un sistem digital personalizat, senzori și adaptoare de comunicare. Caracteristic acestui dispozitiv este posibilitatea de a alege între un canal fix de comunicare (Ethernet) util pacienților imobilizați și unul mobil (interfață serială) pentru conectarea unui telefon celular atunci când pacientul este deplasat .
Parametrii vitali monitorizați sunt: presiunea arterială, saturația de oxigen, temperatura și derivațiile ECG standard. Informațiile sunt furnizate de senzori construiți de terțe firme via USB. Cele trei semnale ECG sunt achiziționate de modulul ADC al microcontroller-ului. Datele pacientului sunt transmise către serverul tele-centrului regional unde sunt stocate și prelucrate.
Dispozitivul de monitorizare a fost construit în jurul unui microcontroller pe 16 biți cu un consum redus de energie (MSP430) (TI MSP430). Datele sunt stocate pe un card MMC și transmise, funcție de selecția realizată: via Ethernet (ECG prima derivație în timp real plus valorile parametrilor vitali preluați de la senzori – pacientul fiind imobilizat la pat), telefon (doar valorile parametrilor vitali prin SMS – pacientul este mobil) sau PC (doar valorile parametrilor vitali –pacientul este imobilizat la pat). Înregistrările de pe cardul MMC pot fi descărcate pe un PC cu ajutorul unui cititor de carduri pentru procesare ulterioară (în cazul ECG). În transmisia Ethernet s-a folosit controllerul de rețea RTL8019 (RTL8019) care implementează standardul NE2000. Datele preluate de la pacient sunt împachetate și transmise către server odată ce conexiunea este stabilită. Dimensiunea unui pachet poate varia între 11 și 256 de octeți.
1.2.4 Dispozitiv mobil de monitorizare ECG
O altă variantă propusă de către autor este un dispozitiv de monitorizare ECG cu un consum redus de energie destinat pacienților mobili.Diagrama bloc a dispozitivului de monitorizare este prezentată în figura 1.4. S-a urmărit obținerea unui consum cât mai redus de energie propunând o metodă de preluare a semnalelor ECG și o soluție software pentru gestiunea proceselor ce se execută pe microcontroller astfel încât acesta să se fie cât mai mult timp într-o stare de consum redus . Dispozitivul monitorizează doar derivațiile ECG standard (bipolare), salvează valorile eșantioanelor pe cardul SD/MMC și realizează o analiză rudimentară a primei derivații ECG constând în detecția complexului QRS conform algoritmului propus de Tompkins (Tompkins 1985,Hamilton 1986) și implementat de Patrick Hamilton (Hamilton 2002). Odată detectat complexul QRS se determină frecvența cardiacă. Dacă aceasta scade sub un prag limită sau crește peste un prag limită atunci este stabilită o legătură radio utilizând Bluetooth (F2M03GLA 2007) cu telefonul mobil purtat de pacient prin intermediul căruia datele (cele trei derivații ECG) ajung la serverul centrului de telemonitorizare.
Fig 1.4 : Diagrama bloc a dispozitivului de monitorizare ECG
1.2.5 Dispozitiv mobil de monitorizare a parametrilor vitali
Un al treilea dispozitiv de monitorizare a fost realizat pe baza celui prezentat anterior prin modificarea programului și adăugarea de noi module cu un consum redus de energie pentru monitorizarea saturației de oxigen, a temperaturii și pentru detecția respirației.
Diagrama sistemului este prezentată în figura 1.5.
Fig 1.5 : Diagrama bloc a sistemului de monitorizare
1.2.6 Sistem Integrat pentru Supraveghere Continuă în Rețea Inteligentă e-Health a Pacienților cu Afecțiuni Cardiologice (CardioNET)
Unea unui consum cât mai redus de energie propunând o metodă de preluare a semnalelor ECG și o soluție software pentru gestiunea proceselor ce se execută pe microcontroller astfel încât acesta să se fie cât mai mult timp într-o stare de consum redus . Dispozitivul monitorizează doar derivațiile ECG standard (bipolare), salvează valorile eșantioanelor pe cardul SD/MMC și realizează o analiză rudimentară a primei derivații ECG constând în detecția complexului QRS conform algoritmului propus de Tompkins (Tompkins 1985,Hamilton 1986) și implementat de Patrick Hamilton (Hamilton 2002). Odată detectat complexul QRS se determină frecvența cardiacă. Dacă aceasta scade sub un prag limită sau crește peste un prag limită atunci este stabilită o legătură radio utilizând Bluetooth (F2M03GLA 2007) cu telefonul mobil purtat de pacient prin intermediul căruia datele (cele trei derivații ECG) ajung la serverul centrului de telemonitorizare.
Fig 1.4 : Diagrama bloc a dispozitivului de monitorizare ECG
1.2.5 Dispozitiv mobil de monitorizare a parametrilor vitali
Un al treilea dispozitiv de monitorizare a fost realizat pe baza celui prezentat anterior prin modificarea programului și adăugarea de noi module cu un consum redus de energie pentru monitorizarea saturației de oxigen, a temperaturii și pentru detecția respirației.
Diagrama sistemului este prezentată în figura 1.5.
Fig 1.5 : Diagrama bloc a sistemului de monitorizare
1.2.6 Sistem Integrat pentru Supraveghere Continuă în Rețea Inteligentă e-Health a Pacienților cu Afecțiuni Cardiologice (CardioNET)
Un alt exemplu de sistem implementat este și în țara noastră: proiectul național CardioNET (Sistem Integrat pentru Supraveghere Continuă în Rețea Inteligentă e-Health a Pacienților cu Afecțiuni Cardiologice). Cu ajutorul acestui sistem axat pe telemonitorizarea pacienților cu afecțiuni cardice, se dorește optimizarea schimbului de informații dintre pacient, medic de familie, spital, casa de asigurări de sănătate, precum și cunoașterea precisă a antecedentelor medicale, a tratamentelor și evoluției acestor patologii.
Acest sistem are în arhitectura sa mai multe servere de date, terminale de acces și echipamente medicale mobile interconectate prin internet. De asemenea mai există și un protocol de comunicație pentru schimbul de informații administrative și medicale privind pacienții. Folosind mai multe servere, datele fiecărui pacient sunt replicate, în aceste fel fiabilitatea sistemului este mărită.
Sistemul de achiziție de date este format din două feluri de interfețe: interfețe pentru operator uman și interfețe pentru dispozitive de analiză. Dacă vorbim de interfața pentru operatorul uman, operatorul introduce datele despre pacient folosind formulare predefinite (pagini web), iar în celălalt caz datele sunt preluate direct de la dispozitive cu ajutorul conexiunilor seriale sau wireless. Datele pot fi transmise la solicitarea operatorului sau automat atunci când dispozitivul detectează o anumită situație critic.
Cap.2 SISTEME DE SENZORI ȘI ACHIZIȚIE DE DATE PENTRU SISTEME BIOMEDICALE
2.1 Senzori. Sisteme Senzoriale
Senzorul este un dispozitiv care sesizează un fenomen.Termenul de senzor este folosit pe scară largă și este asociat acelei componente electronice care permite măsurarea unei mărimii fizice.
Dar atunci când se încercă să se clarifice noțiuni de senzor nu se poate, să nu se amintească și de noțiunea de traductor. Cele două componente, senzor și traductor de cele mai multe ori se folosesc cu același înțeles, dispozitiv care permite măsurarea unei mărimii fizice. De fapt, senzorul sesizează (simte) un anumit fenomen, recepționează și răspunde la un stimul fizic. Este dispozitivul de la intrarea sistemului de măsurare. Traductorul este un dispozitiv care convertește (transformă) un tip de energie în alta de aceiași sau de natură diferită, de obicei o energie neelectrică în energie electrică. Atunci când transformă o energie electrică în energie neelectrică traductorul se numește actuator.
Un exemplu de actuator este difuzorul, transformă semnalele electrice în semnale acustice (sonore), motorul electric, transformă semnalele electrice în mișcare,etc. Din definiția traductorului, ca și componentă electrică de măsură, reiese că orice traductor conține un senzor. Pe lângă elemental sensibil (senzor) traductorul conține și circuitul care transform mărimea care poate fi evaluată electric (rezistență, capacitate, etc) în semnal electric. Traductorul se găsește amplasat la intrarea sistemului de măsură. Termenul de senzor este folosit în literatura de specialitate de limbă engleză pentru a definii componenta electronică care recepționează un stimul și răspunde cu un semnal electric. In continuare se va folosi termenul de senzor pentru a define componenta electronic la intrarea sistemului de măsură.
Senzorul a devenit o componentă tot mai complexă, evoluția lor a ținut pasul cu evoluția tehnologiei. Noile generații de senzori conțin, încapsulat în același chip, pe lângă elementul sensibil și alte elemente ale unui lanț de măsură ca exemplu: circuitul de condiționare de semnal, circuitul de conversie, procesor, element de transmisie a datelor. Se observă că aceste dispozitive pot conțin și o unitate de calcul ce poate realiza mai multe operații funcționale cum ar fi autocalibrarea, interoperabilitatea cu alte sisteme electronice.
Sistemul care conține unul sau mai mulți senzori dar și sistemul electronic de prelucrare și interpretare a informația de la senzor/i este denumit sistem senzorial. Sistemele senzoriale îndeplinesc diferite funcții într-un proces complex. Un exemplu de sistem senzorial este robotul. Robotul execută un număr mare de acțiuni într-un mediu de lucru. Realizarea acțiunilor se poate face pe baza informațiilor primare obținute de la senzorii care caracterizează mediul de lucru. Ansamblul dispozitivelor și echipamentelor care oferă robotului posibilitatea executării unei funcții tehnologice se numește sistem senzorial.
2.1.1 Condiționarea senzorilor
Rolul acestui subcapitol este de a oferii informații privind măsurarea senzorilor. Scopul urmărit este obținerea unor semnale electrice cu unul sau mai multe atribute măsurabile care să codifice mărimea fizică de la intrarea senzorului. Aplicațiile actuale urmăresc obținerea unor semnale electrice care să poată fi preluate și prelucrate de sisteme cu procesor (microcontroller). In acest scop mărimea primară de la intrarea senzorului este codificată la ieșirea circuitului de condiționare într-un atribut măsurabil de semnal electric, de exemplu amplitudine, timp, etc.
Senzorul împreună cu circuitul de condiționare de semnal formează sistemul de condiționare a senzorului. Acesta nu este un sistem de sine stătător ci reprezintă un bloc funcțional din lanțul de măsură. Lanțul de măsură este o înșiruire de blocuri, așa cum se vede în fig. 1.6
Fig. 1.6:Lanțul de măsură
Fiecare bloc funcțional din lanțul de măsură poate fi modelat matematic la fel ca și orice sistem informațional. Ecuația matematică ce descrie un bloc funcțional stabilește relația de dependență a mărimii de ieșire (output) în funcție de mărimea de intrare (input).
output = h(input)
Ecuația matematică ce descrie funcționarea blocului de condiționare de semnal depinde de topologia de circuit implementată.
2.1.2 Elemente de condiționare al semnalelor
-compatibilizare între ieșire senzor și hardware achiziție.
Amplificare
Aplicată de obicei dacă ieșirea senzorului este mai mică de 100 mv
Modifică rezoluția
Filtrare
Eliminare și reducere zgomot
Filtre trece jos pentru semnale ce variază lent
Filtre antialising pentru semnale cu variații bruște.
Izolare
Eliminare tensiuni tranzitorii înalte
Eliminarea situațiilor cand potențialul masă pentru hardware achiziție și senzor diferă
Excitație
Pentru senzori care solicită sursă externă de excitație;termistori cu rezistență de divizare
Multiplexare
Pentru măsurarea mai multor semnale lent variabile
Afectează frecvența maximă de achiziție
2.1.3 Clasificarea senzorilor
Există senzori pentru mai mult de 100 de mărimi fizice, iar dacă se iau în considerare și senzorii pentru diferite substanțe chimice, numărul lor este de ordinul sutelor. Se pot pune în evidență circa 2000 de tipuri distincte de senzori, oferite în 100.000 de variante, pe plan mondial .
De asemenea, există și o multitudine de criterii privind clasificarea lor, mai jos fiind redate cele mai importante:
Senzorii pot fi clasificați în funcție de tehnologiile utilizate pentru realizarea lor:
Tehnologii ale materialelor feromagnetice;
Tehnologii ale materialelor piezo-ceramice;
Tehnologii ale microeelectronicii și microsistemelor;
Tehnologii ale staturilor subțiri;
Tehnologii ale staturilor groase;
Tehnologii pentru materiale sinterizate;
Tehnologii ale foliilor etc.
În funcție de tipul mărimii fizice de intrare senzorii pot fi clasificați în:
absoluți, când semnalul electric de ieșire poate reprezenta toate valorile posibile ale mărimii fizice de intrare, raportate la o origine (referință) aleasă;
incrementali, când nu poate fi stabilită o origine pentru toate punctele din cadrul domeniului de măsurare, ci fiecare valoare măsurată reprezintă originea pentru cea următoare.
Foarte importantă este clasificarea în funcție de tipul mărimii de ieșire, în:
senzori analogici, pentru care semnalul de ieșire este în permanență proporțional cu mărimea fizică de intrare;
senzori numerici (digitali), la care semnalul de ieșire poate lua numai un număr limitat de valori discrete, care permit cuantificarea semnalului fizic de intrare.
Senzorii pot fi clasificați și în funcție de domeniul în care sunt utilizați:
În industrie
În protecția mediului
În transporturi
În automatizarea clădirilor și locuințelor.
În medicină
În medicină, de exemplu sunt folosite mai multe tipuri de senzori:
Senzori de temperatură
Senzori pentru măsurarea respirației
Senzori pentru măsurarea ritmului cardiac
Senzori pentru determinarea poziției corpului (accelerometru)
Senzori pentru măsurarea glicemiei
Senzori pentru măsurarea oxigenului din sânge etc.
Sisteme de achiziție de date
Un sistem de achiziție de date cu n canale de intrare poate fi realizat în următoarele trei configurații:
• sistem cu multiplexare temporală;
• sistem cu achiziție sincronă de date;
• sistem rapid de achiziție de date.
Un sistem de achiziție de date utilizat pentru achiziția și prelucrarea datelor într-un sistem (fig. 1.7) este compus din următoarele module funcționale principale:
convertoare de intrare;
2. circuite de multiplexare analogică;
3. circuite de eșantionare-memorare (E/M);
4. circuite pentru conversia datelor – convertoare analog-digitale (CA/D) și digital-analogice (CD/A);
5. registre tampon (buffer-e);
6. unitatea centrală de prelucrare (µP);
7. interfața de interconectare cu calculatorul personal.
Fig1.7: Structura generală a unui sistem de achiziții de date.
2.2.2 Circuite pentru conversia datelor utilizate în sisteme de achiziții de date
Conversia datelor reprezintă principala operație realizată în cadrul sistemelor de achiziție și reprezintă transformarea semnalelor din formă analogică în formă digitală sau invers.
Convertorul analog-digital reprezintă componenta principală a oricărui sistem de achiziții de date. Acesta realizează transformarea tensiunii analogice de la intrare într-un cod numeric binar (fig. 1.7a). Acest rezultat reprezintă cea mai bună aproximație numerică a tensiunii de la intrare. Măsura acestei aproximații este reprezentată de numărul de biți ai rezultatului conversiei.
Într-un sens mai larg, procesul de conversie analog-digitală poate fi considerat ca o plasare a mărimii de intrare într-un interval de cuantizare, obținut prin divizarea intervalului de variație a acesteia într-un număr de clase egale. Atunci când mărimea exprimată numeric la intrare este transformată în mărime analogică la ieșire se realizează o conversie digital-analogică (fig. 1.7c).
Fig. 1.7: Convertoare analog-digitale și digital analogice: reprezentare funcțională și caracteristică ideală de transfer.
Cap.3 MICROCONTROLERE
3.1 Caracteristicile generale ale unui microcontroler
Un microcontroler este de fapt o configurație minimală de sistem de calcul, capabil să execute la o viteză foarte mare instrucțiunile unui program stocat în memorie. Programul este format dintr-o secvență logică de operații ce poate implementa algoritmii necesari pentru controlul proceselor.
Diferența dintre un microcontroler și un circuit integrat analogic sau digital, este dată de faptul ca acesta nu poate executa nici o comandă dacă nu este programat. Prin intermediul unui program software, microcontrolerul are capacitatea de a realize funcții diferite cu aceeași configurație hardware. Programul este scris de obicei într-un editor ce permite salvarea liniilor de comandă introduce. Microcontrolerul le recunoște doar pe cele introduce în cod mașină.
Prin apariția și utilizarea microcontrolerelor s-a reușit o reducere consistentă a costurilor, dimensiunilor, consumului și îmbunătățirii fiabilitații. Acest proces de miniaturizare, pe măsură ce s-a dezvoltat, a făcut posibil ca majoritatea componentelor necesare realizării unui astfel de structuri să fie integrate la nivelul unui singur microcircuit.
Fig.1.8 Imagini microcontrolere
Ca denumiri și acronime folosite, așa cum un microprocesor de uz general este desemnat prin MCU (MicroProcessorUnit), un microcontroler este, de regulă, definit ca MCU, deși semnificația actuală a acestui acronim este MicroComputerUnit.
Un microcircuit ar trebui să includă următoarele componente:
unitate centrală (CPU)
memorie locală de tip ROM/PROM/EPROM/FLASH și eventual RAM
un sistem de întreruperi
I/O-intrări/ieșiri numerice
Un port serial sincron sau asincron, programabil
Un sistem de temporizatoare/numărătoare programabile.
Alte caracteristici specific sarcinii de control care mai pot fi adăugate sunt:
Un sistem de conversie analog numeric cu una sau mai multe ieșiri analogice
Un sistem de conversie numeric analogic
Un comparator analogic
memorie de date nevolatilă de tip EEPROM
Facilități pentru optimizarea consumului propriu.
3.2 Microcontrolere AVR ATMEL pe 8 biți
Microcontrolerele AVR pe 8 biți prezintă un nucleu RISC cu arhitectura Harvard. Acestea sunt destinate aplicațiilor simple,cum ar fi: pentru controlul motoarelor, aplicații din domeniul automotive, controlul accesului la distanță (Remote Accesss Control) etc. Firma Atmel pe baza acestui nucleu a dezvoltat mai multe tipuri de microcontrolere, cu diferite structuri de memorie și interfețe I/O destinate diferitelor clase de aplicații.
Procesoarele AVR pe 8 biți au următoarele caracteristici:
Arhitectură RISC
32 de register de lucru de 8 biți
Multiplicator hardware
Arhitectură Harvard a spațiului
Frecvență de lucru de la 0 la 16 MHz
Dispositive I/O și periferice incorporabile
Timer programabil cu circuit de prescalare
Surse de întrerupere interne și externe
Timer de urmărire cu oscillator independent
6 moduri de operare SLEEP și POWER DOWN pentru economisirea energiei
Oscilator integrat RC
Procesoarele sunt disponibile în capsule variate, de la circuite cu 8 pini la procesoare cu 68 de pini
Set unitar de instrumente software pentru dezvoltarea aplicațiilor
Prin folosirea arhitecturii de tip RISC, microcontrolerele din familia AVR reușesc execuția mai multor instrucțiuni într-un singur ciclu de tact, ceea ce duce la îmbunătățirea performanței de 10 ori față de procesoarele conventionale care operează la aceași frecvență.
Cele mai utilizate microcontrolere de uz general sunt: ATmega 8, ATmega16, ATmega 128, ATmega 328, etc. În figura 1.8 este redat microcontrolerul ATmega 328.
3.2.1 Microcontrolerul ATmega 328
Fig.1.8 Microcontrolerul ATmega 328
Microcontrolerul ATmega 328 face parte din clasa microcontrolerelor AVR pe 8 biți, cu o arhitectură de tip RISC. Prin executarea instrucțiunilor într-un singur ciclu de ceas, microcontrolerul ATmega 328 reușește o optimizarea a consumului de energie în raport cu viteza de procesare.
În figura 1.9 este prezentată diagrama bloc a microcontrolerului.
Nucleul AVR-ului combină un set bogat de instrucțiuni cu 32 registre de lucru. Toate cele 32 de registre sunt conectate direct la unitatea logică aritmetică (ALU), permițând accesarea a două registre independente, într-o singură instrucțiune și executate în același ciclu de ceas. Este de până la 10 ori mai rapid decât microcontrolere CISC tradiționale.
Fig.1.9: Diagrama bloc a microcontrolerului
3.3 Sisteme de transmisie de date
Sistemele de măsurare pot fi implementate la două nivele: la nivel fizic prin blocuri funcționale (aparatele de măsură) și prin module care pot îndeplinii funcții multiple, cum ar fi eșantionare, memorare și a căror selecție este făcută de o unitate centrală. Prin dotarea aparatelor de măsură cu interfețe de comunicație, se asigură interconectarea lor cu unități de calcul puternice și, implicit mărirea considerabilă a ariei funcțiilor ce pot fi implementate de sistemul respectiv.
Datele sunt memorate de către aparatele numerice sub formă de caractere reprezentate pe 8, 16 sau 32 de biți. Caracterele formate dintr-un anumit număr de biți se pot transmite la distanță către un alt sistem numeric, fie prin transmiterea simultană a câte 8 biți dintru-un caracter, realizându-se astfel o comunicație paralelă, sau prin transmiterea succesivă a biților care formează un caracter, realizându-se o comunicație serială.
3.3.1 Comunicație serială de date
Interfața serială este reprezentată de un sistem de comunicație numerică introdus ca urmare a necesității de a controla un ansamblu tehnic cu elemente dispersate pe arii mari. De exemplu, calculatoarele au în dotarea lor mai multe porturi seriale, utilizate pentru comanda imprimantelor seriale și a unor mouse-uri. Programatoarele EEPROM, PAL folosesc de asemenea această interfață pentru comunicarea cu calculatorul.
Cele mai cunoscute interfețe de comunicație serială a datelor sunt: interfața RS-232, interfața I2C, interfața USB.
3.3.1.1 Interfața RS-232
Majoritatea aparatelor folosesc această interfață pentru conectarea la calculator. Aparatele sunt de două categorii:
DTE (Data Terminal Equipments)- din care fac parte PC-ul, tastatura etc.
DCE(Data Communication Equipments )- din care fac parte aparatele de măsurare, modem-urile etc.
De obicei, la o interfață serială se poate conecta numai un singur aparat. O conexiune serială este format din 3 conductoare:
RXD (Receive Data) ,acesta fiind conductorul pentru semnalul de recepție
TXD (Transmit Data), acesta fiind conductorul pentru semnalul de emisie
GND (Ground)-acesta fiind conductorul de masă.
Interfața RS-232 folosește următoarele nivele de tensiune:
HIGHT: -15 V (-25V)
LOW: +15 V (+25V).
Intervalul de la -3 V la +3 V nu este permis. În figura 2 ne sunt redate nivele de tensiune pentru portul serial.
Fig.2: Nivelele de tensiune pentru portul serial
Viteza de transmisie a datelor este dată în BAUD. O altă unitate folosită este BPS (Bits Per Second). În cazul transmisiei seriale de date, această viteză este identică, excepție fâcând doar în cazul conectării prin modem-uri.
Valorile uzuale pentru viteza de transmisie sunt: 50, 110, 300, 600, 1200, 2400, 4800, 9600, 19200, 38400.
3.3.1.2 Interfața I2C
Pentru a simplifica proiectarea circuitelor și pentru maximizarea eficienței hardware-ului,a fost concepută o magistrală bidirecțională pe două fire, cu scopul îmbunătățirii controlului intreconectării circuitelor integrate. Această magistrală se numește INTER IC sau I2C. Actual, aceasta permite cuplarea a mai mult de 150 de tipuri de circuite integrate, realizate în tehnologie CMOS sau bipolară. Printre funcțiile realizate de această magistrală se numără: funcții în domeniul controlului intelligent, a circuitelor de uz dedicate precum și a circuitelor axate pe aplicații.
Caracteristicile magistralei I2C sunt:
Are doar două linii: o linie serială de date SDA și o linie de ceas SCL
Orice dispozitiv conectat la magistrală este adresabil prin software, având o adresă unică, fiind prezentă în orice timp pe magistrală o relație de tipul master-slave
Este o magistrală multi-master, având incluse detecția conflictelor și arbitrarea acesteia, pentru a preveni alterarea informației dacă mai multe dispositive master inițiază transferuri simultane
În modul standard, transferurile bidirecționale de date, cu lungimi de 8 biți, pot fi efectuate cu rate de transfer de 100 kbiți pe secundă, iar în modul rapid cu maxim 400 kbiți pe secundă
Circuitele de filtrare implementate în fiecare dispozitiv asigură eliminarea impulsurilor scurte, parasite, asigurându-se păstrarea integrității datelor
Numărul de dispozitive cuplabile de pe aceeași magistrală este limitat doar de capacitatea maximă suportată de acesta de 400 pF.
Interfața I2C asigură și importante avantaje ca:
Minimizează interconexiunile cu exteriorul datorită structurii foarte simple a magistralei
Se elimină utilizarea decodificatoarelor de adrese și a unei logici externe, prin protocolul complet integrat la magistralei I2C
Magistrala permite testarea rapidă prin capabilitățile de multimaster ale acesteia.
Dispozitivele cuplate la magitrala I2C sunt de două tipuri: dispositive master care poate iniția un transfer de date pe magistrală și care generează semnalul de ceas ce coordonează transferul și un orice alt dispozitivadresat numit slave.
Datorită faptului ca este o magistrală de tip multi-master, mai multe dispositive care o pot controla se pot cupla la aceasta.
3.3.1.3 Interfața USB
Pentru a se simplifica procedura de conectare a perifericelor la un PC, mărind viteza de transmisie prin intermediul unei comunicații de tip serial, a fost creată interfața USB (Universal Serial Bus). Însă pentru obținerea acestei facilitați se impune utilizarea unui protocol mai complex pentru păstrarea eficienței față de utilizator.
Hardware constă dintr-o conexiune pe patru conductoare: două sunt pentru alimentare (Vbus), unul pentru masă (GND), iar celelalte două pentru transferul de date (D+ și D-).
Cu USB se pot conecta simultan la PC până la 126 de periferice cu avantajul reducerii costului și al spațiului alocat plăcii de bază a PC-ului.
Arhitectura USB are trei componente principale: gazda, conectorii și perifericele.
Interfața USB asigură 4 tipuri de transfer de date:
Comenzi de transfer de la gazdă către echipament
Transfer de date de la un interrupt driver device către gazdă
Transferul unei cantități mari de date
Rate de transfer constant pentru aplicații ce necesită acest lucru.
În figura 2.1 este prezentată structura generală a unei magistrale USB.
Fig.2.1: Structura generală a unei magistrale USB
3.3.2 Comunicație paralelă de date
Comunicația paralelă de date este recomandată în cazul în care avem nevoie de viteze mari de comunicație, pentru sistemele de măsurare ce utilizează aparate inteligente conduse de calculator. De asemenea este utilizată și pentru alte aparate cuplate la calculator: imprimante, dispozitive de memorie externă.
3.3.2.1 Interfața HPIB
Prescurtarea HPIB vine de la Hewlett Interface Bus. Conectorul utilizat de bus-ul HPIB este redat în fig. 2.2
Fig.2.2 : Conectorul HPIB
Acest conector este format din 24 de pini care sunt alocați conform standardului pentru intrări ieșiri de date și comenzi.
Interfața HPIB pentru a putea realiza un sistem automat de măsurare, necesită un echipament de calcul, care să aibe implementată pe magistrala proprie placa de interfață pentru acest bus, iar aparatele trebuie sa posede de asemenea această interfață.
Acest sistem poate fi format dintr-un număr maxim de 15 aparate, acestea putând fi conectate la calculator în două moduri: în stea și în serie. Legăturile dintre aparate trebuie să fie cât mai reduse și să nu depășească lungimea de 2 m. Cea care asigură distanțe minime între aparate și o viteză de comunicație mai mare, este legătura în stea, prin urmare aceasta este cea mai recomandată. Legătura în serie asigură în schimb o viteză de comunicație mai mică, datorită traseelor lungi, însă permite o dispersare mai mare a aparatelor, dar cu o conectare imperfectă la una dintre cuple, care poate chiar întreruperea comunicației între aparate.
Aparatele compatibile și dotate cu această interfață, pot avea în sistem 3 funcții:
Ascultătorii, care primesc datele atunci când sunt adresați
Vorbitorii, care emit date atunci când sunt adresați
Controller-ele, care adresează aparatele legate la bus și trimit instrucțiuni special de comandă.
Pentru conectarea aparatelor se folosește un cablu cu 24 de conductoare, dintre care 16 sunt împărțite în 3 grupe: transferul informațiilor-8 linii, gestiunea transferului de informații-3 linii, gestiunea generală-5 linii.
Cap.4: Descriere module folosite
4.1 Descrierea platformei E-HEALTH V2.0
Shield-ul eHealth V2.0 permite utilizatorilor de Arduino și Raspberry Pi să efectueze aplicații biometrice și medicale, în cazul în care este nevoie de monitorizarea corpului utilizând 10 senzori diferiți: puls, oxigenul din sânge (SPO2), fluxul de aer (respirația), temperatura corpului, electrocardiogramă (ECG), glucometru, răspunsul galvanic al pielii (GSR-transpirație), presiunea sângelui (tensiometru), poziția corpului (accelerometru), și senzor de mușchi (EMG).
Fig.2.3 Platforma E-Health
Aceste informații pot fi folosite pentru a monitoriza în timp real starea unui pacient sau pentru a obține date sensibile, pentru a fi analizate ulterior pentru un diagnostic medical. Informațiile biometrice pot fi trimise fără fir folosind oricare dintre cele 6 opțiunile disponibile de conectivitate: Wi-Fi, 3G, GPRS, Bluetooth, 802.15.4 și ZigBee în funcție de aplicație.
În cazul în care este nevoie de diagnostic imagine în timp real un aparat de fotografiat poate fi atașat la modulul 3G, în scopul de a trimite fotografii și clipuri video ale pacientului la un centru de diagnostic medical.
Pentru a efectua stocarea permanentă sau vizualizarea în timp real a datelor, acestea sunt trimise direct la un laptop sau smartphone. Au fost create aplicații pentru iPhone și Android cu scopul de a vedea cu ușurință informațiile pacientului.
Fig.2.4:Senzorii platformei E-Health
Caracteristicile electrice ale platformei
Shield-ul e-Health poate fi alimentat de la PC sau de la o sursă de alimentare externă. Unele dintre porturile USB de pe computere nu sunt în măsură să dea tot curentul necesar modulului să lucreze, iar în cazul în care modulul are probleme când funcționează, puteți utiliza o sursă de alimentare externă (12V – 2A) de pe Arduino / RasberryPi.
Shield-ul e-Health
Fig.2.5: Shield-ul e-Health
În imaginile de mai jos este redat shield-ul e-Health peste Arduino:
Fig.2.6: Shield-ul e-Health peste Arduino
Biblioteca platformei e-Health sensor
Platforma e-Health sensor lucrează cu biblioteca C++ care vă permite să citiți cu ușurință toți senzorii și trimite informațiile, utilizând oricare dintre interfețele radio disponibile. Această bibliotecă oferă un sistem open source simplu de utilizat.
Caracteristicile senzorilor platformei E-Health
Caracteristicile senzorului de respirație:
Frecvențele respiratorii anormale și modificările ritmului respirator sunt un indicator important al instabilității fiziologice, și în multe cazuri frecvența respiratorie este un indicator important al acestei instabilități. Prin urmare, este foarte important să monitorizăm frecvența respiratorie ca indicator al stării pacientului. Senzorul fluxului de aer poate oferi o avertizare timpurie de hipoxemie și apnee.
Senzorul de respirație este un dispozitiv folosit pentru a monitoriza frecvența respiratorie a unui pacient care are nevoie de ajutor pentru a respira.
Acesta constă dintr-un fir flexibil care se asează in spatele urechilor și din cele două dispozitive nazale care sunt plasate în nări. Este proiectat special pentru a permite senzorului termocuplu să fie plasat în poziția optimă pentru a sesiza cu precizie schimbările debitului de aer precum și temperatura aerului nazal. Senzorul de respirație are avantajul ca este confortabil, reglabil și ușor de instalat.
Fig 2.7 : Senzorul de respirație
Un adult are o rată respiratorie de 15-30 respirații pe minut.
Fig.2.8: Modul de conectare al senzorului de respirație la pacient
Conectarea senzorului
Acest senzor are două conexiuni: o conexiune pozitivă și una negativă.
Fig.2.9: Conexiunile senzorului
Fig.3: Modul de conectare al senzorului
Fig.3.1: Modul de conectare al senzorului
Firul roșu trebuie conectat la borna pozitivă, marcată cu "+" pe placă, iar firul albastru la borna negativă marcată cu "-". După ce s-a realizat conectarea firelor, se strâng șuruburile.
Fig.3.2: Amplasarea senzorului la pacient
Senzorul trebuie amplasat dupa cum se vede in figura de mai sus.
Funcțiile bibliotecii senzorului de respirație
Acest senzor este conectat la Arduino printr-o intrare analogică și returnează valori între 0-1024. Cu următoarele funcții puteți obține această valoare în mod direct și se imprima o formă de undă în monitorul de serie.
Exemplu:
{
int airFlow = eHealth.getAirFlow();
eHealth.airFlowWave(air);
}
După ce se incarcă codul se urmărește pe monitorul serial rezultatul. Aici este ieșirea USB utilizând terminalul portului serial Arduino IDE.
Fig.3.3: Afișarea pe monitorul serial
Caracteristicile senzorului de temperatură
Temperatura corpului depinde de locul din organism la care se face măsurătoarea, de momentul zilei și nivelul de activitate a persoanei. Diferite părți ale corpului au diferite temperaturi.
Fig. 3.4 : Senzorul de temperatură
Temperatura medie acceptată, luată corpului este de 37,0 ° C (98.6 ° F). La adultii sanatosi, temperatura corpului fluctueaza cu aproximativ 0,5 ° C (0,9 ° F), pe tot parcursul zilei, cu temperaturi mai scăzute dimineața și temperaturi mai ridicate, după-amiaza târziu și seara, în funcție de nevoile și activitățile organismului .
Măsurarea temperaturii corpului are o importanță medicală foarte mare, deoarece numeroase boli sunt însoțite de modificări ale temperaturii corpului. De asemenea parcursul anumitor boli pot si evaluate prin monitorizarea temperaturii corpului, iar medicul poate verifica eficiența unui tratament initiat.
Calibrarea senzorului
Precizia senzorului temperaturii corpului este suficientă in majoritatea aplicațiilor, dar totuși prin procesul de calibrare se poate îmbunătății această precizie. Atunci când se folosește senzorul de temperatură, de fapt se măsoară o tensiune, care se referă la temperatura de funcționare a senzorului. Dacă se pot evita erorile în măsurătorile de tensiune, și reprezenta relația dintre tensiune și temperatura mai precis, se pot obține citiri de temperatură mai bune. Calibrarea este un proces de masurare a valorilor reale ale tensiunii și rezistenței.
Dacă se măsoară valorile Ra,Rb cu un multimetru și se modifică biblioteca se va obține o acuratețe foarte bună.
Fig.3.5: Shield-ul e-Health
Cu ajutorul multimetrului se măsoară valorile rezistențelor Ra și Rb și se aduc la valorile Ra=4640 și Rb=819.
Fig.3.6: Măsurarea rezistențelor
Fig.3.7: Măsurarea rezistențelor cu un ohmetru
.
Se repetă același proces între 3V și GND, dar cu multimetrul în măsurarea tensiunii. În acest caz nu se schimbă valoarea.
Fig.3.8: Măsurarea cu multimetru în măsurarea tensiunii
Conectarea senzorului de temperatură
Pentru luarea de măsuri de temperatură, conectați senzorul în conectorul jack cu ajutorul adaptorului.
Fig.3.9: Conectarea senzorului în conectorul jack
Dupa aceea trebuie sa aibă loc contactul dintre partea metalică și pielea pacientului. Pentru a ține senzorul atașat de piele se folosește o bucată de bandă adezivă.
Fig.4: Atașarea senzorului de piele
Fig.4.1:Conectarea senzorului pe platformă
Temperatura corporală poate fi luată de către o simplă funcție . Această funcție returnează ultima valoare de temperatură măsurată de către Arduino.
Exemplu:
{
float temperature = eHealth.getTemperature();
}
După ce se incarcă codul se urmărește pe monitorul serial rezultatul. Aici este ieșirea USB utilizând terminalul portului serial Arduino IDE.
Fig.4.2: Afișarea pe monitorul serial al rezultatului
Caracteristicile senzorului de poziție (Accelerometru)
Senzorul de poziție a pacientului (Accelerometru) monitorizează cinci poziții diferite ale pacientului (în picioare , așezat, culcat pe spate, predispus la stânga și la dreapta.)
De multe ori este necesară monitorizarea poziției corpului și a mișcărilor făcute din cauza relațiilor lor cu anumite boli (de exemplu, apneea de somn și sindromul picioarelor nelinistite). Senzorul de poziție a corpului ar putea ajuta la detecția leșinului sau căderii persoanelor în vârstă sau cu handicap.
Fig.4.3: Senzorul pentru poziția corpului
Senzorul de poziție a corpului folosește un accelerometru tripluaxial pentru a obține poziția corpului.
Caracteristici:
1.95 V la 3,6 V tensiune de alimentare
1,6 V la 3,6 V tensiune de interfață
2g ± / ± 4 g / ± 8g dinamic selectabil full-scale
Acest accelerometru este dotat cu funcții incorporate cu opțiuni de programare flexibile, configurabil pentru două întreruperi de pini.
Mai jos sunt prezentate pozițiile corpului:
Fig.4.4:Pozițiile corpului
Conectarea senzorului
Senzorul de poziție are un singur corp și un singur mod de conexiune. Se conectează cablul panglică cu senzorul de poziție a corpului și placa e-Health după cum se observă în imaginea de mai jos.
Fig.4.5: Conectarea senzorului
Se așează banda în jurul pieptului și conectorul se plasează jos
Fig.4.6: Conectarea senzorului pe pacient
Funcțiile bibliotecii
Biblioteca e-Health permite un mod simplu de programare. Cu o simplă funcție putem obține poziția pacientului și afișarea ei în monitorul serial de Arduino.
Inițializarea senzorului –înaintea folosirii senzorului trebuie să inițializăm câțiva parametrii.
Exemplu:
{
eHealth.initPositionSensor();
}.
Următoarele funcții returnează o valoare care reprezintă poziția corpului stocate în variabilele private ale clasei de e-Health.
Exemplu:
{
uint8_t position = eHealth.getBodyPosition();
}
Poziția pacientului
1 == poziția culcat pe spate.
2 == stânga decubit lateral.
3 == decubit lateral dreapta
4 == pozitia culcat.
5 == poziția de șezut
Pentru reprezentarea datelor mai facil în monitorul serial, biblioteca e-Health are funcția de imprimare.
Exemplu:
{
Serial.print ("Poziția actuală:");
Poziția uint8_t = eHealth.getBodyPosition ();
eHealth.printPosition (poziție);
}
Caracteristicile senzorului pentru puls și oxigenul din sânge (SPO2)
Pulsoximetria este o metodă neinvazivă de a indica saturația de oxigen arterial a hemoglobinei. Saturația de oxigen este definită ca măsurarea cantității de oxigen dizolvată în sânge, bazată pe detectarea hemoglobinei și deoxihemoglobină. Două lungimi de undă de lumină diferite sunt utilizate pentru a măsura diferența reală în spectrele de absorbție a HbO2 și Hb.
Fluxul sanguin este afectat de concentrația de HbO2 și Hb, precum și de coeficienții de absorbție care sunt măsurați cu ajutorul a două lungimi de undă 660 nm (spectre de roșu deschis) și 940 nm (spectrul luminii infraroșii).
Fig.4.7:Senzorul pentru puls și oxigenul din sânge
Hemoglobina dezoxigenată (Hb), are o absorbție mai mare la 660 nm și hemoglobina oxigenată (HbO2) are o absorbție mai mare la 940 nm. Apoi, un fotodetector percepe lumina neabsorbită de la LED-uri pentru a calcula saturația oxigenului arterial.
Un senzor de pulsoximetrie este util în orice mediu unde oxigenarea unui pacient este instabilă, inclusiv în terapie intensiva, de recuperare.
Limitele normale acceptabile pentru pacienți sunt de 95 – 99 la sută, cei cu o problemă de o unitate hipoxică ar putea valori între 88 – 94 la sută,iar valorile de 100 la suta pot indica intoxicație cu monoxid de carbon.
Conectarea senzorului
Se conectează sezorul pe platforma e-Health într-un singur mod pentru a preveni erorile și de a face legătura mai ușor.
Fig.4.8: Conectarea senzorului pe platformă
Apoi se introduce degetul în senzor,se apasă butonul ON și se urmărește pe ecranul rezultatele măsurătorilor, ce apar după câteva secunde.
Fig.4.9: Vizualizarea rezultatelor pe ecranul senzorului
Inițializarea senzorului – acest senzor utilizează întreruperi și este necesar să se includă o bibliotecă specială atunci când este folosit.
#include < PinChangeInt.h >
Apoi trebuie atașat în codul întreruperile pentru a obține date de la senzor. Senzorul va întrerupe procesul de actualizare a datelor stocate în variabile private.
PCintPort::attachInterrupt(6, readPulsioximeter, RISING);
Pinul digital 6 din Arduino este pinul în care senzorul trimite întreruperea și funcția de citire a pulsioximetriei va fi executată.
void readPulsioximeter(){
cont ++;
if (cont == 50) { //Get only one 50 measures to reduce the latency
eHealth.readPulsioximeter();
cont = 0;
}
}
Înainte de a începe utilizarea senzorului SP02, acesta trebuie inițializat.Se utilizează următoarea funcție pentru a configura o serie de parametrii de bază și pentru a începe comunicarea între Arduino și senzor.
Citirea senzorului
Pentru a citi valoarea curentă a acestui tip de senzor se utilizează următoarea funcție:
{
eHealth.readPulsioximeter();
}
Pentru a vizualiza datele pe care le poate obține senzorul se folosesc următoarele funcții:
{
int SPO2 = eHealth.getOxygenSaturation()
int BPM = eHealth.getBPM()
}
Caracteristicile senzorului ECG
Senzorul pentru electrocardiogramă a ajuns să fie printre cei mai folosiți senzori în testele medicale în medicina modern. Utilitatea sa constă în diagnosticul de patologii cardiace,de la ischemie miocardică, infarct de sincopa și palpitatii a fost de neprețuit pentru medici multă vreme. În figura de mai jos este redată prezentarea schematică a unui ECG normal:
Fig.5:Reprezentarea schematică a unui ECG normal
Conectarea senzorului
Se conectează cele trei cabluri (pozitiv,negativ,neutru) după cum este ilustrat în figura de mai jos:
Fig.5.1: Modul de conectare a senzorului ECG
Apoi se poziționează electrozii astfel:
Fig.5.2: Poziționarea electrozilor senzorului
Acest senzor ECG returnează o valoare analogică în volți (0-5) pentru a reprezentaforma de undă .
{
float ECGvolt = eHealth.getECG();
}
Caracteristicile senzorului de presiune arterială
Tensiunea arterială este presiunea sângelui în artere care este pompat în corp de inimă. Când inima bate, se contractă și împinge sângele prin artere în restul corpului. Această forță creează presiune asupra arterelor. Tensiunea arterială este înregistrată ca două numere -a tensiunii arteriale sistolice (că inima bate) și a presiunii diastolice (că inima relaxează între bătăi).
Fig.5.3: Senzorul pentru presiunea arterială
Monitorizarea tensiunii arteriale la domiciliu este importantă pentru mulți oameni, mai ales dacă au hipertensiune arterială. Tensiunea arterială nu rămâne la fel tot timpul. Se schimbă pentru a satisface nevoile corpului. Aceasta este afectată de diverși factori, inclusiv poziția corpului, respirație sau starea emoțională, exercitii fizice si somn. Cel mai bine este să se măsoare tensiunea arterială atunci când ești relaxat și așezat sau culcat.
Tensiunea arterială crescută (hipertensiune arterială), poate duce la probleme grave, cum ar fi infarct miocardic, accident vascular cerebral sau boli de rinichi.
Conectarea senzorului se realizează cu ajutorul unui adaptor așa cum este ilustrat în figura de mai jos:
Fig.5.4:Conectarea senzorului pe platformă
Conectarea senzorului
Înainte să utilizăm tensiometrul este nevoie de o măsură, cel puțin în memoria senzorului de presiune arterială. După aceea se pot obține toate informațiile conținute în dispozitiv.Tensiometrul se așează pe braț.
Se conectează terminalul jack la conectorul tensiunii arteriale de pe platforma și terminalul mini-USB la tensiometru. Cablul este compus din două cabluri adaptoare așa cum se arată în următoarea imagine.
Fig.5.5:Conectarea senzorului cu adaptoare
Unii parametrii trebuie să fie inițializați înainte de utilizarea senzorului de presiune arterială (tensiometru). Funcția următoare initializeaza unele variabile și citește datele :
{
eHealth.readBloodPressureSensor();
Serial.begin(115200);
}
Caracteristicile senzorului GSR
Conductanța pielii, de asemenea, cunoscută sub numele de rezistența electrică a pielii (GSR) este o metodă de măsurare a conductanței electrice a pielii, care variază în funcție de nivelul de umiditate. Acest lucru este de interes, deoarece glandele sudoripare sunt controlate de sistemul nervos simpatic, deci momente de emoție puternică, modifica rezistența electrică a pielii. Senzorul pentru conductanța pielii măsoară conductivitatea electrică între 2 puncte, și este în esență un tip de ohmmetru.
Fig.5.6:Senzorul GSR
Principiul sau teoria din spatele funcționării senzorului de răspuns galvanic este de a măsura rezistența electric a pielii, pe bază de sudoare produsă de organism. Când nivel ridicat de transpirație are loc, rezistența electrică a pielii scade.
Calibrarea senzorului
Precizia senzorului este suficientă în majoritatea aplicațiilor. Dar vă puteți îmbunătăți această precizie printr-un proces de calibrare. Calibrarea este un proces de măsurare a valorilor reale de tensiune.
Se plasează multimetrul între 0,5V și Gnd,apoi se modifică 0,5V în 0,498.
Fig.5.7: Calibrarea senzorului
Conectarea senzorului
Senzorul galvanic al pielii are două contacte și funcționează ca un ohmmetru pentru măsurarea rezistenței materialelor. Contactele nu au polarizare.
Fig.5.8:Conectarea senzorului
Caracteristicile glucometrului
Glucometru este un dispozitiv medical pentru determinarea concentrației aproximative de glucoză în sânge. O mică picătură de sânge, obținută prin înțepături pe piele cu un ac, este plasată pe un test de unică folosință pe care contorul îl citește și utilizează pentru a calcula nivelul de glucoză din sânge.Contorul afișează apoi nivelul în mg / dl sau mmol / l.
Fig.5.9:Glucometru
Conectarea senzorului
Înainte începerii utiliizării glucometrului este nevoie de o măsură, cel puțin în memoria glucometrului. După aceea putem obține toate informațiile conținute în glucometru (data, valoarea glucozei).
Fig.6:Conectarea senzorului
Caracteristicile electromiogramei (EMG)
O electromiograma (EMG) măsoară activitatea electrică a mușchilor în repaus și în timpul contracției.
Electromiografia (EMG) este o tehnică de evaluare și înregistrare a activității electrice produsă de mușchii scheletici. EMG se realizează cu ajutorul unui instrument numit electromiograf, pentru a produce o electromiogramă. Un electromiograf detectează potențialul electric generat de celulele musculare atunci când aceste celule sunt activate electric sau neurologic. Semnalele pot fi analizate pentru a detecta anomalii medicale, sau de a analiza biomecanică de mișcare umană sau animală.
Semnalele EMG sunt folosite în multe aplicații clinice și biomedicale. EMG este folosit ca un instrument de diagnosticare pentru a identifica boli neuromusculare, kinetoterapie. Semnalele EMG sunt, de asemenea, utilizate ca un semnal de comandă pentru dispozitive de protezare, cum ar fi mâna protetică.
Fig.6.1 :Senzorul EMG
Conectarea senzorului
Se conecteaza cele trei cabluri pe platforma E-Health.
Fig.6.2: Conectarea senzorului
4.3 Platforma ARDUINO UNO V3
Descriere
Arduino UNO este o platformă de procesare open-source, bazată pe software și hardware flexibil și simplu de folosit. Constă într-o platformă de mici dimensiuni construită în jurul unui procesor de semnal și este capabilă de a prelua date din mediul înconjurator printr-o serie de senzori și de a efectua acțiuni asupra mediului prin intermediul luminilor, motoarelor, servomotoare și alte tipuri de dispozitive mecanice. Procesorul este capabil să ruleze cod scris într-un limbaj de programare care este foarte similar cu limbajul C++.
Fig.6.3: Platforma Arduino Uno
Specificații :
Microcontroler: ATmega328
Tensiune de lucru: 5V
Tensiune de intrare (recomandat): 7-12V
Tensiune de intrare (limita): 6-20V
Pini digitali: 14 (6 PWM output)
Pini analogici: 6
Intensitate de iesire: 40 mA
Intensitate de iesire pe 3.3V: 50 mA
Flash Memory: 32 KB (ATmega328) 0.5 KB pentru bootloader
SRAM: 2 KB (ATmega328)
EEPROM: 1 KB (ATmega328)
Clock Speed: 16 MHz
4.4 Modulul Ethernet
Descriere
Modulul Internet pentru Arduino permite platformei Arduino să se conecteze la Internet. Fizic, constă într-o plăcuță similară ca formă cu platforma Arduino.
Fig.6.4: Modulul Ethernet
Pentru a o folosi, se conectează deasupra Arduino, introducând pinii modulului Internet în pinii corespondenți de pe Arduino. Astfel, ai la dispoziție (aproape) toți pinii Arduino direct pe modul Internet. “Aproape”, pentru că pinii 10, 11, 12 și 13 sunt utilizați de modulul Internet pentru conectarea cu Arduino. Toți ceilalți pini pot fi folosiți în mod obișnuit.
Modulul Ethernet dispune de un buton de reset, care resetează atât modulul Ethernet cât și platforma Arduino.
– PWR: indică faptul că modulul Ethernet este alimentat
– LINK: indică prezența unei conexiuni de rețea și clipește atunci când modulul Internet transmite sau primește date.
– RX: clipește atunci când modulul primește date.
– TX: clipește atunci când modulul transmite date.
Cap.5 Realizare practică
Cu ajutorul modulelor descrise mai sus am realizat un sistem de monitorizare biomedical, cu afișare prin internet a rezultatelor măsurătorilor senzorilor de temperatură și respirație.
Fig.6.6: Conectarea senzorilor pe placă
Fig.6.7: Modul de conectare al pinilor
Pinii i-am conectat după cum se arată mai jos:
Pinul 3v3 cu VCC (alimentarea)
GND cu GND (ground-ul)
Pinul 13 cu SCK (serial clock)
Pinul 12 cu SO (slave output)
Pinul 11 cu SI (slave input)
Pinul 8 cu CS (chip select)
Senzorul de temperatură
Temperatura corpului depinde de locul din organism la care se face măsurătoarea, de momentul zilei și nivelul de activitate a persoanei. Diferite părți ale corpului au diferite temperaturi.
Temperatura medie acceptată, luată corpului este de 37,0 ° C (98.6 ° F). La adultii sanatosi, temperatura corpului fluctueaza cu aproximativ 0,5 ° C (0,9 ° F), pe tot parcursul zilei, cu temperaturi mai scăzute dimineața și temperaturi mai ridicate, după-amiaza târziu și seara, în funcție de nevoile și activitățile organismului .
Măsurarea temperaturii corpului are o importanță medicală foarte mare, deoarece numeroase boli sunt însoțite de modificări ale temperaturii corpului. De asemenea parcursul anumitor boli pot si evaluate prin monitorizarea temperaturii corpului, iar medicul poate verifica eficiența unui tratament initiat.
Rezultatele sunt redate pe ecranul calculatorului cu indicatoare, care sunt gradate pe o anumită scară de măsură caracteristică fiecărui tip de senzor folosit.
În figura 6.8 și 6.9 este redat indicatorul pentru senzorul de temperatură.
Fig.6.8: Indicator pentru temperatură
Fig.6.9: Indicator pentru temperatură
În graficele de mai jos sunt redate valorile temperaturii în funcție de ora la care s-a realizat măsurarea .
Fig.7: Afișarea temperaturii în funcție de oră
Fig.7.1: Afișarea temperaturii în funcție de oră
Codul sursă pentru afișarea temperaturii
#include <eHealth.h>
// the setup routine runs once when you press reset:
void setup() {
Serial.begin(115200);
}
// the loop routine runs over and over again forever:
void loop() {
float temperature = eHealth.getTemperature();
Serial.print("Temperature (ºC): ");
Serial.print(temperature, 2);
Serial.println("");
delay(1000); // wait for a second
}
Senzorul pentru respirație
Frecvențele respiratorii anormale și modificările ritmului respirator sunt un indicator important al instabilității fiziologice, și în multe cazuri frecvența respiratorie este un indicator important al acestei instabilități. Prin urmare, este foarte important să monitorizăm frecvența respiratorie ca indicator al stării pacientului. Senzorul fluxului de aer poate oferi o avertizare timpurie de hipoxemie și apnee.
Senzorul de respirație este un dispozitiv folosit pentru a monitoriza frecvența respiratorie a unui pacient care are nevoie de ajutor pentru a respira.
Este proiectat special pentru a permite senzorului termocuplu să fie plasat în poziția optimă pentru a sesiza cu precizie schimbările debitului de aer precum și temperatura aerului nazal. Senzorul de respirație are avantajul ca este confortabil, reglabil și ușor de instalat. Acest senzor returnează valori între 0 și 1024.
În fig.7.2 și 7.3 este redat indicatorul pentru senzorul de respirație
Fig.7.2: Indicator pentru respirație
Fig.7.3: Indicator pentru respirație
În graficele de mai jos sunt redate valorile senzorului de respirație în funcție de ora la care s-a realizat măsurarea.
Fig.7.4: Afișarea valorilor respirației în funcție de oră
Fig.7.5: Afișarea valorilor respirației în funcție de oră
Fig.7.6: Afișarea valorilor celor doi senzori pe monitor
Codul sursă pentru afișarea respirației
#include <eHealth.h>
// The setup routine runs once when you press reset:
void setup() {
Serial.begin(115200);
}
// the loop routine runs over and over again forever:
void loop() {
int air = eHealth.getAirFlow();
eHealth.airFlowWave(air);
}
Codul sursă pentru afișarea celor doi senzori
#include <eHealth.h>
#include <EtherCard.h>
#define STATIC 1
#if STATIC
static byte myip[] = { 192,168,1,200 };
static byte gwip[] = { 192,168,1,1 };
#endif
static byte mymac[] = { 0x74,0x69,0x69,0x2D,0x30,0x31 };
byte Ethernet::buffer[500];
void setup()
{
Serial.begin(115200);
Serial.println("monitorizare");
if (ether.begin(sizeof Ethernet::buffer, mymac) == 0)
Serial.println( "nu ma pot conecta la internet");
ether.staticSetup(myip, gwip);
Serial.println();
ether.printIp("IP Address:\t", ether.myip);
ether.printIp("Gateway:\t", ether.gwip);
}
void loop()
{
float temperature = eHealth.getTemperature();
Serial.print("Temperature (șC): ");
Serial.print(temperature, 2);
Serial.println("");
Serial.print("\n");
Serial.print("\n");
int air = eHealth.getAirFlow();
Serial.println(air); // va afisa o valoare relativa
delay(1000);
delay(1);
word pos = ether.packetLoop(ether.packetReceive());
if(pos) {
Serial.println("Got a request…");
float h = temperature;
char h_string[7];
dtostrf(h, 4, 2, h_string);
float t = air;
char t_string[7];
dtostrf(t, 4, 2, t_string);
BufferFiller bfill = ether.tcpOffset();
bfill.emit_p(PSTR("HTTP/1.0 200 OK\r\n"
"Content-Type: text/html\r\n\r\n"
"myCB({'temperature':$S,'air':$S})"),
t_string, h_string);
ether.httpServerReply(bfill.position());
Serial.print("… sent the following values: T=");
Serial.print(t);
Serial.print(", H=");
Serial.println(h);
}
}
Cap.6 Concluzii
Monitorizarea în timp real a pacienților , reprezintă o metodă foarte eficientă în sistemul medical și care ar trebui folosită mai des în mediul spitalicesc. Atât pentru pacienții aflați în dificultate, de exemplu după intervenții chirurgicale complicate care implică riscuri majore, cât și preventiv.
Prin cercetările în domeniul telemonitorizării, se pot aduce multe beneficii sistemului medical românesc. Astfel se poate obține o calitate superioară a serviciilor medicale prin implementarea serviciilor de telemonitorizare biomedicală.
Astfel, în urma documentării în domeniul electronicii medicale, respectiv a monitorizării biomedicale, am decis ca și în lucrare mea de licență să merg pe această direcție, realizând un sistem de monitorizare biomedicală a temperaturii și respirației omului. Prin acest mod se pot monitoriza de la distanță acești doi parametrii foarte importanți , ceea ce este un lucru foarte important pentru viața fiecăruia dintre cei aflați în dificultate la un moment dat, reușind cu ajutorul modulelor folosite să dezvolt un astfel de sistem de monitorizare fiabil.
Prin folosirea sistemelor de monitorizare biomedicală pe scară largă, se pot obține numeroase avantaje, cum ar fi: creșterea calității actului medical, conducând la creșterea calității gradului de sănătate al populației și implicit la scăderea gradului de mortalitate. Iar în plan economic, se pot reduce semnificativ costurile în domeniul sănătății, prin perioade de spitalizare mai reduse.
Bibliografie
POPA, Rustem, ”ELECTRONICĂ MEDICALĂ”, Editura Matrixrom, anul 2006
WILMSHURST,Tim,”DESIGNING EMBEDED SYSTEM WITH PIC MICROCONTROLLERS.PRINCIPLES AND APPLICATIONS”, Editura ELSEVIER, anul 2007
http://webbut.unitbv.ro/Carti%20on-line/BSM/BSM/capitol4.pdf
http://www12.tuiasi.ro/users/103/Rotariu_rezumat.pdf
http://www12.tuiasi.ro/users/103/2012-Lupu_Robert_Rezumat_Teza_doctorat.pdf
http://andrei.clubcisco.ro/cursuri/2ad/Curs_AD_Electronica_aplicata.pdf
http://www.robotics.ucv.ro/flexform/aplicatii/m1/Gugu%20Ileana%20-%20Sisteme%20mecatronice%20si%20robotice/
http://cursuri.flexform.ro/courses/L2/document/ClujNapoca/grupa4/Cristea_Maria/site/istoria_micr.html
http://www.sisinternational.ro/produs/62/Microcontrolere/
file:///C:/Users/Diana/Downloads/ATMEL.pdf
http://www.infoworld.ro/telemedicina.html
http://www.tme.eu/ro/Document/7a4c5757f28713aaf7a9a13e181ec2ed/mega48A_88A_168A_328.pdf
http://andrei.clubcisco.ro/cursuri/f/f-sym/2ad/02.pdf
http://www.robofun.ro/ethernet_shield_poe
Bibliografie
POPA, Rustem, ”ELECTRONICĂ MEDICALĂ”, Editura Matrixrom, anul 2006
WILMSHURST,Tim,”DESIGNING EMBEDED SYSTEM WITH PIC MICROCONTROLLERS.PRINCIPLES AND APPLICATIONS”, Editura ELSEVIER, anul 2007
http://webbut.unitbv.ro/Carti%20on-line/BSM/BSM/capitol4.pdf
http://www12.tuiasi.ro/users/103/Rotariu_rezumat.pdf
http://www12.tuiasi.ro/users/103/2012-Lupu_Robert_Rezumat_Teza_doctorat.pdf
http://andrei.clubcisco.ro/cursuri/2ad/Curs_AD_Electronica_aplicata.pdf
http://www.robotics.ucv.ro/flexform/aplicatii/m1/Gugu%20Ileana%20-%20Sisteme%20mecatronice%20si%20robotice/
http://cursuri.flexform.ro/courses/L2/document/ClujNapoca/grupa4/Cristea_Maria/site/istoria_micr.html
http://www.sisinternational.ro/produs/62/Microcontrolere/
file:///C:/Users/Diana/Downloads/ATMEL.pdf
http://www.infoworld.ro/telemedicina.html
http://www.tme.eu/ro/Document/7a4c5757f28713aaf7a9a13e181ec2ed/mega48A_88A_168A_328.pdf
http://andrei.clubcisco.ro/cursuri/f/f-sym/2ad/02.pdf
http://www.robofun.ro/ethernet_shield_poe
Copyright Notice
© Licențiada.org respectă drepturile de proprietate intelectuală și așteaptă ca toți utilizatorii să facă același lucru. Dacă consideri că un conținut de pe site încalcă drepturile tale de autor, te rugăm să trimiți o notificare DMCA.
Acest articol: Sistem de Monitorizare Biomedical Conectat Wireless la Pc (ID: 163514)
Dacă considerați că acest conținut vă încalcă drepturile de autor, vă rugăm să depuneți o cerere pe pagina noastră Copyright Takedown.
