CONȚINUTUL proiectului de diplomă/lucrării de disertație Piese scrise Piese desenate Anexe LOCUL DOCUMENTĂRII: ………………………………………………… CONDUCĂTOR… [311255]

[anonimizat]/

LUCRĂRII de DISERTAȚIE

ENUNȚUL TEMEI:

………………………………………………………..

CONȚINUTUL proiectului de diplomă/lucrării de disertație

Piese scrise

Piese desenate

Anexe

LOCUL DOCUMENTĂRII: …………………………………………………

CONDUCĂTOR ȘTIINȚIFIC: ………………………………………………

Data emiterii temei: ………………………………………………

Termen de predare: ……………………………………………….

[anonimizat],

([anonimizat], Prenume și NUME) (Prenume și NUME)

(semnătura) (semnătura)

Declarație-angajament: Deoarece acest proiect de diplomă/lucrare de disertație nu ar fi putut fi finalizat(ă) fără ajutorul membrilor departamentului ……………………….… și a [anonimizat].

Data: ………… Semnătura

Declarație: Subsemnatul …………………….……………… declar că am întocmit prezentul proiect de diplomă/[anonimizat], sub îndrumarea conducătorului științific și pe baza bibliografiei indicate de acesta.

Data: ………… Semnătura

Cuprins

Dispozitiv prototip de monitorizare și antrenament

Capitolul I

[anonimizat], sedentare sau care suferă de obezitate. [anonimizat].

[anonimizat], iar numărul persoanelor active care muncesc și produc venituri in sistemul public scade. [anonimizat] o creștere a speranței de viață în rândul persoanelor in vârstă. [anonimizat], [anonimizat], să genereze în viitorul apropiat o [anonimizat] o [anonimizat] a acestei țări.

Obezitatea reprezintă o provocare a [anonimizat] o rată a obezității de 21,3% (vârste cuprinse intre 18 – 79), cât și in străinătate.

[anonimizat], [anonimizat]. Se urmărește diminuarea costurilor cât și a persoanelor active care sunt implicate in procesul de monitorizare a pacienților. [anonimizat] a-[anonimizat]. [anonimizat], care pot fi purtați oferă o [anonimizat], [anonimizat], [anonimizat]. [anonimizat] a realiza un program de exercițiu fizic care este necesar persoanelor in vârstă sau cele sedentare.

[anonimizat] o situație de urgență și o alertează pentru a se putea intervenii in timp util. In acest fel se elimină situațiile in care persoana cu risc nu a mai fost in stare să ceară ajutor, iar intervenția s-a făcut prea târziu pentru a mai ajuta pacientul.

Se va realiza un dispozitiv, cu două programe: un program de monitorizare și un program de antrenament.

Primul program monitorizează pulsul și mișcarea pacientului, in vederea alertării sonore. Dacă nu se menține un ritm cardiac normal sau in cazul unei căzături, un semnal sonor va face simțită o situație de urgență.

Programul de antrenament presupune parcurgerea unui număr de pași, pe parcursul unei zile, stabilite de medic și beneficiază de motivație sonoră in cazul staționării sau nefinalizării programului.

Lucrarea este destinată persoanelor cu risc, inactive, sedentare. In această categorie se incadrează persoanele trecute de 65 de ani, persoane care trebuie supravegheate datorită anumitor boli, afecțiuni legate de imobilitate, persoane care prezintă risc crescut de infract miocardic sau accident vascular, persoane care au recomandarea medicului de a face mișcare zilnic.

1.2 Scopuri și obiectivele urmărite

Scopul urmărit:

Imbogățirea serviciilor medicale prin implementarea unui sistem care alertează in timp util o urgență precum și reabilitarea sănătății.

Obiectivele urmărite:

Realizarea unui dispozitiv compact, eficient și ușor de utilizat.

Aparat accesibil ca preț.

Monitorizarea activității persoanelor cu risc la domiciliu.

Asistarea pacienților să prevină atingerea unor valori periculoase pentru puls.

Inregistrarea datelor pentru a fi verificate de un medic.

Detectarea cazurilor de urgență și alertarea acestora.

Asistarea și motivarea persoanelor inactive spre reabilitare.

1.3 Stadiul actual privind dispozitivele de monitorizare si antrenament.

In continuare este prezentat un dispozitiv din comerț destinat persoanelor in vârstă, cu funcția de dectecție a unei căzături și apelare la urgență. LifeCall oferă o unitate de bază și un pandantiv mic, impermeabil, cu tehnologie de detectare a căderii. Acest pandantiv notifică unitatea de bază, care se conectează la centrul de monitorizare, în caz de urgență. Deși acest pandantiv este activat pentru a detecta căderile, se poate de asemenea apăsa butonul mic din centrul dispozitivului pentru a trimite semnalul de urgență.

Pandantivul de detectare a căderii are senzori interni care monitorizează mișcările și detectează căderi. În timp ce niciun senzor nu este 100% corect, LifeCall a avut o rată de detecție de 75% în timpul testării. Pandantivul trimite o alertă la stația de bază atunci când a survenit o cădere atâta timp cât se află în raza de acțiune.

Figura 1. Unitate portabilă LifeCall.

Urmează sa fie prezentat un dispozitiv de măsurare a pașilor din comerț. Un pedometru este un dispozitiv, de obicei portabil și electronic sau electromecanic, care contorizează fiecare pas pe care îl face o persoană prin detectarea mișcării cu ajutorul unui accelerometru.

Acest pedometru folosește tehnologia inteligentă a senzorilor Omron 2D, cu axă dublă pentru a urmării pașii, indiferent dacă este in buzunar, prins de curea sau in geantă.

Figura 2. Pedometru Omron.

Aceste dispozitive și multe altele sunt disponibile pe piață, iar funcțiile acestor 2 dispozitive, cât și monitorizarea pulsului vor fi inglobate intr-o singură unitate rentabilă.

Capitolul II

2.1 Inima si funcțiile ei.

Inima este organul responsabil cu pomparea sângelui în întregimea corpului. Este situată în mijlocul toracelui, ușor la stânga și înconjurat de plămâni.

Inima este compusă din patru camere: două atrii și două ventricule. Atriul drept primește sânge, care se intoarce la inimă din tot corpul. Acel sânge trece prin ventriculul drept și este pompat spre plămâni, unde se oxigenează și se intoarce la inimă prin atriul stâng. Sângele ajunge in ventriculul stâng, de unde este pompat din nou, pentru a fi distribuit in tot corpul prin artere.

Figura 3. Curgerea sângelui.

Activitatea electrică a inimii se bazează pe depolarizarea și re-polarizarea celulelor miocardice. Impulsul electric pornește în nodul sinuatrial, trece prin atrii, pentru a ajunge la nodul atrioventricular și generează contracția atriului. După care, curentul trece prin His Bundle (o colecție de celule musculare cardiace specializate în conducția electrică), ajunge la ventriculi generând contracții ventriculare. În cele din urmă, curentul ajunge la fibrele Purkinje și are loc re-polarizarea țesutului inimii. Figura 4 arată camerele inimii și țesuturile asociate activității electrice a inimii.

Figura 4. Sistemul electric cardiac

Aceasta este o listă a evenimentelor care se petrec în inimă la fiecare bătăie a inimii. Figura 5 prezintă comportamentul inimii și o parte a semnalului generat cunoscut și sub numele de complex QRS:

Atriul începe să se depolarizeze.

Atriul se depolarizează.

Ventriculii încep să se depolarizeze la vârf. Atriul se repolarizează.

Ventriculi se depolarizează.

Ventriculi încep să se repolarizeze la vârf.

Ventriculi se repolarizează

Figura 5. Activitatea electrică a miocardului.

2.2 Aritmiile

Ritmul cardiac este viteza bătăii inimii măsurată prin numărul de contracții ale inimii pe minut (bpm). Ritmul cardiac poate varia în funcție de nevoile fizice ale corpului. Ritmul cardiac al unui adult in repaus variază de la 60-100 bpm. Tahicardia este ritm rapid al inimii, definit ca fiind peste 100 bpm în repaus. Bradicardia este un ritm lent al inimii, definit ca fiind sub 60 bpm în repaus. În timpul somnului, un ritm lent al inimii de aproximativ 40-50 bpm este obișnuit și este considerat normal. Când inima nu bate într-un tipar obișnuit, această afecțiune se numește aritmie. Aceste anomalii ale ritmului cardiac uneori indică boli de inimă.

Tahicardia, numită și tahiaritmie, este o frecvență cardiacă care depășește rata normală de repaus. În general, o frecvență cardiacă de repaus de peste 100 de bătăi pe minut este acceptată ca tahicardie la adulți. Ratele cardiace mai mari decât rata de repaus pot fi normale (in cazul exercițiilor fizice) sau anormale (probleme electrice ale inimii). Atunci când inima bate excesiv sau rapid, ea pompează mai puțin eficient și asigură un flux mai redus de sânge către restul corpului, incluzând inima în sine. Frecvența cardiacă crescută determină, de asemenea, creșterea efortului de muncă și cererea de oxigen de către inimă, ceea ce poate conduce la ischemie.

O electrocardiogramă (ECG) este utilizată pentru a clasifica tipul de tahicardie. Acestea pot fi clasificate în complex îngust și larg pe baza complexului QRS. Ordinea prezentată este de la cea mai comună la cea mai puțin comună:

Complex îngust

Tahicardia sinusală, care provine de la nodul sino-atrial (SA), în apropierea bazei venei cavă superioare

Fibrilație atrială

Flutterul atrial

Tahicardia AV nodală

Tahicardia atrială

Tahicardie atrială multifocală

Tahicardia joncțială

Complex larg

Tahicardie ventriculară, orice tahicardie care iși are originea in ventricule

Orice tahicardie de complex îngust combinată cu o problemă la sistemul electric al inimii.

Tahicardie de complex îngust, cu o cale de conducere auxiliară, adesea denumită "tahicardie supraventriculară cu pre-excitație" (de exemplu sindromul Wolff-Parkinson-White)

Tahicardie mediată de pacemaker sau stimulator cardiac

Tahicardiile pot fi clasificate fie ca tahicardii complexe înguste (tahicardii supraventriculare), fie ca tahicardii complexe largi. Ingust și larg se referă la lățimea complexului QRS de pe ECG. Tahicardiile complexe inguste tind să aibă originea în atriu, în timp ce tahicardiile complexe largi tind să aibă originea în ventricule. Tahicardiile mai pot fi clasificate ca fiind regulate sau iregulate.

Fibrilația atrială este una dintre cele mai frecvente aritmii cardiace. În general, este un ritm iregulat și îngust. Cu toate acestea, acesta poate prezenta complexe QRS extinse pe ECG dacă este prezent un bloccaj intr-o ramură de legături electrice. La frecvență mare, complexul QRS poate deveni, de asemenea, larg datorită fenomenului Ashman. Poate fi dificil de determinat regularitatea ritmului atunci când rata depășește 150 de batai pe minut. În funcție de starea de sănătate a pacientului și de alte variabile, cum ar fi medicamentele administrate pentru controlul ritmului, fibrilația atrială poate provoca un ritm al inimii de la 50 la 250 bătăi pe minut. Cu toate acestea, fibrilația atrială inițială are tendința de a avea un ritm cardiac între 100 și 150 de bătăi pe minut.

Figura 6. Fibrilație atrială (ECG)

Tahicardia sinusala este o condiție in care ritmul sinusal se accelereaza peste limita superioara a normalului (90-100 batai/minut pentru un adult). Această afecțiune iși are originea in nodul sinusal, care este o mica aglomerare de celule, situate in atriul drept al inimii , care are rolul de a genera impulsuri electrice.

Tahicardia ventriculară este o aritmie cardiacă care poate pune viața in pericol, ea provine din ventricule. Este de obicei o tahicardie obișnuită, complex largă, cu un ritm cardiac între 120 și 250 de bătăi pe minut. Amândouă dintre aceste ritmuri durează în mod normal numai câteva secunde până la câteva minute (tahicardie paroxistică), dar dacă persistă, este extrem de periculoasă, adesea conducând la fibrilație ventriculară.

Figura 7. Tahicardie ventriculară (ECG)

Bradicardia este o afecțiune în care un individ are un ritm cardiac lent, definit în mod obișnuit ca o frecvență cardiacă de până la 60 de bătăi pe minut la adulți. Bradicardia, de obicei, nu produce simptome până când rata nu scade sub 50 de bătăi pe minut. Când este simptomatic, poate provoca oboseală, slăbiciune, amețeli, transpirații și la un ritm cardiac foarte scăzut, poate provoca leșin. În timpul somnului, un ritm lent al inimii cu un ritm cardiac de aproximativ 40-50 de bătăi pe minut este comun și este considerat normal. Atleții foarte instruiți pot avea, de asemenea, sindromul inimii atletice, un ritm al inimii mic, care apare ca o adaptare sportivă și ajută la prevenirea tahicardiei în timpul antrenamentului. Termenul bradicardie relativă este folosit pentru a explica o frecvență cardiacă care, deși nu este de fapt sub 60 BPM, este încă considerată prea lentă pentru starea actuală a pacientului.

2.3 Boli cardiovasculare

Bolile cardiovasculare sunt principala cauză a decesului la nivel global. Acest lucru este valabil în toate zonele lumii, cu excepția Africii. Împreună, în 2015 au rezultat 17,9 milioane de decese (32,1%), în creștere față de 12,3 milioane (25,8%) în 1990. Decesele, la o anumită vârstă, datorită bolilor cardiovasculare sunt mai frecvente și au crescut în majoritatea țărilor în curs de dezvoltare. Boala arterială coronariană și accidentul vascular cerebral reprezintă 80% din decesele provocate de bolile cardiovasculare la bărbați și 75% din decese la femei. Majoritatea bolilor cardiovasculare afectează adulții mai în vârstă.

Arteroscleroza este o afecțiune care se dezvoltă atunci când se formează o placă pe pereții arterelor, ceea ce face ca sângele să curgă mai greu. Atunci când se formează un cheag de sânge, acesta oprește fluxul de sânge, care provoacă infarct miocardic sau accident vascular cerebral. Fiecare tip de boală de inimă derivă din aceste condiții. În prezent, medicii prevăd vulnerabilitatea pacienților la bolile de inimă cu diferite tipuri de simptome. Printre aceste simptome ale bolilor cardiace, un medic de obicei ia în considerare nivelurile de colesterol ale pacienților, tensiunea arterială, nivelurile de glucoză din sânge și greutatea. O altă practică pe care o fac medicii pentru a măsura funcția inimii unui pacient este măsurarea frecvenței pulsului sau a frecvenței cardiace.

Placa sau depozitul este alcătuit din grăsimi, colesterol, calciu și alte substanțe găsite în sânge. În timp, placa se întărește și îngustă arterele. Acest lucru limitează fluxul de sânge bogat în oxigen la organe și alte părți ale corpului.

Figura 2.3.1 Diferența dintre o arteră normală și una afectată

In figura 2.3.1 la punctul A se observă o arteră normală cu flux sanguin normal. Imaginea inserată in dreapta reprezintă o secțiune transversală a unei artere normale. In dreptul punctului B se observă o arteră cu acumulare de plăcă, iar imaginea inserat in dreapta reprezintă o secțiune transversală a unei artere cu acumulare de placă.

Efectele și complicațiile bolii (angina pectorală, infarctul miocardic, accidentul cerebral, cardiopatia ischemică) asupra creierului, inimii, extremităților, și a altor organe constituie cauza majoră a morbidității și mortalității în țările vestice – 1/3 din decesele la persoane cu vârsta cuprinsă între 35 și 65 de ani.

Placa creată este alcătuită din 3 regiuni distincte:

ateromul – o acumulare nodulară a unui material gălbui, ușor, situat în centrul plăcilor mari și alcătuit din macrofage;

cristale de colesterol LDL situate adiacent ateromului;

calcifierea exteriorului unor leziuni mai vechi sau mai avansate.

Cel mai des plăcile ușoare se rup, cauzând formarea unui tromb, care va încetini sau va opri fluxul sangvin, ducând la moartea țesutului alimentat de artere în aproximativ 5 minute (infarct). Unul din cele mai des întâlnite exemple este tromboză coronară a arterei coronare (infarct miocardic), sau, un scenariu mai groaznic, este acela in care o arteră ce ajunge la creier este blocată și rezultă un accident cerebral.

Capitolul III

3.1 Arduino

Massimo Banzi este cofondatorul italian al proiectului de electronică pe care la numit Arduino în onoarea localului Bar di Re Arduino din orașul pitoresc Ivrea, Italia. Arduino este o placă cu microcontroler, cu costuri reduse, care permite chiar unui începător să facă lucruri uimitoare. Arduino se poate conecta la toate tipurile de senzori, lumini, motoare și alte dispozitive și utilizează un software ușor de învățat, pentru a programa comportamentul plăcii.

Lansat în 2005 ca un instrument de invățare pentru studenții lui Banzi de la Institutul de Design al Interacțiunii Ivrea (IDII), Arduino a dat naștere unei revoluții internaționale în domeniul electronicii. Toate schemele hardware și codul sursă sunt disponibile gratuit sub licențe publice. Ca rezultat, Arduino a devenit cea mai influentă mișcare hardware-deschisă a vremii. Aceasta placă este acum echipamentul de debut pentru artiști, pasionați, studenți și oricine are un vis legat de gadgeturi. Peste 250 000 de placi arduino au fost vandute in toata lumea și asta nu include clonele.

Figura 3.1.1. Arduino UNO SMD R3

Microcontrolerele sunt renumite pentru a fi greu de programat. Scopul plăcii Arduino este de a crea o modalitate accesibilă pentru dezvoltatorii de software pentru a intra în lumea programării microcontrolerului. Arduino este o interfață microcontroler construită în jurul unui procesor Atmel ATmega, împreună cu un limbaj și un mediu de programare pentru crearea logicii pe microcontroler.

Arduino este open source (Pentru care codul sursă original este disponibil în mod liber și poate fi redistribuit și modificat), atât în ​​specificațiile sale software și hardware, astfel încât pasionații să poată asambla manual cele mai simple module Arduino. Mai multe module sofisticate pre-asamblate Arduino pot fi achiziționate și sunt disponibile la prețuri modeste. Hardware-ul vine în mai multe specificații de format, de la un dispozitiv mic portabil, la module mai mari. Modul principal de conectare a computerului la Arduino este prin USB, Bluetooth, serial și ethernet.

Succesul lui Arduino se datorează existenței in prealabil a doua limbaje de programare Processing și Wiring. Aceste proiecte au oferit lui Arduino unul dintre punctele sale forte esențiale: mediul de programare facil. Cu Arduino, chiar și cei fără experiență electronică anterioară au obținut acces la o lume a hardware-ului impenetrabilă anterior. Acum, începătorii nu trebuie să învețe prea mult înainte de a putea construi un prototip care să funcționeze. Este o mișcare puternică într-un moment în care unele dintre cele mai populare gadget-uri funcționează ca și "cutii negre" care sunt închise și protejate prin brevete.

Software

Platforma de programare se bazează pe Wiring language. IDE( integrated development environment) se bazează pe Processing, care este o limbă bine cunoscută printre designeri. Spre deosebire de cele mai multe interfețe de microcontroler, Arduino este cross-platform, adică acesta poate fi rulat pe Windows, Linux și Macintosh OS X.

Microcontrolerele sunt în mod obișnuit programate folosind un dialect de caracteristici din limbile de programare C și C ++.

Mediul de dezvoltare integrat Arduino – sau Arduino Software (IDE) – conține un editor de text pentru scrierea de coduri, o zonă de mesaje, o consolă de text, o bară de instrumente cu butoane pentru funcții comune și o serie de meniuri. Se conectează la hardware-ul Arduino pentru a încărca programe și pentru a comunica cu el.

Figura 3.1.2. Captură de ecran a IDE-ului Arduino care arată

programul simplu de începători Blink

Programele scrise folosind software-ul Arduino (IDE) se numesc schițe. Aceste schițe sunt scrise în editorul de text și sunt salvate cu extensie .ino. Editorul are ca și caracteristici tăierea / lipirea și căutarea / înlocuirea textului. Zona mesajului oferă feedback în timp ce salvează / exportează și afișează, de asemenea, erori. Consola afișează textul de ieșire de către Software-ul Arduino (IDE), inclusiv mesaje de eroare complete și alte informații. Colțul din dreapta jos al ferestrei afișează placa folosită și portul serial configurat. Butoanele barei de instrumente vă permit să verificați și să încărcați programe, să creați, să deschideți, să salvați schițe și să deschideți monitorul serial.

O schiță minimă de Arduino C / C ++, așa cum o vede și programatorul IDE Arduino, conține doar două funcții:

Setup (): Această funcție se apelează o dată când o schiță începe după pornire sau resetare. Acesta este folosit pentru a inițializa variabilele, modurile de intrare și ieșire a pinilor și alte biblioteci necesare în schiță.

Loop (): După ce a fost apelat Setup (), funcția Loop () este executată în mod repetat în programul principal. Controlează placa până când, ea este oprită sau resetată.

Mai jos vor fi prezentate comenzile de bază din interfața Arduino, in stânga se află iconițele comenzilor, iar in dreapta se află explicația fiecărei comenzi.

Comenzile suplimentare se găsesc în cele cinci meniuri: Fișier, Editare, Schiță, Instrumente, Ajutor. Meniurile sunt sensibile la context, ceea ce înseamnă că sunt disponibile numai elementele relevante pentru lucrările care se desfășoară în prezent.

Monitor serial afișează date serial trimise de pe placa Arduino. Pentru a trimite date la placă, se introduce textul și se face clic pe butonul "trimite" sau se apasă pe Enter. Se alege rata baud (setează rata de transfer de date în biți pe secundă (baud) pentru transmisia de date serial) din colțul dreapta jos, care se potrivește cu rata de transfer de la Serial.begin din schiță. Pe Windows, Mac sau Linux placa Arduino va fi resetată (reluarea procesului de execuție a schiței de la început) atunci când vă conectați la monitorul serial.

Hardware

Majoritatea plăcilor Arduino se bazează pe un microcontroler AVR (este o familie de microcontrolere dezvoltate de Atmel) de 8 biți (ATmega8, ATmega168, ATmega328, ATmega1280, ATmega2560) cu diferite cantități de memorie flash, pini și caracteristici. Plăcile sunt echipate cu seturi de pini digitali și analogici de intrare / ieșire (I / O) care pot fi interfațate cu alte circuite și diverse plăci de expansiune numite shields (scuturi). Scuturi multiple sau stivuite pot fi adresate individual printr-o magistrală de serie I²C. Majoritatea plăcilor includ un stabilizator liniar de 5 V și un oscilator de cristal de 16 MHz sau un rezonator ceramic.

Microcontrolerele Arduino sunt pre-programate cu un bootloader care simplifică încărcarea programelor în memoria flash de pe cip. Plăcile sunt încărcate cu codul de programare printr-o conexiune serială de la un computer. Plăcile actuale Arduino sunt programate prin Universal Serial Bus (USB), implementate folosind chip-uri adaptoare USB-la-serial, cum ar fi FTDI FT232. Placa Arduino expune majoritatea pinilor de I / O ai microcontrolerului pentru a fi utilizați de alte circuite, dintre care la majoritatea plăcilor șase pot produce semnale modulate cu impulsuri (PWM) și șase intrări analogice, care pot fi de asemenea utilizate ca șase pini I / O digitali.

Figura 3.1.3. Partea de hardware a plăcii Arduino UNO.

3.2 Fotopletismografia

Tehnologia fotopletismografiei a fost folosită pentru a crea senzori de puls mici, care pot fi purtați pe piele. Aceste dispozitive, construite din LED-uri (light-emitting-diode) și fotodetectoare oferă o metodă simplă, fiabilă și cu un preț accesibil de a monitoriza pulsul, noninvaziv. Ultimele descoperiri in tehnologia opticii au facilitat folosirea LED-urilor verzi de mare intensitate pentru PPG (fotopletismogramă) incurajând adoptarea acestei metode de măsurare a pulsului.

Fotopletismografia este un semnal circulator legat de pulsația volumului de sânge in țesut. Principiul care stă in spatele semnalului PPG (fotopletismogramă) este detecția optică a variației volumului de sânge in țesutul microvascular. Senzorii PPG monitorizează schimbări ale intesității luminoase care se reflectă din țesut sau transmisia prin țesut. Schimbările intensității luminoase sunt asociate cu mici variații in irigarea țesutului de către sânge și furnizează informații despre sistemul cardiovascular (pulsul). Fotopletismograma se poate asocia, ca și aspect, cu graficul tensiunii arteriale. Deoarece tensiometrul este omniprezent in spitale, este necesar să studiem mai amănunțit fotopletismografia, pentru a găsi informații legate de circulație, iar extragerea informației legate de circulație din fotopletismograma este un subiect popular și un studiu contemporan.

Metoda transmisă

Cea mai comună metodă de fotopletismografie este metoda transmisă și are următoarea definiție: țesutul este iradiat, cu ajutorul unui LED (light-emitting-diode), iar intensitatea luminii este măsurată, cu ajutorul unui fotodetector situat pe partea cealaltă a țesutului (de exemplu: un deget sau lobul urechii). Un impuls al sângelui prin dreptul LED-ului, determină creșterea atât a densității optice, cât și a lungimii de undă (acestea se datorează creșterii intravenoase a eritrocitelor și a hemoglobinei care absoarb lumina), descrește intesitatea luminii care ajunge la fotodetector. Fotopletismograma este inversată pentru a se corela pozitiv cu volumul de sânge, prin urmare, descreșterea intensității luminoase indică o creștere a volumului de sânge și vice versa.

Figura 3.2.1. Variația luminii atenuate de țesut.

Relația dintre volumul de sânge, care este distribuit printr-o rețea iregulată de vase, și fotonii emiși, care reușesc să treacă prin țesut este destul de complicată, dar poate fi explicată de legea lui Beer-Lambert: dacă un strat de sânge omogen este situat perpendicular față de o rază de lumină, atunci intensitatea luminii se descompune exponențial ca o funcție de distanță. ( % transmisie = 100 *e  −αlc , unde α este coeficientul de absoție al materialului, l este lungimea stratului, iar c este concentrația materialului absorbant). Legea Beer-Lambert ia in considerare doar factorul major, care determină atenuarea fotonilor: absorbția luminii, fără a lua in considerare dispersia, refracția și reflexia luminii. De asemenea, legea presupune doar o formă geometrică simplă de țesut omogen. Așadar, legea poate avea o bună aplicabilitate doar in situații in care avem o formă relativ uniformă și difuză a unei părți vasculare (de exemplu: lobul urechii sau vârful degetelor). In astfel de locații, fotopletismograma se raportează doar la nivel cutanat. Dacă țesutul include vase mari de sânge, optica lor devine mult mai complexă și afectează precizia puls senzorului.

Proprietățile led-ului (light-emitting diode) cum ar fi: locația, mărimea, intesitatea luminoasă, lungimea undei luminoase cât și a fotodetectorului (locație, mărimea, proprietățile fotovoltaice) pot complica relația dintre volumul de sânge și fotopletismografia.

Metoda reflectată

Fotodetectorul poate fi amplasat pe suprafața țesutului alături de emitor (LED) pentru a inregistra lumina care se reflectă. Analiza teoretică sugerează că, fotonii emiși, care ajung la fotodetector preiau forma unei banane, trecând prin țesut, dar care cu greu trec de suprafața pielii. In principiu, cu cât avem mai mult sânge in vene, cu atât mai mare va fi intensitatea luminii, ce cade pe fotodetector. Acest lucru se datorează eritrocitelor nehemolizate care acționează ca niște mici oglinzi, care reflectă lumina.

Fotopletismografia reflectată este afectată de artefacte de mișcare si presiune. Orice mișcare, cum ar fi activitate fizică, poate duce la contaminarea PPG-ului și limitarea preciziei măsurătorii, dacă nu este asigurată o priză bună și o presiune constantă.

Figura 3.2.2. Diferența intre fotopletismografia transmisă și cea reflectată.

Factori ce afectează măsurarea fotopletismogramei.

Se indentifică câțiva factori majori care contaminează semnalul: locația măsurătorii, forța de contact, artefacte de mișcări mecanice, postura pacientului, respirația și temperatura mediului inconjurător.

Locația măsurătorii: locația LED-ului și a fotodetectorului reprezintă o problemă care afectează calitatea semnalului și duce la artefacte de mișcare. In consecință s-au găsit locații potrivite pentru a optimiza performanța semnalului. Sezorii sunt adesea plasați pe degete datorită amplitudinii mari a semnalului in comparație cu alte locații. Cu toate acestea, activitățiile zilnice implică folosirea degetelor, iar acestă poziție nu este ideală. Diferite locații de prelevare a semnalului au fost explorare, cum ar fi: incheietura mâinii, lobul urechii, fruntea, cartilajul exterior al urechii cât și zona auriculară a urechii. Studii asupra 52 de pacienți sănătoși au arătat că degetele, palma și fața prezintă o putere mai mare de semnal, iar lobul urechii reprezintă locația cu cel mai bun raport dintre volumul circulant si cel stagnant.

Forța de contact a senzorului: La metoda reflectată a fotopletismografiei, semnalul PPG poate fi afectat de forța de contact dintre senzor și locația măsurătorii. Unele studii au arătat că, forma de undă a semnalului PPG coincide cu rigiditatea arterială și reactivitatea vasculară. Alte studii au arătat că, o presiune moderată asupra senzorului imbunătățește semnalul. Ideal, cel mai bun semnal PPG poate fi obținut in condiții de presiune tramurală; definită ca și diferența de presiune dintre exteriorul și interiorul vasului de sânge. Presiunea optimă este obținută când presiunea trasmurală se apropie de zero.

Procesarea semnalului: Artefactele de mișcare sunt produse de interferențe intâmplătoare de frecvență joasă. Prin urmare, cea mai mare diminuare a artefactelor este realizată de procesarea de semnal. In principiu, algoritmul de procesare a semnalului sugerează că, semnalul original PPG este alimentat doar la o anumită frecvență, iar restul este zgomot. Mai jos sunt enumerate metode de procesare a semnalului folosite pentru a reduce artefactele de mișcare.

Periodic Moving Average Filter: segmentează semnalul PPG in perioade și apoi reeșantionează fiecare perioadă. Artefactele de mișcare sunt eliminate fără a degrada semnalul.

Analiza Fourier: se aplică doar semnalelor periodice, semnalul PPG este nestaționar si cvasi-periodic. Așadar, filtrarea se aplică sub forma de ciclu cu ciclu, după o eliminare a zgomotului de frecvență mare. Rezultatele arată că artefactele induse de mișcarea pacientului au fost atenuate cu 35%.

Least Mean Square Adaptive Algorithm: elimină artefactele de mișcare prin aproximarea referinței de zgomot sintetic și adaptarea coeficienților filtrului bazate pe comanda filtrului. Algoritmele LMS sunt o clasă de filtre adaptive folosite pentru a imita filtrul dorit prin găsirea coeficienților filtrului care produc eroarea semnalului.

Kalman filter: folosit pentru un interval fix, alături de un filtru adaptiv poate reduce artefactele de mișcare, prin eliminarea zgomotului din aceeași bandă de frecvență, spre deosebire de alte filtre convenționale.

Time-Frequency Methods and Wavelet Transformation

Principle Component Analysis (PCA)

Independent Component Analysis (ICA)

Widrow’s Adaptive Noise Cancellation (ANC)

Lungimea de undă a luminii

Interacțiunea luminii cu țesutul biologic poate fi destul de complexă și implică imprăștierea, absorbția și reflexia luminii. Anderson și Parrish au examinat proprietățile optice și adâncimea de penetrare a luminii in țesutul uman; vârful nivelului de absorbție este atins in regiunea albastră a spectrului, urmată de regiunea verde-galbenă (intre 500nm și 600nm), care corespunde celulelor roșii de sânge. Undele mai scurte de lumină sunt puternic absorbite de melanină. Lumina roșie si cea aproape infraroșie trec ușor prin țesutul uman și au fost folosite ca și sursă de lumină pentru senzorii de fotopletismogramă. Sângele absoarbe mai multă lumină decât țesutul inconjurător. Prin urmare, o descreștere a cantității de sânge este detectată ca și o creștere a intensității luminii detectate. Lungimea de undă a luminii și distanța dintre sursa de lumină si fotodetector determină adâncimea penetrării luminii. Lumina verde este portrivită pentru măsurarea circulației sângelui la nivel cutanat. Lumina cu lungimea de undă cuprinsă in intervalul 500 nm – 600 nm (regiunea verde-galbenă) prezintă cea mai mare variație a aborbției cu pulsația sângelui. Lumina infraroșie este mai bună pentru măsurarea circulație sângelui in cazul țesului adânc (de exemplu: țesutul muscular). Cu toate acestea, dispozitivele care folosesc lungimea de undă, ce corespunde luminii verzi, devin tot mai populare datorită variaților mari in intensitate, observate in momentul ciclului cardiac. Deși lumina infraroșie a fost folosită pentru fotopletismografie de ceva timp, lumina verde are un grad mai mare de absorbție al oxihemoglobină si deoxihemoglobinei in comparație cu lumina infraroșie. Prin urmare, variația luminii verzi reflectate este mai mare decât a luminii infraroșii in momentul pompării sângelui prin piele, rezultând un raport semnal/zgomot mai bun pentru lumina verde.

Figura 3.2.3 Nivelul de penetrare a luminii in țesut in funcție de lungimea de undă

3.2.1 Senzorul de puls

Senzorul de puls este un modul, conectat la placa Arduino, care măsoară bătăile pe minut ale inimii folosind tehnologia fotopletismografiei. Acesta utilizează un filtru și un amplificator pentru a crește amplitudinea undei de impuls și a normaliza semnalul în jurul unui punct de referință. Atunci când senzorul de puls nu este în contact cu țesutul, semnalul analog se deplasează în jurul punctului de mijloc al tensiunii sau V/2. Când senzorul de puls este în contact strâns cu vârful degetului sau cu lobul urechii (sau cu altă parte) schimbarea luminii reflectate atunci când, prin țesut este pompat sânge, fac ca semnalul să fluctueze în jurul acelui punct de referință. În imaginea de mai jos, linia orizontală este la V / 2.

Figura 3.2.1.3 Semnalul PPG și linia de V/2

Arduino urmărește semnalul analogic de la senzorul de puls și decide că primul puls este găsit când semnalul se ridică deasupra punctului intermediar. Acesta este momentul în care țesuturile capilare sunt umplute cu un val de sânge. Apoi, când semnalul scade sub punctul de mijloc, Arduino vede asta și se pregătește să găsească următorul puls.

Funcționează la o tensiune de la 3V la 5V și are un consum de curent de aproximativ 4mA la 5V. Dimensiunile senzorului: diametru de ~16mm și o grosime de ~3mm. Cele trei găuri din jurul marginii exterioare pot fi folosite pentru a coase senzorul de un material textil.

Figura 3.2.1.1 Senzorul de puls, fața

In figura 3.2.1.1 este prezentată fața senzorului, cea care are contact direct cu țesutul. In mijloc se observă led-ul (emitorul) AM2520ZGC09, de culoare ”super verde”, cu montare inversă. Caracteristici: lungimea de undă 512 nm la 20 mA, temperatură de lucru de la -40°C la +85°C Mai jos de led este amplasat fotodetectorului (senzorul de lumină) APDS-9008. Acest senzor oferă un răspuns al spectrului de lumină apropiat cu cel al ochiului uman. Caracteristici: Alimentare de la 1.6 V la 5.5V, oferă liniaritate pentru o gamă largă de iluminare, temperatură de funcționare: -40°C la 85°C.

Figura 3.2.1.2 Senzorul de puls pe verso

In figura 3.2.1.2 este prezentat senzorul de puls pe verso, unde se observă toate componenetele hardware SMD. La baza senzorului se află 3 fire cositorite de modul, cel roșu cu indicatorul „+” pentru alimentare, negru cu indicatorul „-” pentru masă, iar mov cu indicatorul „S” pentru semnal. Senzorul de puls dispune de protecție cu diodă impotriva conectării inverse.
Convertorul de curent – tensiune este un amplificator operațional, care folosește o fotodiodă ca sursă de curent și este adesea folosit ca punct de pornire pentru dezvoltarea monitoarelor de frecvența cardiacă.

In figugura 3.2.1.3 se poate observa schema senzorului de puls, cu toate componentele electronice: o diodă, 6 rezistențe, 5 condesatorare, o diodă de sens, un led, un fotodetector și convertorul curent-tensiune.

Figura 3.2.1.3 Circuitul senzorului de puls

3.3 Accelerometrul

Accelerometrul este un dispozitiv electromecanic care măsoară forțe de accelerație. Aceste forțe pot fi statice, precum forța constantă a gravitației, sau pot fi dinamice; cauzate de mișcarea sau vibrația accelerometrului. Există multe tipuri de accelerometre dezvoltate de-a lungul timpului. Marea majoritate se bazează pe cristale piezoelectrice, dar sunt prea mari și greu de utilizat. Oamenii au incercat să dezvolte ceva mai mic, care ar putea crește aplicabilitatea accelerometrului și au inceput să studieze in domeniul microelectronicii. Ei au dezvoltat accelerometrele MEMS (Micro-electro-mechanical systems). Ele sunt foarte răspândite in mai multe domenii (Aplicații practice, industria automobilelor, dispozitive mobile, potecția disk-urilor, stabilitatea imaginii, sport, sănătate). De exemplu: fiecare dintre noi deține un smartphone, care are incorporat un accelerometru, pentru detecția direcției de verticală, mai exact pentru a intoarce ecranul odată cu rotația smartphone-ului (cu ajutorul accelerației gravitaționale g, care are intotdeauna direcția verticală). Una dintre cele mai frecvente utilizări pentru accelerometrele MEMS este în sistemele de declanșare a airbagurilor pentru automobilele moderne. De asemenea accelerometrele sunt folosite pentru detecția mișcării, de exemplu: la un joystick WII, mișcarea lui determină mișcarea jucătorului pe ecran.

Figura 3.3.1 ADXL 335.

ADXL 335 este un accelerometru pe 3 axe, care are o structură micro-fabricată dintr-un material semiconductor din silicon. Structura este suspendată ca un arc (realizată din polysilicon). Supus accelerației, arcul se deflectă, iar aceasta deflecție cauzeaza o schimbare de capacitanță, care este convertită intr-o tensiune de ieșire proporțională cu accelerația.

Figura 3.3.2 Principiul de funcționare a accelerometrului MEMS.

ADXL 335 poate măsura accelerații in marja de +/- 3g. Măsoara accelerația statică a gravitației in aplicații de rotire, precum și accelerații dinamice, rezultate din mișcare, șoc sau vibrație. Utilizatorul poate selecta banda de frecvență cu ajutorul unor condesatori Cx, Cy, Cz, care pot fi conectați la ieșirile pinilor Xout, Yout si Zout. Banda de frecvență poate fi selectată pentru a indeplinii cerințele aplicației, cu un interval de 0.5 Hz până la 1600 Hz pentru axa X și Y, iar pentru Z poate fi selectat un interval de la 0.5 Hz până la 550 Hz. Curentul consumat nu depășește 350 μA, tensiunea de alimentare poate varia intre 1.8V și 3.6 V. Rezistă la șocuri de până la 10,000 G și are o stabilitate buna din punct de vedere termic.

Figura 3.3.3 Diagrama bloc a accelerometrului ADXL 335.

Accelerometrele sunt caracterizate de următorii parametrii:

Din punct de vedere al conectării la Arduino există două feluri de accelerometre, cu conectare analogică și conectare I2C (digitală). Cel analog folosește câte un pin pentru fiecare axă, iar cel digital folosește cei 2 pini SCL și SDA.

Scala este un alt parametru important, mărimea scalei afectează precizia, spre exemplu: ADXL335 are o scală mică, 6g (măsoară de la -3g până la 3g), iar BMA180 are o scală mult mai mare, suportă de la -1g până la 16g; ADXL335 are o precizie mai mare decât BMA180.

„Bandwith” sau banda, este frecvența la care este citit senzorul de către Arduino, de exemplu: dacă frecvența de redare a unui senzor este de 50 Hz, acesta poate fi citit de 50 de ori pe secundă.

Numărul de axe care poate fi citit de către accelerometru, există cu 2 sau cu 3 axe.

3.3.1 Tehnologia MEMS

ADXL 335 este un accelerometru bazat pe tehnologia MEMS (Micro-electro-mechanical systems). MEMS este o tehnologie care in forma cea mai genaralizată poate fi definită ca și o miniatură de elemente mecanice și electro-mecanice (ex: dispozitive și structuri) cărora li se aplică tehnica microprelucrării.

In interiorul dispozitivelor MEMS se formează pe un substrat o structură spațială tridimensională, iar in interiorul acestei structuri se formează blocuri mecanice. Un sistem este apoi creat prin fabricarea circuitelor electrice care conduc acele blocuri mecanice pe același substrat. Dimensiunile fizice ale dispozitivelor MEMS pot varia de la un micron până la mai mulți milimetrii.

Figura 3.3.1.1 Dimensiunile tehnologiei MEMS in comparație cu materia biologică.

Acestă tehnologie poate inlocui senzori voluminoși și actuatore cu dispozitive echivalente microprelucrate. Avantajele tehnologiei sunt considerabile: reducerea costurilor, volumului elementelor, greutății, puterii consumate, crescând in tot acest timp performanța, volumul producției și funcționalitatea. Elementele MEMS cele mai notabile sunt microsenzori și microactuatoare; clasificate ca și ”traductoare”, dispozitive ce convertesc energia dintr-o formă in alta. In cazul microsenzorilor, dispozitivul convertește un semnal mecanic măsurat intr-un semnal electric.

Figura 3.3.1.2 Componente ale tehnologiei MEMS

Inițial tehnologia MEMS se baza doar pe silicon, folosind procese pecum microprelucrarea si microprelucrarea suprafeței . Figura X reprezintă o imagine SEM ( Scanning electron microscope) a suprafeței microprelucrată a unui dispozitiv MEMS bazat pe polysilicon, un motor electrostatic, care conține 12 electrozi ai statorului și un stator care se invârte in jurul pivotului. Treptat și alte materiale au fost adaptate pentru tehnologia MEMS, cum ar fi: sticlă, ceramică și in special polimeri care au o bună aplicație in domeniul biomedical, datorită bio-compatibilității, costuri mici și realizarea rapidă a prototipurilor. Alte procedee utilizate pentru fabricarea dispozitivelor MEMS sunt: gravare uscată cu plasmă, galvanizare, prelucrare cu laser, micromilling, micromolding, stereolitografie și imprimare cu jet de cerneală.

Figura 3.3.1.3 O imagine SEM a unui motor electrostatic MEMS

3.4 Buzzerul piezoelectric

Buzzerul piezoelectric este un dispozitiv electronic utilizat in mod obișnuit pentru a produce sunet. Greutatea redusă, construcția simplă și prețul redus il fac utilizabil in diverse aplicații cum ar fi: indicatorul de marșarier pentru automobil, calculatoare, sonerii, etc. Buzzerul piezoelectric se bazează pe principiul invers al electricității piezo, descoperite in 1880 de către Jacques și Pierre Curie; este fenomenul generării de energie electrică atunci când o presiune mecanică este aplicată anumitor materiale, iar viceversa este, de asemenea, adevărată. Astfel de materiale se numesc materiale piezoelectrice. Materialele piezoelectrice sunt fie disponibile în mod natural, fie sunt realizate de om. Piezoceramicul este o clasă de material creat de om, care prezintă efect piezoelectric și este utilizat pe scară largă pentru a face discul, inima buzzerului piezoelectric. Când sunt supuși unui câmp electric alternativ, se întind sau se comprimă, în concordanță cu frecvența semnalului, producând astfel sunet.

Figura 3.4.1 Piezoelectric buzzer.

Imaginea de sus reprezintă un buzzer piezoelectric foarte frecvent utilizat, care funcționează la tensiune continuă. Incapsulat într-un plastic cilindric, are o gaură pe partea superioară pentru a se propaga sunetul. Un disc metalic, care joacă un rol important în producerea sunetului poate fi văzut prin gaură.

In imaginea de mai jos este prezentată partea opusă a PCB-ului, având următoarele componente electronice necesare: un rezistor, un tranzistor și o bobină. Intrarea in buzzer este un semnal de curent continuu de joasă tensiune, totuși, pentru a produce sunet, discul piezoceramic necesită oscilații de înaltă tensiune. Combinația tranzistor și rezistor funcționează ca un circuit oscilator pentru a produce oscilații de amplitudine scăzută de la tensiunea DC. Mărimea acestor oscilații este amplificată de bobină.

Figura 3.4.2 Componentele electronice ale buzzerului piezoelectric.

Imaginea de mai jos prezintă diafragma cu formă circulară conectată la restul componentelor electronice care este sursa de producere a sunetului. Este alcătuită dintr-o placă metalică formată din alamă sau oțel inoxidabil și un disc piezoceramic (discul alb) cu o rază mai mică, conectate intre ele cu un adeziv conductiv. Placa metalică este utilizată deoarece frecvența de rezonanță a materialului piezo-ceramic este prea mare pentru a produce un sunet perceptibil de om.

Figura 3.4.3 Diafragma conectată de restul componentelor electronice ale buzzerului piezoelectric

Atunci când o tensiune continuă, mică este aplicată pinilor de intrare, aceasta este mai întâi convertită intr-un semnal oscilant folosind combinația de rezistor și tranzistor. Aceste semnale oscilante sunt amplificate folosind bobina inductantă. Atunci când, pe discul piezo-ceramic se aplică semnale alternative de tensiune înaltă, aceasta determină expansiunea mecanică și contracția în direcție radială. Acest lucru face ca placa metalica să se indoaie in direcția opusă. Când placa metalică se îndoaie și se contractă în direcție opusă, cu o anumită frecvență, produce sunete

Capitolul IV

4. 1 Sistemul propus pentru monitorizare medicală

În acest capitol este prezentat sistemul propus și realizat demonstrativ pentru monitorizarea stării de sănătate, având funcțiile: Pulssenzor, accelerometru. A fost dezvoltată o funcție suplimentară de analiză a datelor achiziționate în timp real, alertarea in caz de depășire a valorilor normale de puls, alertarea in cazul detectării unei căzături, utilizând accelerometrul, alertarea in cazul staționării sau nefinalizării programului de antrenament.

Figura 4.1.1 Structura sistemului de monitorizare medicală.

Figura 4.4.1 prezintă structura sistemului de monitorizare realizat, elementul central fiind placa cu microcontroler Atmega328. Acest sistem colectează date de la senzorii conectați, accelerația de la accelerometru și pulsul de la senzorul de puls. Redă cu ajutorul led-ului bătăile inimii și avertizează in funcție de situație cu ajutorul buzzer-ului.

Datele vor fi stocate și transmise prin USB unui Computer, pentru a fi interpretate de către cadrul medical.

Elemente Hardware folosite:

Arduino nano v3.

Accelerometru ADXL 335.

Pulssenzor.

Buzzer.

2 x intrerupătoare.

Rezistență

LED.

Elemente Software folosite:

Driver pentru comunicarea cu Arduino.

Mediul de dezvoltare integrat Arduino – sau Arduino Software (IDE).

Aplicația principală pentru microcontroler.

Secțiune pentru achiziția datelor in timp real.

Funcții pentru detectarea unor evenimente și generarea de alerte.

Secțiune de comunicare a pachetelor de date achiziționate.

4.2 Teoria de funcționare a dispozitivului

In prezenta lucrare s-a urmărit realizarea unui dispozitiv, cu funcții multiple pentru a imbunătății viața și implicit nivelul de ingrijire a pacienților. Dispozitivul dispune de două programe: unul de monitorizare și unul de antrenament.

Primul program are ca scop monitorizarea in timp real a pulsului, in vederea menținerii unei valori normale de puls, și detectarea unei căzături a pacientului. In cazul unei abateri ale pulsului de la valorile normale sau detectarea unei căzături, un avertisment sonor va semnala aceste evenimente, pentru a fi interceptate in cel mai scurt timp posibil. Totodată se va inregistra pulsul pe parcusul programului, pentru a fi studiat mai târziu de către cadrul medical.

Al doilea program, propune un exercițiu: realizarea unui anumit număr de pași, de către pacient. Pentru a motiva pacientul, in cazul unei staționări in timpul exercițiului, acesta va fi avertizat sonor pentru a-și relua activitatea, până la finalizarea exercițiului.

4.3 Realizarea lucrării practice

Pentru realizarea practică a sistemului s-a elaborat un plan de lucru, care a avut in vedere următoarele aspecte:

realizarea unei scheme electrice a circuitului

inglobarea tuturor elementelor hardware folosite intr-o unitate ergonomică

utilizare facilă

eficientizare

design și aspect plăcut

Primul pas a fost realizarea unui montaj experimental. In acest scop s-a folosit o placă de testare Wish board WBU-502L, cu dimensiunile: 125 x 160 x 31 mm, prezentată in figura de mai jos.

Figura 4.3.1 Placa de testare Wish Board WBU-502L

Pe următoarea placă de testare s-au montat toate elementele hardware folosite in această lucrare: arduino nano v3, accelerometrul ADXL 335, senzorul de puls, modul buzzer, 2 intrerupătoare și o rezistență. Montarea pe placa de test a componentelor electronice necesită o conexiune prin pini și fire de contact.

Figura 4.3.2 Fire și pini de contact

Unitatea de control a intregului circuit este platforma Arduino nano v3, o placă cu microcontroler, care permite conectarea la toate tipurile de senzori, lumini, motoare și alte dispozitive, utilizând un software ușor de programat.

Arduino Nano v3 are următoarea dimensiune 18 x 45 mm, cu o greutate de 7 g și un consum de curent de 19mA. Placa poate fi alimentat prin conexiunea USB Mini-B sau o sursa de alimentare externă regulată de 5V. ATmega328 are o memorie de 32 KB, 2 KB pentru bootloader, 2 KB de SRAM și 1 KB de EEPROM.

Figura 4.3.3 Arduino Nano v3

Fiecare dintre cei 14 pini digitali de pe Nano poate fi utilizat ca intrare sau ieșire, utilizând funcțiile pinMode (), digitalWrite () și digitalRead (). Acestea funcționează la 5 volți, iar fiecare pin poate furniza sau primi un maxim de 40 mA. În plus, unii pini au următoarele funcții specializate:

Serial: pinii 0 (RX) și 1 (TX). Folosit pentru a recepționa (RX) și transmite (TX) date seriale TTL

Întreruperi externe: pinii 2 și 3. Aceștia pot fi configurați pentru a declanșa o întrerupere.

PWM: pinii 3, 5, 6, 9, 10 și 11. Asigură ieșiri PWM pe 8 biți.

SPI: pinii 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK). Acești pini acceptă comunicarea SPI.

Există un LED încorporat conectat la pinul digital 13. Când pinul este setat HIGH, LED-ul este pornit, când pinul este setat LOW, acesta este oprit.

Nano v3 are 8 intrări analogice, fiecare furnizând 10 biți de rezoluție (adică 1024 valori diferite) și măsoară de la 0 la 5 volți. Pinii 4 (SDA) și 5 (SCL) de la intrările analogice suportă comunicarea I2C (TWI) folosind biblioteca Wire.

Figura 4.3.4 Schema pinilor de contact a plăcii Arduino nano v3.

Monitorizarea accelerației presupune folosirea unui accelerometru. Acest dispozitiv măsoară forțele de accelerație pe 3 axe (Gx, Gy, Gz). Aceste forțe pot fi statice, precum forța constantă a gravitației, sau pot fi dinamice; cauzate de mișcarea sau vibrația accelerometrului. Accelerometrele cele mai răspândite folosesc tehnologia de microfabricare MEMS (Micro-electro-mechanical systems). In interiorul dispozitivelor MEMS se formează pe un substrat o structură spațială tridimensională, iar in interiorul acestei structuri se formează blocuri mecanice. Un sistem este apoi creat prin fabricarea circuitelor electrice care conduc acele blocuri mecanice pe același substrat.

Accelerometrul are o structură micro-fabricată dintr-un material semiconductor din silicon. Structura este suspendată ca un arc (realizată din polysilicon). Supus accelerației, arcul se deflectă, iar aceasta deflecție cauzeaza o schimbare de capacitanță, care este convertită intr-o tensiune de ieșire proporțională cu accelerația.

Figura 4.3.5 Principiul de funcționare a accelerometrului MEMS.

Senzorul de accelerație folosit in prezenta lucrare este ADXL 335, care măsoara accelerații pe 3 axe. Acesta poate măsura accelerații in marja de +/- 3g. Măsoara accelerația statică a gravitației in aplicații de rotire, precum și accelerații dinamice, rezultate din mișcare, șoc sau vibrație.

Figura 4.3.6 Senzorul de accelerație, modulul ADXL 335.

In figura 4.3.6 se observa senzorul ADXL 335 pe față si pe verso. Se observă mai multe componente eletronice SMD: in mijloc este senzorul MEMS de accelerație, un demodulator, un amplificator de curent alternativ și mai multe rezistențe. Respectivul accelerometru este unul analog și folosește câte un pin pentru fiecare axă, având următoarii pini de conectare la Arduino: VCC, X_OUT, Y_OUT, Z_OUT, GND.

Pentru a măsura pulsul se va folosi un senzor de puls, dispozitiv care utilizează tehnologia fotopletismografiei. Fotopletismografia este un semnal circulator legat de pulsația volumului de sânge in țesut. Principiul care stă in spatele semnalului PPG (fotopletismogramă) este detecția optică a variației volumului de sânge in țesutul microvascular. Senzorii PPG monitorizează schimbări ale intesității luminoase care se reflectă din țesut. Schimbările intensității luminoase sunt asociate cu mici variații in irigarea țesutului de către sânge și furnizează informații despre sistemul cardiovascular (pulsul).

Figura 4.3.7 Fotopletismografia reflectată.

Pulsmetrul efectuează calcule matematice pe baza formulei Bert-Lambert pentru determinarea relației dintre volumul de sânge și fotonii emiși. Această lege are o aplicabilitate bună doar in situații in care avem o formă relativ uniformă și difuză a unei părți vasculare. Așadar fotodetectorul poate fi amplasat doar pe suprafața țesutului degetului sau lobul urechii alături de emitor (LED) pentru a inregistra lumina care se reflectă. Rata cardiacă se calculează prin contorizarea numărului de pulsații de volum pe minut (BPM). Acest idicator va trebui să se poziționeze intr-un interval acceptat de către medicul cardiolog. Figura 4.3.8 prezintă straturile prin care trec radiațiile la nivelul degetului. Deoarece rata cardiacă nu este constantă în timp, se obțin valori medii.

Figura 4.3.8 Radiațiile de lumină ce trec prin secțiunea degetului și unda PPG

Lumina propagată de led-ul senzorului de puls (emitorul) poate fi de diferite lungimi de undă. Lumina verde este portrivită pentru măsurarea circulației sângelui la nivel cutanat. Lumina cu lungimea de undă cuprinsă in intervalul 500 nm – 600 nm (regiunea verde-galbenă) prezintă cea mai mare variație a aborbției cu pulsația sângelui.

In figura 4.3.9 este prezentat senzorul de puls, prima imagine prezintă fața, care are contact cu țesutul. In centrul imaginii se află emițătorul (led-ul), iar mai jos fotodetectorul. Pe verso, avem mai multe componentele electronice SMD.

Figura 4.3.9 Senzorul de puls (față / verso)

Avertizarea sonoră este realizată cu ajutorul modulului de buzzer pasiv, acesta are nevoie de impulsuri electrice de o frecvență intre 2 KHz și 5KHz pentru a produce sunet.

Figura 4.3.10 Modul buzzer pasiv

Realizarea dispozitivului, prin conectarea tuturor componenetelor electronice intr-un singur sistem, s-a axat in jurul unui circuit electric. În primă instanță, circuitul prezentat in figura de mai jos a fost folosit pe un montaj experimental, după care s-a materializat in forma sa finală.

Figura 4.3.11 Circuit sistem de monitorizare si alertă

Placa Nano v3 este alimentată de la o baterie de 4.5 V, Zinc-carbon, Varta superlife 3RL12, 2700 mAh. Intreg circuitul a fost măsurat cu ajutorul unui multimetru, pentru a stabili consumul acestuia. Consumul de curent se stabilizează in jurul valorii 14.7 mA, in funcție de programul folosit. Așadar durata de viața a bateriei este de aproximativ 182 de ore.

Figura 4.3.12 Bateria Varta 4.5 V

Bateria este conectată la Arduino prin firele de contact și papuci, care fac conexiunea de la plusul bateriei la intrerupător și apoi la pinul VIN al plăcii nano v3, minusul bateriei este conectat la pinul GND al plăcii. Accelerometrul este conectat la 5 intrări analogice ale plăcii, respectiv A1, A2, A3, A4, A5, prin pinii accelerometrului VCC, X_OUT, Y_OUT, Z_OUT, GND. Buzzer-ul este conectat prin 3 pini: GND, I/O, VCC, la placa prin pinii digitali D5, D6, D7. Intrerupătorul ce controlează schimbarea programelor are 3 contacte, unul este conectat la pinul de 5v, următorul este conectat la pinul GND, iar contactul comun al intrerupătorului este conectat la pinul D11 printr-o rezistență.

Dacă citim valoarea unui pin digital care este lăsat liber, valoarea citită de Arduino va fluctua intre 0 și 1, datorită artefactelor care afectează citirile. De aceea se folosește o rezistență, respectiv de 220 Ohm, pentru a obține o citire constantă. Senzorul de puls are conectat pinul plus la pinul 5v al Arduino, pinul minus la pinul GND și pinul S la pinul analog A0. Led-ul este conectat la pinii D9 și D10.

Figura 4.3.13 Montaj experimental

In figura de mai sus se observă montajul experimental al dispozitivului de monitorizare si alertă, in care, componentele electronice sunt montate pe placa de testare.

Dispozitivul de monitorizare si alertă va fi amplasat pe braț sau pe gamba piciorului, sub genunchi, in interiorul unei banderole, care este folosită in activități sportive, pentru a depozita smartphone-ul. Dispozitivul va trebui incadrat la dimensiunile banderolei de 14 x 7 cm. S-a ales această baderolă datorită utilizării facile, oferă o structură dispozitivului și o menține ancorată de pacient.

Figura 4.3.14 Banderolă fitness

Pentru a avea stabilitate in interiorul banderolei, componentele electronice, au fost lipite pe două plăci de plexiglass, care au fost tăiate cu flexul. Lipitura s-a realizat cu ajutorului unui pistol de lipit, cu baton adeziv. Contactele componentelor electronice s-au lipit cu ajutorul unui pistol de lipit cu fludor.

Figura 4.3.15 Pistol de lipit cu fludor și pistol de lipit cu baton adeziv

Forma finală a dispozitivului de monitorizare si alertă este prezentată in figura de mai jos:

Figura 4.3.16 Dispozitiv de monitorizare si alertă

4.4 Programarea microcontrolerului

Implementarea codului de programare s-a realizat cu ajutorul mediului de dezvoltare integrat Arduino (IDE), care se contectează la hardware-ul Arduino pentru a comunica cu el. Comunicarea plăcii cu platforma de programare s-a realizat prin cablu Universal Serial Bus (USB), cu conectori de tip A și micro-A.

Figura 4.4.1 Adaptor USB tip A la tip Micro-A

Prima parte a programului va include inițializarea pinilor, declararea variabilelor și a bibliotecilor.

#define PROCESSING_VISUALIZER 1

#define SERIAL_PLOTTER  2

#include <EEPROM.h>

int pulsePin = 0;

float BPM=0;

volatile int Signal;

volatile int IBI = 600;

volatile boolean Pulse = false;

volatile boolean QS = false;

static int outputType = SERIAL_PLOTTER;

int addr = 0;

int blinkpin = 10;

int ledminus = 9;

const int xpin=A2;

int ypin=A3;

int zpin=A4;

int powerpin=A1;

int gnd=A5;

float threshhold=75.0;

float xval[100]={0};

float yval[100]={0};

float zval[100]={0};

float xavg;

float yavg;

float zavg;

int steps,flag=0;

int pwrbuzzerpin=7;

int gndbuzzerpin=5;

int buzzer=6;

int val=1;

int inPin=11;

In următoarea secvență este folosită funcția void setup(), funcție care este apelată doar o data, după fiecare pornire sau resetare a plăcii Arduino. S-au inițializat modurile pinilor, s-a apelat funcția de calibrare a accelerometrului, s-a setat rata de transmisie a datelor și s-a apelat funcția de citire a senzorului de puls.

void setup(){

pinMode(inPin,INPUT);

pinMode(powerpin,OUTPUT);

pinMode(gnd,OUTPUT);

digitalWrite(powerpin,HIGH);

digitalWrite(gnd,LOW);

pinMode(pwrbuzzerpin, OUTPUT);

pinMode(gndbuzzerpin, OUTPUT);

digitalWrite(pwrbuzzerpin, HIGH);

digitalWrite(gndbuzzerpin, LOW);

calibrate();

pinMode(ledminus, OUTPUT);

digitalWrite(ledminus, LOW);

pinMode(blinkpin, OUTPUT);

Serial.begin(115200);

interruptSetup();

}

Următoarea funcție este cea care controlează programele, implicit tot dispozitivul. Void loop (), crează o buclă, in care sunt scrise codurile de funcționare a dispozitivului. La inceput este creată funcția de memorare a datelor provenite de la senzorul de puls. Apoi se scrie codul de selectare intre programe și verificarea dacă s-a găsit sau nu pulsul.

void loop(){

int val = analogRead(0) / 4;

EEPROM.write(addr, val);

addr = addr + 1;

if (addr == EEPROM.length()) {

addr = 0;

}

delay(200);

if (val=digitalRead(inPin))

{

accelerometru();

if (QS == true){

QS = false;

}

}

else

{ if (QS == true)

{

QS = false;

}

fall_detection();

}

delay(20);

}

4.4.1 Realizarea codului de programare cu funcția de monitorizare a pulsului

Senzorul de puls folosește tehnologia fotopletismografiei, care este o formă de monitorizare a pulsului, non-invaziv. Pentru a ințelege codul folosit, la prelevarea pulsului, este necesară cunoașterea semnalului pulsului care va fi procesat. Semnalul pulsului inimii care reiese dintr-o fotopletismogramă este o fluctuație a tensiunii și are o formă de undă previzibilă, după cum se vede in figura 4.4.2

Figura 4.4.2 Semnalul pulsului

Scopul este acela de a găsi momente succesive de bătăi ale inimii instantanee si de a măsura timpul dintre aceste bătăi, numit Inter Beat Interval (IBI) urmând forma și modelul previzibil al semnalului PPG, se poate realiza acest lucru. Pentru calcularea corectă a bătailor pe minut este nevoie să determinăm momentul instataneu al bătăilor inimii. Momentul instantaneu al bătăilor inimii se întâmplă la un moment dat în timpul creșterii rapide ascendente a formei de undă PPG.

Codul Arduino este proiectat pentru a măsura IBI prin măsurarea timpului între momentele în care semnalul traversează 50% din amplitudinea undei în timpul creșterii rapide în sus. Valoarea lui BPM este obținută din media celor 10 IBI anteriori.

Pentru a obține o măsurătoare corectă a timpului dintre fiecare bătaie a inimii este nevoie să setăm o frecvență de achiziție a semnalului. Așa că vom seta Timer2, un oscilator al plăcii, pentru a seta o intrepuere la fiecare 2 milisecunde. Această operație este realizată in mediul de dezvoltare integrat Arduino cu următorul cod:

void interruptSetup(){  
  TCCR2A = 0x02;

TCCR2B = 0x06;

OCR2A = 0x7C;

TIMSK2 = 0x02;

sei();

}

Atunci când Arduino este pornit și funcționează cu senzorul de puls conectat la pinul analogic 0, în mod constant (la fiecare 2 ms) citește valoarea senzorului și caută bătăile inimii.

ISR(TIMER2_COMPA_vect){ 
  Signal = analogRead(pulsePin); 
  sampleCounter += 2;               
  int N = sampleCounter – lastBeatTime;

Această funcție este apelată la fiecare 2 milisecunde. Primul lucru este citirea analogică a senzorul de puls, după care creștem variabila sampleCounter. Variabila sampleCounter este folosită pentru a urmări timpul. Variabila N va ajuta ulterior la evitarea zgomotului. Apoi, urmărim valorile cele mai înalte și cele mai joase ale semnalului PPG, pentru a obține o măsurătoare cât mai precisă a amplitudinii.

if(Signal < thresh && N > (IBI/5)*3){

if (Signal < T){

T = Signal;

}  }

if(Signal > thresh && Signal > P){

P = Signal; }

Variabilele P și T rețin valorile maxime, respectiv minime. Variabila de prag este setată la 512 (mijlocul intervalului) și se schimbă in timpul rulării, urmărind punctul care se află la 50% din amplitudine.

if (N > 250) {

if ( (Signal > thresh) && (Pulse == false) && (N > ((IBI/5)*3) ){  
    Pulse = true;                      
    digitalWrite(pulsePin,HIGH);            
    IBI = sampleCounter – lastBeatTime;
    lastBeatTime = sampleCounter;

Pentru a evita zgomotul de frecvență inaltă, vom aștepta 250 de milisecunde până să căutăm primul puls. N setează limita la 240 de bătăi pe minut. Când forma semnalul crește peste valoarea de prag, iar 3/5 din ultimul IBI a trecut, avem puls, iar led-ul va lumina. Următoarea secvență de cod este folosită pentru redarea unui puls realist la inceputul rulării programului.

if(secondBeat){

secondBeat = false;

for(int i=0; i<=9; i++){

rate[i] = IBI;

}  }

if(firstBeat){                     
        firstBeat = false;

secondBeat = true;

sei():            
        return; }

Secvența de cod de mai sus, elimină primul set de IBI citite, pentru că aceste prime citiri sunt cel mai probabil afectate de zgomot.

word  runningTotal = 0;
    for(int i=0; i<=8; i++){
      rate[i] = rate[i+1]; 
      runningTotal += rate[i];      
    }
    rate[9] = IBI;                   
    runningTotal += rate[9];             
    runningTotal /= 10;             
    BPM = 60000/runningTotal;

QS = true;                        
    }  }

Se ia o variabilă mare, ruunningTotal, pentru a colecta IBI, apoi conținutul ratei [] este deplasat și adăugat la runningTotal. Cel mai vechi IBI cade din poziția 0, iar noul IBI devine pus în poziția 9. Se măsoară matricea și se calculează BPM. Pentru ca restul programului să știe că am găsit pulsul, setăm QS=true.

if (Signal < thresh && Pulse == true){  
    digitalWrite(13,LOW);         
    Pulse = false;                      
    amp = P – T;                        
    thresh = amp/2 + T;            
    P = thresh;                         
    T = thresh;
  }

Pulsul a fost declarat „true” în timpul creșterii ascendente a semnalului senzorului de puls când am găsit bătaia inimii, in secvența de mai sus, astfel încât, atunci când semnalul trece peste prag in momentul in care descrește, știm că pulsul s-a terminat. Se resetează pulsePin și booleanul Pulse. Apoi amplitudinea semnalului care tocmai a trecut este măsurată, iar pragul este actualizat cu noua valoare de 50%. P și T sunt resetate la noul prag. Algoritmul este acum pregătit să găsească următoarea bătaie a inimii.

if (N > 2500){    
    thresh = 512; 
    P = 512; 
    T = 512; 
    firstBeat = true;                 
    secondBeat = false;

lastBeatTime = sampleCounter;

}

Sevența de mai sus analizează, in cazul in care nu există puls timp de 2,5 secunde, variabilele folosite pentru a găsi bătăile inimii sunt reinițializate la valorile de pornire.

4.4.2 Realizarea codului de programare pentru detectarea căzăturii

Monitorizarea accelerației presupune folosirea unui accelerometru. Acest dispozitiv măsoară forțele de accelerație pe 3 axe (Gx, Gy, Gz). Inainte de a incepe să achiziționăm semnale ale forțelor de accelerație, este nevoie să calibrăm accelerometrul; să verificăm răspunsul senzorului cu amplitudinea și liniaritatea sistemului asupra intervalului propus de utilizare. Acest lucru se intâmplă inainte inceperii programului de detecție a căzăturii. Codul in Arduino al acestei calibrări este prezentat mai jos:

void calibrate()

{ float sum=0;

float sum1=0;

float sum2=0;

for (int i=0;i<100;i++) {

xval[i]=float(analogRead(xpin));

sum=xval[i]+sum;}

delay(100);

xavg=sum/100.0;

for (int j=0;j<100;j++)

{

xval[j]=float(analogRead(xpin));

sum1=xval[j]+sum1;

}

yavg=sum1/100.0;delay(100);

for (int i=0;i<100;i++)

{

zval[i]=float(analogRead(zpin));

sum2=zval[i]+sum2;

}

zavg=sum2/100.0;

delay(100);

Secvența de cod de mai sus realizează următorii pași spre calibrare: la inceput se declară și se ințializează cu 0 variabilele. Aceste variabile vor reține valorile citite pe fiecare axă. Se realizează o buclă de 100 de iterații pentru fiecare axă, după care se citește valoare pe axa respectivă, se memorează și se adună cele 100 de citiri. Apoi se face media aritmetică pentru a determina valoarea de referință după care va funcționa accelerometru, pe fiecare axă. Așadar, se realizează calibrarea accelerometrului.

Programul de detectare a unei căderi urmărește urmărește organigrama de funcționare prezentată in figura 4.4.3.

Figura 4.4.3 Organigrama programului de detecție a căzăturii

Primul program, cel de detectare a unei căzături, are următorul cod de programare in Arduino:

void fall_detection()

{

float totvect[50]={0};

float totave[50]={0};

float xaccl[50]={0};

float yaccl[50]={0};

float zaccl[50]={0};

int totave1=0;

int totave2=0;

int totave3=0;

int totave49=0;

for (int i=0;i<50;i++)

{

xaccl[i]=float(analogRead(xpin));

delay(1);

yaccl[i]=float(analogRead(ypin));

delay(1);

zaccl[i]=float(analogRead(zpin));

delay(1);

if(zaccl[i]>8)

{

zaccl[i]=zaccl[i]+300;

}

In prima parte a secvenței de cod de mai sus, s-au declarat toate variabilele, folosite in această schiță și s-au inițializat cu 0. Se va produce o buclă de lucru, in care se succed 50 de iterații. Se citește valoare obținută de pe fiecare axă a accelerometrului, aceste valori sunt reținute în variabile de tip float. Axa Z este reprezentativă planului vertical, această axă va fi mai importantă in detectarea unei căzături decât celelalte 2 axe. Așadar pentru a o sensibiliza, am recurs la o condiție, in care valoarea citită pe axa Z, să fie mărită dacă depășește valoare 8. Această condiție va ajuta mai târziu, pentru a depăși valoarea de prag stabilită.

totvect[i] = sqrt(((xaccl[i]-xavg)* (xaccl[i]-xavg))+ ((yaccl[i] – yavg)*(yaccl[i] – yavg)) + ((zaccl[i] – zavg)*(zaccl[i] – zavg)));

totave[i] = (totvect[i] + totvect[i-1]) / 2 ;

delay(200);

In continuare se calculează vectorul de accelerație totală în raport cu punctul de pornire, adică unde a fost apelată calibrarea cu următoarea formulă: . Urmează calcularea unei medii a ultimelor 2 valori ale vectorului, pentru a obține o valoare de mijloc.

totave1=totave[i]-totave[i-1];

totave2=totave[i-1]-totave[i-2];

totave3=totave[i-2]-totave[i-3];

totave49=totave[i-49]-totave[i-50];

if((totave49>100) && (-20<totave3<20) && (-20<totave2<20) && (-20<totave1<20)

{

analogWrite(buzzer, 250);

delay(1000);

}

else {

analogWrite(buzzer, 255); }}}

Ultima secvență de cod are ca scop condiționarea vectorului de accelerație, pentru a obține detecția căzăturii. Se caută diferența dintre ultima citire si cea dinainte, pentru a analiza dacă s-a produs o mișcare, implicit o căzătură. Următoarele diferențe care se calculează sunt pentru a elimina falsa detecție a unei căzături. Dacă pacientul rămâne nemișcat după o cădere, inseamnă ca următoarele citiri vor fi in apropierea valorii de zero. Apoi se pune o condiție, in care se activează buzzer-ul, generâund un avertisment sonor, dacă valoarea totală a vectorului atinge sau depășește pragul stabilit, iar următoarele citiri se incadrează in intervalul (-20, 20).

4.4.3 Realizarea codului de programare a detecției pașilor

In continuare, dispozitivul va realiza funcția de pedometru (Aparat care înregistrează automat numărul de pași efectuați de un pieton). Programul dezvoltat in Arduino propune realizarea unui anumit număr de pași, stabiliți de către medic. Codul este asemănător cu cel prezentat la detecția căzăturii, cu mici ajustări, care fac posbilă contorizarea pașilor.

Măsurarea forțelor necesită din nou calibrarea accelerometrului, înaintea inceperii programului de măsurare a pașilor.

void calibrate()

{

float sum=0;

float sum1=0;

float sum2=0;

for (int i=0;i<100;i++)

{

xval[i]=float(analogRead(xpin));

sum=xval[i]+sum;

}

delay(100);

xavg=sum/100.0;

for (int j=0;j<100;j++)

{

xval[j]=float(analogRead(xpin));

sum1=xval[j]+sum1;

}

yavg=sum1/100.0;delay(100);

for (int i=0;i<100;i++)

{

zval[i]=float(analogRead(zpin));

sum2=zval[i]+sum2;

}

zavg=sum2/100.0;

delay(100);

După procedura de calibrare a senzorului, incepem programul de măsurare a pașilor cu declararea și inițializarea variabilelor. Se deschide o buclă de 100 de iterații, in care se va realiza funcția de pedometru. Citim valorile de pe fiecare axă a accelerometrului (x, y, z) și reținem valorile.

void accelerometru()

{ float threshhold=73;

float totvect[100]={0};

float totave[100]={0};

float xaccl[100]={0};

float yaccl[100]={0};

float zaccl[100]={0};

int diff1=1;

int diff2=1;

int diff3=1;

int diff4=1;

for (int i=0;i<100;i++)

{

xaccl[i]=float(analogRead(xpin));

delay(1);

yaccl[i]=float(analogRead(ypin));

delay(1);

zaccl[i]=float(analogRead(zpin));

delay(1);

Se realizează vectorul de accelerație total cu formula: : , urmată de o medie a ultimelor două citiri. Apoi se afișează pe monitorul serial media. Secvența de cod ce determină finalizarea unui pas are la bază următoarea logică: Dacă vectorul total de accelerație depășește valoare de prag stabilită pentru un pas, se realizează primul pas, pentru a realiza al doilea pas, valoarea vectorului de accelerație trebuie mai intâi să fie mai mic ca și valoarea de prag, după care să o depășească.

totvect[i] = sqrt(((xaccl[i]-xavg)* (xaccl[i]-xavg))+ ((yaccl[i] – yavg)*(yaccl[i] – yavg)) + ((zaccl[i] – zavg)*(zaccl[i] – zavg)));

totave[i] = (totvect[i] + totvect[i-1]) / 2 ;

diff1=totave[i]-totave[i-1];

diff2=totave[i-1]-totave[i-2];

diff3=totave[i-2]-totave[i-3];

diff4=totave[i-3]-totave[i-4];

if (totave[i-4]>threshhold && flag==0)

{

steps=steps+1;

flag=1;

}

else if (totave[i-4] > threshhold && flag==1)

{}

if (totave[i-4] <threshhold  && flag==1)

{flag=0;}

Serial.print("steps=");

Serial.println(steps);

if((diff1<1) && (diff2<1) && (diff3<1) && (diff4<1))

{  analogWrite(buzzer, 250);

delay(40);}

else if (diff1>0)

{

analogWrite(buzzer, 255);

}

if (steps>5000){

analogWrite(buzzer, 250);

delay(500);

break;

}

if (val=digitalRead(inPin)){

}

else{

i=0;

break;

}}

delay(20); }

Funcția de motivare, avertizarea sonoră in caz de staționare, necesită analiza valorilor citite. Așadar, s-au creat 4 variabile care rețin diferența dintre media vectorului de accelerație citită acum și media citită anterior. Dacă aceaste diferențe sunt mai mici decât 1, inseamnă că, utilizatorul staționează, iar in consecință acesta va fi avertizat sonor.

După parcurgerea numărului de pași, utilizatorul va fi avertizat sonor timp de 5 secunde că programul de antrenament s-a incheiat. Ultima condiție din această secvență de cod, are legătură cu alegerea programului, dacă utilizatorul mută poziția switch-ului, această condiție sesizează această acțiune și intrerupe bucla, schimbând programul.

Similar Posts

  • Societatea Academică din România (SAR) [611078]

    Societatea Academică din România (SAR) Policy Brief #68, mai 2015 1. Introducere România are probabil cel mai slab sistem de sănătate din Uniunea Europeană (UE), fapt rele vat de numeroși și variați indicatori. Un fenomen ignorat este tendința crescândă de nemulțumire a consumatorilor de servicii medicale din țara noastră. Acest lucru a fost evidențiat în…

  • Introducere…………………………………………………………………………………….. 2 Capitolul I. Prezentarea firmei… [616981]

    1 CUPRINS Introducere…………………………………………………………………………………….. 2 Capitolul I. Prezentarea firmei Prezentarea general ă a S.C. CISEROM S.A…………………………………….. 3 Obiectul de activitate……………………………………………………………………….. 5 Capitolul II. Performan ța de ansamblu a firmei 2.1.Portofoliul de produse ………………………………………………………………..5 2.1.2. Identificarea produsului de baz ă…………………………………………….. 10 2.1.3. Pozi ția pe piață ……………………………………………………………………….11 2.1.4. Clien ții ……………………………………………………………………………………13 2.2 Perspectiva intern ă 2.2.1. Structura…

  • Selphy Cp1200 Manual Complet [629617]

    /g42/g75/g76/g71/g3/g71/g72/g3/g88/g87/g76/g79/g76/g93/g68/g85/g72/g3/g76/g80/g83/g85/g76/g80/g68/g81/g87/g262 /g53/g50/g48/g198/g49/g258 /g135/g3/g36/g86/g76/g74/g88/g85/g68/g288/g76/g16/g89/g259/g3/g70/g259/g3/g68/g288/g76/g3/g70/g76/g87/g76/g87/g3/g68/g70/g72/g86/g87/g3/g74/g75/g76/g71/g15/g3/g76/g81/g70/g79/g88/g86/g76/g89/g3/g70/g68/g83/g76/g87/g82/g79/g88/g79/g3/g5/g48/g259/g86/g88/g85/g76/g3/g71/g72/g3/g54/g76/g74/g88/g85/g68/g81/g288/g259/g5/g15/g3/g118/g81/g68/g76/g81/g87/g72/g3/g71/g72/g3/g68/g3/g73/g82/g79/g82/g86/g76/g3/g76/g80/g83/g85/g76/g80/g68/g81/g87/g68/g17 /g135/g3/g36/g70/g72/g86/g87/g3/g74/g75/g76/g71/g3/g89/g259/g3/g89/g68/g3/g68/g77/g88/g87/g68/g3/g86/g259/g3/g83/g88/g87/g72/g288/g76/g3/g88/g87/g76/g79/g76/g93/g68/g3/g76/g80/g83/g85/g76/g80/g68/g81/g87/g68/g3/g118/g81/g3/g80/g82/g71/g3/g70/g82/g85/g72/g86/g83/g88/g81/g93/g259/g87/g82/g85/g17 /g135/g3/g51/g259/g86/g87/g85/g68/g288/g76/g3/g68/g70/g72/g86/g87/g3/g74/g75/g76/g71/g3/g118/g81/g87/g85/g16/g88/g81/g3/g79/g82/g70/g3/g86/g76/g74/g88/g85/g3/g83/g72/g81/g87/g85/g88/g3/g88/g87/g76/g79/g76/g93/g68/g85/g72/g3/g88/g79/g87/g72/g85/g76/g82/g68/g85/g259/g17 2/g38/g82/g81/g294/g76/g81/g88/g87/g3/g83/g68/g70/g75/g72/g87 /g204/g81/g68/g76/g81/g87/g72/g3/g71/g72/g3/g88/g87/g76/g79/g76/g93/g68/g85/g72/g15/g3/g68/g86/g76/g74/g88/g85/g68/g288/g76/g16/g89/g259/g3/g70/g259/g3/g83/g68/g70/g75/g72/g87/g88/g79/g3/g70/g82/g81/g288/g76/g81/g72/g3/g88/g85/g80/g259/g87/g82/g68/g85/g72/g79/g72/g3/g68/g85/g87/g76/g70/g82/g79/g72/g17 /g39/g68/g70/g68/g3/g79/g76/g83/g86/g72/g250/g87/g72/g3/g70/g72/g89/g68/g15/g3/g70/g82/g81/g87/g68/g70/g87/g68/g288/g76/g3/g70/g82/g80/g72/g85/g70/g76/g68/g81/g87/g88/g79/g3/g71/g72/g3/g79/g68/g3/g70/g68/g85/g72/g3/g68/g288/g76/g3/g68/g70/g75/g76/g93/g76/g288/g76/g82/g81/g68/g87/g3/g76/g80/g83/g85/g76/g80/g68/g81/g87/g68/g17 /g401/g3/g44/g80/g83/g85/g76/g80/g68/g81/g87/g259/g3/g54/g40/g47/g51/g43/g60 /g401/g3/g36/g71/g68/g83/g87/g82/g85/g3/g71/g72/g3/g68/g79/g76/g80/g72/g81/g87/g68/g85/g72/g3/g70/g82/g80/g83/g68/g70/g87 /g38/g36/g16/g38/g51/g21/g19/g19/g3/g37 /g401/g3/g38/g68/g69/g79/g88/g3/g68/g79/g76/g80/g72/g81/g87/g68/g85/g72 /g401/g3/g38/g68/g86/g72/g87/g259/g3/g75/g107/g85/g87/g76/g72 /g3/g51/g38/g51/g16/g38/g51/g23/g19/g19 /g135/g3/g54/g88/g81/g87/g3/g76/g81/g70/g79/g88/g86/g72/g3/g250/g76/g3/g80/g68/g87/g72/g85/g76/g68/g79/g72/g3/g76/g80/g83/g85/g76/g80/g68/g87/g72/g17 /g43/g107/g85/g87/g76/g72/g3/g252/g76/g3/g70/g72/g85/g81/g72/g68/g79/g262/g3/g11/g70/g82/g80/g72/g85/g70/g76/g68/g79/g76/g93/g68/g87/g72/g3/g86/g72/g83/g68/g85/g68/g87/g12 /g204/g81/g68/g76/g81/g87/g72/g3/g71/g72/g3/g88/g87/g76/g79/g76/g93/g68/g85/g72/g15/g3/g68/g70/g75/g76/g93/g76/g288/g76/g82/g81/g68/g288/g76/g3/g88/g81/g3/g86/g72/g87/g3/g38/g68/g85/g87/g88/g250/g3/g18/g3/g43/g107/g85/g87/g76/g72/g17 /g54/g72/g87/g3/g38/g68/g85/g87/g88/g250/g3/g18/g3/g43/g107/g85/g87/g76/g72/g17 /g38/g68/g86/g72/g87/g259/g3/g71/g72/g3/g75/g107/g85/g87/g76/g72/g3/g81/g72/g70/g72/g86/g68/g85/g259 /g49/g88/g80/g72/g3/g83/g85/g82/g71/g88/g86 /g39/g76/g80/g72/g81/g86/g76/g88/g81/g72/g3 /g75/g107/g85/g87/g76/g72 /g49/g88/g80/g259/g85/g3/g71/g72/g3/g76/g80/g83/g85/g76/g80/g259/g85/g76/g3 /g83/g82/g86/g76/g69/g76/g79/g72 /g54/g72/g87/g3/g70/g68/g85/g87/g88/g250/g3/g18/g3/g75/g107/g85/g87/g76/g72/g3/g53/g51/g16/g20/g19/g27/g3/g11/g75/g107/g85/g87/g76/g72/g3/g73/g82/g87/g82/g12 /g39/g76/g80/g72/g81/g86/g76/g88/g81/g72/g3 /g70/g68/g85/g87/g72/g3/g83/g82/g250/g87/g68/g79/g259 108 /g38/g68/g86/g72/g87/g68/g3/g83/g72/g81/g87/g85/g88/g3/g75/g107/g85/g87/g76/g72/g3/g51/g38/g51/g16/g38/g51/g23/g19/g19 /g11/g76/g81/g70/g79/g88/g86/g259/g3/g70/g88/g3/g54/g40/g47/g51/g43/g60/g12/g17/g54/g72/g87/g3/g70/g68/g85/g87/g88/g250/g3/g18/g3/g75/g107/g85/g87/g76/g72/g3/g53/g51/g16/g20/g19/g27/g19/g57/g3/g11/g75/g107/g85/g87/g76/g72/g3/g73/g82/g87/g82/g12 1080 /g54/g72/g87/g3/g70/g68/g85/g87/g88/g250/g3/g18/g3/g75/g107/g85/g87/g76/g72/g3/g46/g51/g16/g22/g25/g44/g51/g3/g11/g70/g68/g85/g87/g72/g3/g83/g82/g250/g87/g68/g79/g259/g12 36 /g54/g72/g87/g3/g70/g68/g85/g87/g88/g250/g3/g18/g3/g75/g107/g85/g87/g76/g72/g3/g46/g51/g16/g20/g19/g27/g44/g49/g3/g11/g75/g107/g85/g87/g76/g72/g3/g73/g82/g87/g82/g12 108 /g54/g72/g87/g3/g38/g68/g85/g87/g88/g250/g3/g18/g3/g43/g107/g85/g87/g76/g72/g3/g46/g38/g16/g22/g25/g44/g51 /g39/g76/g80/g72/g81/g86/g76/g88/g81/g72/g3 /g70/g68/g85/g71 36 /g38/g68/g86/g72/g87/g259/g3/g75/g107/g85/g87/g76/g72 /g51/g38/g38/g16/g38/g51/g23/g19/g19/g13 /g54/g72/g87/g3/g70/g68/g85/g87/g88/g250/g3/g18/g3/g72/g87/g76/g70/g75/g72/g87/g72/g3/g46/g38/g16/g20/g27/g44/g41/g3/g11/g72/g87/g76/g70/g75/g72/g87/g72/g3/g70/g107/g87/g3/g70/g82/g68/g79/g68/g12 18 /g54/g72/g87/g3/g70/g68/g85/g87/g88/g250/g3/g18/g3/g72/g87/g76/g70/g75/g72/g87/g72/g3/g46/g38/g16/g20/g27/g44/g47/g3/g11/g27/g3/g72/g87/g76/g70/g75/g72/g87/g72/g3/g83/g72/g3/g83/g68/g74/g76/g81/g259/g12 18 /g54/g72/g87/g3/g70/g68/g85/g87/g88/g250/g3/g18/g3/g72/g87/g76/g70/g75/g72/g87/g72/g3/g46/g38/g16/g20/g27/g44/g54/g3/g11/g72/g87/g76/g70/g75/g72/g87/g72/g3/g83/g259/g87/g85/g68/g87/g72/g12 18 /g13/g3/g3/g36/g70/g75/g76/g93/g76/g288/g76/g82/g81/g68/g288/g76/g3/g70/g88/g3/g88/g81/g3/g86/g72/g87/g3/g38/g68/g85/g87/g88/g250/g3/g18/g3/g43/g107/g85/g87/g76/g72/g17 /g39/g76/g86/g83/g82/g81/g76/g69/g76/g79/g76/g87/g68/g87/g72/g68/g3/g68/g70/g70/g72/g86/g82/g85/g76/g76/g79/g82/g85/g3/g71/g72/g83/g76/g81/g71/g72/g3/g71/g72/g3/g85/g72/g74/g76/g88/g81/g72/g17 3Înainte de utilizare • /g44/g80/g68/g74/g76/g81/g76/g79/g72/g3/g76/g80/g83/g85/g76/g80/g68/g87/g72/g3/g70/g88/g3/g68/g70/g72/g68/g86/g87/g259/g3/g76/g80/g83/g85/g76/g80/g68/g81/g87/g259/g3/g87/g85/g72/g69/g88/g76/g72/g3/g73/g82/g79/g82/g86/g76/g87/g72/g3/g118/g81/g3/g86/g70/g82/g83/g3/g83/g72/g85/g86/g82/g81/g68/g79/g17/g3/g44/g80/g83/g85/g76/g80/g68/g85/g72/g68/g3/g81/g72/g68/g88/g87/g82/g85/g76/g93/g68/g87/g259/g3/g68/g3 /g80/g68/g87/g72/g85/g76/g68/g79/g72/g79/g82/g85/g3/g83/g85/g82/g87/g72/g77/g68/g87/g72/g3/g71/g72/g3/g71/g85/g72/g83/g87/g88/g85/g76/g3/g71/g72/g3/g68/g88/g87/g82/g85/g3/g72/g86/g87/g72/g3/g76/g81/g87/g72/g85/g93/g76/g86/g259/g17…

  • Chișinău 2020 MINISTERUL EDUCAȚIEI, CULTURII ȘI CERCETĂRII AL REPUBLICII MOLDOVA [619407]

    Chișinău 2020 MINISTERUL EDUCAȚIEI, CULTURII ȘI CERCETĂRII AL REPUBLICII MOLDOVA Univеrsitаtеа libеră Intеrnаțiоnаlă din Mоldоvа Fасultаtеа Rеlаții Intеrnаțiоnаlе, Științе Роlitiсе și Jurnаlism Саtеdrа Rеlаții Intеrnаțiоnаlе, Științе Роlitiсе și Jurnаlism TEZĂ DE LICENȚĂ TERORISMUL ÎN MASS MEDIA: IMPACTUL ATENTATELOR TERORISTE ASUPRA SOCIETĂȚII Autor: Victoria ANDRIȚCHI Соnducător științific: Viorica ȚÎCU, lect. univ. Аdmisă sрrе susținеrе „___” ________…

  • 1Curs Drept Canonic (Anul IV Semestrul I) [614207]

    [1]Curs Drept Canonic (Anul IV Semestrul I) PUTEREA SFIN ȚITOARE Rânduieli canonice privind Sfântul Botez Botezul este taina intrării în Biserică, ștergerea păcatului strămoșesc, moartea și Învierea lui Hristos, primirea h arului în această lume. Săvârșitorul este episcopul, preotul și diaconul ală turi. Can. 44 Nichifor Mărt . prevede ca în caz de excep ție…