17
Roko Krpetić 0036428162 Kome je tekst namijenjen Potrebna predznanja za razumijevanje Osnovne informacije koje će se dobiti I slične „crtice“… SEMINARSKI RAD - SPVP 9. lipanj 2010

Roko Krpetić SEMINARSKI RAD - SPVP 0036428162studenti.zesoi.fer.hr/pametne-kuce/Studenti/2010/rkrpetic...Ovaj seminarski rad je izrañen u okviru predmeta „Sustavi za praćenje

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Roko Krpetić SEMINARSKI RAD - SPVP 0036428162studenti.zesoi.fer.hr/pametne-kuce/Studenti/2010/rkrpetic...Ovaj seminarski rad je izrañen u okviru predmeta „Sustavi za praćenje

Roko Krpetić 0036428162

Kome je tekst namijenjen

Potrebna predznanja za razumijevanje

Osnovne informacije koje će se dobiti

I slične „crtice“…

SEMINARSKI RAD - SPVP

9. lipanj 2010

Page 2: Roko Krpetić SEMINARSKI RAD - SPVP 0036428162studenti.zesoi.fer.hr/pametne-kuce/Studenti/2010/rkrpetic...Ovaj seminarski rad je izrañen u okviru predmeta „Sustavi za praćenje

Sustav za mjerenje pokretljivosti

2

Sažetak

U radu je opisan nosivi sustav za detekciju pokretljivosti kod starijih osoba. Mjerenjem pokretljivosti i detekcijom nezgoda povećava se sloboda starijih osoba u svakodnevnim aktivnostima i smanjuje stres kako starijim osobama tako i onima koji se za njih brinu. Sustav se sastoji od akcelerometra, mikrokontrolera, sklopovlja za bežičnu vezu i osobnog računala koje izvodi windows aplikaciju.

Sustav mjeri razinu pokretljivosti koja je važan parametar zdravstvenog stanja starijih osoba i o ovisnosti o tom parametru detektira razdoblja aktivnosti, neaktivnosti i dužeg stanja mirovanja (koje se namještanjem odgovarajućih parametara može iskoristiti za detekciju spavanja ili nezgode). Sustav takoñer grafički prikazuje razinu pokretljivosti u realnom vremenu i za prethodno razdoblje.

Prednosti sustava su povećanje kvalitete života starijih osoba. Nedostaci su ograničenost rada na području bežične mreže i korištenje samo jednog senzora. Implementacija više senzora na postojeću platformu dala bi potpuniju sliku o zdravstvenom stanju starijih osoba koja bi se mogla iskoristiti za predviñanje više rizičnih situacija i za potpuniju dijagnozu zdravstvenog stanja.

Sadržaj

1. UVOD ............................................................................................................ 3

2. MJERENJE POKRETLJIVOSTI ............................................................................. 4

3. RAZVIJENI SUSTAV ......................................................................................... 5

3.1. Funkcije sustava ...................................................................................... 5

3.2. Senzorski čvor ......................................................................................... 6

3.2.1. Akcelerometar ................................................................................... 6

3.2.2. Arduino ............................................................................................ 6

3.2.3. Programska podrška za mikroprocesor ................................................. 7

3.2.4. Upute za spajanje .............................................................................. 8

3.3. Windows aplikacija ................................................................................... 9

3.3.1. Algoritam za detekciju pokretljivosti .................................................... 9

3.3.2. Grafički prikaz pokretljivosti ...............................................................12

4. ZAKLJUČAK ...................................................................................................15

5. LITERATURA..................................................................................................16

6. POJMOVNIK ..................................................................................................17

Ovaj seminarski rad je izrañen u okviru predmeta „Sustavi za praćenje i voñenje procesa“ na Zavodu za elektroničke sustave i obradbu informacija, Fakulteta elektrotehnike i računarstva, Sveučilišta u Zagrebu. Sadržaj ovog rada može se slobodno koristiti, umnožavati i distribuirati djelomično ili u cijelosti, uz uvjet da je uvijek naveden izvor dokumenta i autor, te da se time ne ostvaruje materijalna korist, a rezultirajuće djelo daje na korištenje pod istim ili sličnim ovakvim uvjetima.

Page 3: Roko Krpetić SEMINARSKI RAD - SPVP 0036428162studenti.zesoi.fer.hr/pametne-kuce/Studenti/2010/rkrpetic...Ovaj seminarski rad je izrañen u okviru predmeta „Sustavi za praćenje

Sustav za mjerenje pokretljivosti

3

1. Uvod

Napretkom tehnologijom pojavljuju se brojna rješenja na području zdravstvenih elektroničkih sustava u kućanstvima, eng. „health smart houses“ . Ti sustavi najčešće uključuju daljinska mjerenja nekih zdravstvenih parametara (npr. elektrokardiogram). Veliki broj tih telemetrijskih sustava namijenjeni su visokorizičnim osobama (zbog starosti, neke kronične bolesti, nedavne kirurške intervencije,…). Svrha tih sustava je povećanje kvalitete života i smanjenje stresu kako njima tako i osobama koje se za njih brinu (roñaci ili profesionalno osoblje). Ovakvi sustavi starijim osobama osiguravaju više slobode u svakodnevnim aktivnostima. Takvi sustavi se koriste za osobe koje žive same u svom domu, ali i za osobe koje žive u staračkim domovima.

Navedeni sustavi mogu mjeriti brojne parametre (EKG; respiracija, detekcija pada,…), meñutim važno mjesto meñu njima zauzima pokretljivost. Pokretljivost se može mjeriti senzorima postavljenim po kući koji služe ili za inteligentnu prilagodbu kuće ukućanima ili za praćenje zdravstvenog stanja. Druga mogućnost su nosivi senzori koji se nose na osobi i kontinuirano bilježe fiziološke ili biomehaničke parametre bez obzira na lokaciju ukućana.

U ovom radu opisan je sustav koji se zasniva na nosivom senzoru koji mjeri akceleraciju i koji je bežično povezan s računalom koje izvodi algoritme za mjerenje pokretljivost i alarmiranje i služi kao sučelje prema korisniku i medicinskom osoblju.

Ovaj rad dio je Sustava za brigu o zdravlju starijih osoba, skupa sa Sustavom za detekciju pada i Sustavom za telemetriju i korisničko sučelje.

U sljedećem, drugom poglavlju opisana je svrha mjerenja pokretljivosti. U trećem poglavlju opisan je sustav. Poglavlje 3.1. opisuje funkcije sustava dok poglavlja 3.2 i 3.3. opisuju realizaciju tih funkciji na razini senzorskog čvora i windows aplikacije.

Page 4: Roko Krpetić SEMINARSKI RAD - SPVP 0036428162studenti.zesoi.fer.hr/pametne-kuce/Studenti/2010/rkrpetic...Ovaj seminarski rad je izrañen u okviru predmeta „Sustavi za praćenje

Sustav za mjerenje pokretljivosti

4

2. Mjerenje pokretljivosti

Veza izmeñu zdravstvenog stanja i pokretljivosti je poznata. Povećana pokretljivosti poboljšava izdržljivost i snagu mišića i poboljšava kvalitetu života.[REFERENCA] Razina pokretljivosti usko je povezana sa zdravstvenim stanjem, ali i sa psihološkim stanjem. Pokretljivost se odnosi na količinu vremenu koja osoba provodi u dinamičkim aktivnosti kao npr. šetnja ili trčanje, kao i na količinu vremena koju osoba provodi u statičkim aktivnostima (sjedenje, stajanje, ležanje). Pokretljivost je objektivan parametar za kontrolu zdravlja i za odabir odreñenog načina liječenja[REFERENCA2].

Metode za mjerenje pokretljivosti uključuju opažanje, kliničke testove, psihološka mjerenja, dnevnike i upitnike i mjerenja zasnovana na senzorima. Dnevnici i upitnici zahtijevaju veliku suradnju s pacijentom i subjektivni su. Opažanje i klinička testiranja se provode u prekratkim periodima te nisu objektivna zbog činjenice da se provode neprirodnom okruženju - bolnici. Psihološke tehnike su objektivne, ali i skupe. Dugoročno kontinuirano mjerenje pokretljivosti zasnovano na senzorima u prirodnom kućnom okruženju pruža najobjektivniju sliku pokretljivosti. Kontinuirano dugoročno mjerenje zdravstvenog stanja starije osobe omogućuje da starija osoba živi neovisno u vlastitom domu, štedi vrijeme skrbniku i osigurava objektivne podatke za liječnike.

Mjerenje pokretljivosti neki sustavi koriste kao ulaz u napredne algoritme koji mogu detektirati neobične situacije.

Napomenimo na kraju da informacija o pokretljivosti može biti korisna brojnima sustavima u pametnoj kući, primjerice za odreñivanje kada osoba spava.

Pokretljivost se može mjeriti senzorima postavljenim po kući koji služe ili za inteligentnu prilagodbu kuće ukućanima ili za praćenje zdravstvenog stanja. Druga mogućnost su nosivi senzori koji se nose na osobi i kontinuirano bilježe fiziološke ili biomehaničke parametre bez obzira na lokaciju ukućana. Parametri ključni za razvoj nosivih sustava su: veličina, težina, energetska potrošnja. Nosivi sustav mora biti što jednostavniji za korištenje i ugodniji za pacijenta, a to znači: što manjih dimenzija, što lakši, što jednostavniji za korištenje i što veće autonomije rada.

Zbog izvedivosti odlučili smo se na nosive sustave. Meñu nosivim možemo izdvojiti one koji su autonomni i samostalno obrañuju i prikazuju podatke i na one koji ih prosljeñuju. Autonomni ureñaji su jednostavniji za korištenje, fleksibilniji i mogu se koristiti izvan kuće. Ograničenje predstavlja složenost algoritma što je povezano i s manjim vremenom autonomije. Ureñaji koji prosljeñuju podatke mogu biti manji i jednostavniji, ali se moraju koristiti u području neke mreže (lokalna mreža unutar kuće ili GSM izvan). Prednost ureñaja koji prosljeñuju podatke je i ta što su podaci o stanju korisnika sustava dostupni u svakom trenutku nekoj drugoj osobi (npr. medicinskom osoblju). Zbog jednostavnosti i navedenih prednosti odlučili smo se na sustave koji prosljeñuju podatke.

U brojnim člancima [navesti nekoliko referenci, 553 stranica] se pokazalo da su sustavi bazirani na akcelerometrima u mogućnosti točno mjeriti dinamičke i statičke aktivnosti.

Page 5: Roko Krpetić SEMINARSKI RAD - SPVP 0036428162studenti.zesoi.fer.hr/pametne-kuce/Studenti/2010/rkrpetic...Ovaj seminarski rad je izrañen u okviru predmeta „Sustavi za praćenje

Sustav za mjerenje pokretljivosti

5

3. Razvijeni sustav U ovom radu razvijen je nosivi sustav za mjerenje pokretljivosti i pada prikazan slikom 1. Sustav se sastoji od senzorskog čvora koji je bežično spojen s računalom. Korišteni senzor je akcelerometar - jeftin senzor niske potrošnje. Uz senzor, senzorski čvor čine i mikroprocesor kao i mrežno sklopovlje. Korišteni mikroprocesor je jeftini Atmel ATmega328, a korištena platforma za izradu prototipa je Arduino. Podaci se ne obrañuju na mikroprocesoru zbog ograničene procesorske moći i složenosti algoritma. Zbog toga je korištena bežična mreža za kontinuirano slanje podataka na osobno računalo. Zbog dometa, robusnosti i male potrošnje izabran je protokol Zigbee. Korištena je Zigbee kartica za Arduino Digi Xbee Shield2. Na računalu se podaci primaju, obrañuju i prikazuju korisniku pomoću windows aplikacije. Aplikacija je pisana u programskom jeziku C# korištenjem Microsotove .NET tehnologije.

Slika 1: Shematski prikaz sustava

Zbog potrebe Zigbee povezivanja sustav koristi dvije Arduino platforme kao i dvije ZigbeeShield kartice. Zigbee veza opisana je u dokumentaciji Sustava za telemetriju i korisničko sučelje.

3.1. Funkcije sustava Ovaj sustav je dio Sustava za brigu o zdravlju starijih osoba. Funkcije koje se odnose na ovaj dio su:

• akvizicija podatka o akceleraciji u tri osi sa senzora • izračun razine pokretljivosti u realnom vremenu • detekcija aktivnosti i neaktivnosti • detekcija kada je osoba duže vrijeme premirna • grafički prikaz akceleracije i razine pokretljivosti u realnom vremenu • bilježenje pokretljivosti u datoteku • grafički prikaz razine pokretljivosti za neko prethodno razdoblje

Page 6: Roko Krpetić SEMINARSKI RAD - SPVP 0036428162studenti.zesoi.fer.hr/pametne-kuce/Studenti/2010/rkrpetic...Ovaj seminarski rad je izrañen u okviru predmeta „Sustavi za praćenje

Sustav za mjerenje pokretljivosti

6

3.2. Senzorski čvor

3.2.1. Akcelerometar

Izabran je MEMS akcelerometar Analog Devices ADXL335, prikazan slikom 2.

Slika 2: Akcelerometar ADXL335

Akcelerometar odgovara namjeni zbog visoke osjetljivosti (270, 300, 330mV/g, ovisno o osi), nudi dostatan opseg rada (±3g), mjeri akceleraciju u tri osi što pospješuje uspješnost algoritma, jeftin je (2.77$ iznad 100 komada), malen (4 mm × 4 mm × 1.45 mm), niske potrošnje (350 µA), napona napajanja 1.8 V do 3.6 V.

Ostale podatke moguće kao i način rada moguće je pronaći u datasheetu (REFERENCA). Na slici 2 je prikazan kit za izradu prototipa: tj. tiskana pločica sa zalemljenim potrebnim kondenzatorima i priključcima.

3.2.2. Arduino

Slika 3: Pločica Arduino DueMillanove

Izabrani mikrokontroler je Atmel ATmega328 koji dolazi u sklopu Arduino platforme. Arduino je platforma slobodnog koda bazirana na fleksibilnom hardveru i softveru koji je vrlo jednostavan za korištenje. Aktualna Arduino pločica za izradu prototipa je DueMillanov. Pločica se može kupiti (27€) ili izraditi sama prema slobodnom CAD nacrtu.

Page 7: Roko Krpetić SEMINARSKI RAD - SPVP 0036428162studenti.zesoi.fer.hr/pametne-kuce/Studenti/2010/rkrpetic...Ovaj seminarski rad je izrañen u okviru predmeta „Sustavi za praćenje

Sustav za mjerenje pokretljivosti

7

Ploča ima 8 bitni Atmel ATmega328 koji radi na 16MHz, 14 U/I priključaka, napaja se sa USB priključka ili baterijom 7-12V, nudi priključak za napajanje akcelerometra (3,3 V) na kojem isporučuje dovoljno struje (50 mA). Pločica ima 6 analognih ulaza od koji su iskorištena 3 (po jedan za svaku os akcelerometra).

Za ovaj sustav najbitniji je analogno digitalni pretvarač koji je periferni sklop unutar mikrokontrolera. Korišteni mikroprocesor ima 10 bitni A/D koji radi metodom sukcesivne aproksimacije. Na ulaz A/D pretvarača moguće je dovesti osam kanala pomoću multipleksora. Karakteristike odgovaraju zahtjevima sustava, a od bitnih izdvojimo:

• 10 bitna rezolucija • integralna nelinearnost 0.5 LSB • ±2 LSB apsolutna točnost • 13 – 260 µs vrijeme pretvorbe. • Ucc referentni napon (korišten je Ucc) • mogućnost generiranja prekida

Rezolucija kao i referentni napon je bitan za izračun akceleracije iz digitalnog zapisa pretvornika. Vrijeme pretvorbe u najgorem slučaju je 0.26 ms, što je ispod glavnog ograničenja brzine uzrokovanja koje predstavlja sustav za bežičnu komunikaciju Zigbee protokolom (empirijski utvrñena granica od 17 uzoraka po sekundi).

Više informacija o Arduino platformi moguće je pronaći na [REFERENCA WEB ARDUINO], a o mikrokontroleru i A/D pretvaraču u [REFERENCA MIKRO DATASHEET]

3.2.3. Programska podrška za mikroprocesor Na početku programske podrške potrebno je definirati korištene pinove mikroprocesora i postaviti ih u odgovarajuće vrijednosti.

Priključak Analog input 4 se može koristiti i kao digitalni priključak, ali se u tom slučaju navodi kao pin 16. Taj priključak koristimo kao uzemljenje za akcelerometar pa ga je bilo potrebno postaviti kao izlazni digitalni pin u niskom logičkom stanju.

const int groundpin = 16; // analog inp ut pin 4 – ground pinMode(groundpin, OUTPUT); digitalWrite(groundpin, LOW);

Priključci Analog input 3, 4 i 5 se koriste kao analogni ulazi tako da ih nije potrebno dodano konfigurirati već su samo definirani.

const int xpin = 5; // x-axis of the accelerometer const int ypin = 4; // y-axis const int zpin = 3; // z-axis

Prije beskonačne petlje se inicijalizira serija brzinom 9600 kbps, a unutar beskonačne petlje se za svaki izlaz akcelerometra izvodi AD pretvorba i slanje na seriju1. Na kraju petlje se čeka 100 ms. Kako je to vrijeme znatno veće od vremena pretvorbe triju podatka s akcelerometra, s tom vrijednošću je definiran broj uzoraka po sekundi koji

1 Serija je preusmjerena na Zigbee Shield. Za detalje vidjeti dokumentaciju Sustava za telemetriju i korisničko sučelje.

Page 8: Roko Krpetić SEMINARSKI RAD - SPVP 0036428162studenti.zesoi.fer.hr/pametne-kuce/Studenti/2010/rkrpetic...Ovaj seminarski rad je izrañen u okviru predmeta „Sustavi za praćenje

Sustav za mjerenje pokretljivosti

8

iznosi 10. Više uzoraka u sekundi bi bilo korisno, ali nije moguće realizirati zbog ograničenja brzine Zigbee prijenosa.

void loop() { Serial.print(analogRead(xpin)); Serial.print("\t"); Serial.print(analogRead(ypin)); Serial.print("\t"); Serial.print(analogRead(zpin)); Serial.println(); // delay delay(100); }

Cjelokupni kod nalazi se u dodatku.

3.2.4. Upute za spajanje Akcelerometar se spaja prema tablici 1 kao što je prikazano slikom SLIKA. Dovoljno je umetnuti akcelerometar u header Duemilanove pločice i spojiti napajanje (Vss) posebnim crvenim kabelom.

Akcelerometar Arduino

COM Analog 2

Z Analog 3

Y Analog 4

X Analog 5

Vss 3.3 V

Tablica 1: Spajanje akcelerometra i Arduina

NADOPUNITI + SLIKATI!

Page 9: Roko Krpetić SEMINARSKI RAD - SPVP 0036428162studenti.zesoi.fer.hr/pametne-kuce/Studenti/2010/rkrpetic...Ovaj seminarski rad je izrañen u okviru predmeta „Sustavi za praćenje

Sustav za mjerenje pokretljivosti

9

3.3. Windows aplikacija Windows aplikacija programirana je korištenjem Microsoft .NET tehnologije, pisana u jeziku C#. Korišteno je razvojno okruženje Microsoft Visual Studio 2008. Windows aplikacija je detaljno opisana u dokumentaciji Sustava za telemetriju i korisničko sučelje. U ovom radu je opisan algoritam za mjerenje razine pokretljivosti, detekciju aktivnosti i neaktivnosti te za detekciju dužeg stanja mirovanja. Opisan je i grafički prikaz pokretljivosti.

3.3.1. Algoritam za detekciju pokretljivosti S obzirom da akcelerometar mjeri akceleraciju u tri osi, a želimo dobiti jedinstveni podatak koji je mjera pokretljivosti moramo obraditi signale iz akcelerometra, tj. pripremiti podatak s kojim će raditi algoritam. Taj postupak dobivanja jedinstvene mjere akceleracije opisan je u daljnjem tekstu.

Aplikacija sa serije prima tri podatka sa senzora nekoliko puta po sekundi (varijabla br_uzoraka_po_sekundi, izabrana je vrijednost 10). Ti podaci odgovaraju nekoj kvantizacijskoj razini te se moraju pretvoriti u iznos akceleracije (mjerna jedinica g= m/s2). Akcelerometar na izlazu daje pola napona napajanja za akcg=0, a AD pretvarač ima 10 bitova (1024 razina). Pretvorba se izvršava formulom 1

(1)

gdje je M neka kvantizacijska razina, Uss napon napajanja akcelerometra, Uref referentni napon AD pretvarača (5 V), a osjetljivost osjetljivost akcelerometra za odgovarajuću os.

Nakon što izračunamo iznos akceleracije za svaku os, izračunamo cjelokupnu efektivnu akceleraciju kao kvadratni korijen sume kvadrata pojedinih akceleracija formulom 2.

(2)

Podatak rms predstavlja cjelokupnu neto akceleraciju u nekom trenutku. Algoritam za detekciju pokreta treba informaciju o promjeni akceleracije. Zato se dalje računa aproksimacija derivacije parametra rms oduzimanjem trenutačne vrijednosti od one iz prethodnog uzorka.

(3)

Posljednji korak je filtriranje signala usrednjavanjem vrijednosti . Kako se radi u realnom vremenu koristi se pomični prosjek (eng. moving average) opisan formulom 4.

(4)

Prethodni koraci izvode se svaki put kada na seriju doñe novi podatak s akcelerometra (10 puta u sekundi), kako bi se dobila jedinstvena mjera pokretljivosti .

U kodu se izračun akceleracije (1) sa senzora izvodi u funkciji port_DataReceived koja je event handler koji se pokreće svaki put kada podatak doñe na seriju.

Page 10: Roko Krpetić SEMINARSKI RAD - SPVP 0036428162studenti.zesoi.fer.hr/pametne-kuce/Studenti/2010/rkrpetic...Ovaj seminarski rad je izrañen u okviru predmeta „Sustavi za praćenje

Sustav za mjerenje pokretljivosti

10

x = (x * 5000 / 1024 - 3300 / 2) / 270; y = (y * 5000 / 1024 - 3300 / 2) / 300; z = (z * 5000 / 1024 - 3300 / 2) / 330;

Nekoliko linija koda ispod se poziva funkcija izracunaj_vrijednosti() koja računa ostale jednadžbe. Prvo se računaju jednadžbe 2 i 3.

rms= Math .Sqrt( Math .Pow(x,2)+ Math .Pow(y,2)+ Math .Pow(z,2)); delta_rms.Add( Math .Abs(rms - rms_last));

Primijetiti da se vrijednost delta_rms čuva u listi kako bi se mogla usrednjiti. Usrednjavanje se izvodi za prethodnu sekundu (tj. 10 prethodnih uzoraka) sljedećim programskim odsječkom.

if (delta_rms.Count >= br_uzoraka_po_sekundi) { avg_delta_rms = 0; for (int i = 0; i < br_uzoraka_po_sekundi; i++) { avg_delta_rms += delta_rms[delta_rms.Count - 1 - i]; } avg_delta_rms /= br_uzoraka_po_sekundi; avg_delta_rms *= 100; } else avg_delta_rms = 0; avg_delta_rms_list.Add(avg_delta_rms); rms_last=rms;

Usrednjavanje počinje tek nakon 10 prvih uzoraka (br_uzoraka_po_sekundi). Na kraju usrednjavanja izračunat je parametar avg_delta_rms koji se ujedno dodaje i na listu avg_delta_rms_list. Konačno je potrebno još zapamtiti rms vrijednost za računanje delta_rms u sljedećem koraku.

Dakle, svaki put kad doñu tri podatka sa serije (što se dešava 10 puta u sekundi) izvode se gore opisani izračuni kako bi se dobio novi član u listi avg_delta_rms_list. Nakon toga se poziva algoritam čiji kod je u funkciji algoritam().

3.3.1.1. Detekcija aktivnosti

Prvo se izvodi algoritam za detekciju pada opisan u dokumentaciji Sustava za detekciju pada.

Potom se izvodi algoritam za detekciju aktivnosti koji koristi tri vrijednosti: Gtresh, Ttresh i TsCountTresh. Algoritam javi „Aktivnost“ nakon što TsCountTresh ne uzastopnih uzoraka avg_delta_rms_list bude iznad vrijednosti Gtresh. S druge strane, brojanje tih uzoraka se resetira nakon što Ttresh uzastopnih uzoraka bude ispod vrijednosti Gtresh i tada algoritam javi „Neaktivnost“.

Kod algoritma dan je programskim odsječkom.

double Gtresh = 10; int Ttresh = 20; //koliko uzastopnih manjih od Gtresh da resetira int TsCountTresh = 30;//koliko ne-uzastopnih vecih od Gtresh da bude Activity if (avg_delta_rms_list[avg_delta_rms_list.Count - 1 ] > Gtresh) br_veci++;

Page 11: Roko Krpetić SEMINARSKI RAD - SPVP 0036428162studenti.zesoi.fer.hr/pametne-kuce/Studenti/2010/rkrpetic...Ovaj seminarski rad je izrañen u okviru predmeta „Sustavi za praćenje

Sustav za mjerenje pokretljivosti

11

//Petlja za reset brojaca br_veci****************** ************ br_manji = 0; foreach(double x in avg_delta_rms_list.Skip(avg_del ta_rms_list.Count-Ttresh)) { if(x < Gtresh) br_manji++; } if(br_manji == Ttresh) { br_veci = 0; //Neaktivnost } //************************************************* ************* if(br_veci > TsCountTresh) { //Aktivnost }

3.3.1.2. Detekcija -osoba premirna

Zadnji dio algoritma detektira situaciju kada je osoba premirna neko duže razdoblje. Ovisno o namještenim parametarima ovaj algoritam se može iskoristiti za detekciju kada osoba spava ili za detekciju kada je osoba u nesvijesti.

Algoritam koristi dvije vrijednosti: G_TooCalm i T_TooCalm kao i dvije zastavice TooCalm_alarm i TooCalm_bio koje su inicijalno postavljene u vrijednost false .

Algoritam će detektirati da je osoba premirna ukoliko su dva uvjeta zadovoljena. Prvi uvjet je da je T_TooCalm uzastopnih uzoraka vrijednosti avg_delta_rms_list ispod vrijednosti G_TooCalm. Drugi uvjet je da se taj alarm nije uključio u prethodnom koraku. Drugi uvjet se provjerava zastavicom TooCalm_bio. Bez ove provjere TooCalm_alarm bi se javljao od trenutka detekcije dok god je osoba premirna. Prilikom detekcije potrebno je uključiti zastavicu TooCalm_bio. U slučaju lažnog alarma TooCalm_alarm iz programskog sučelja moguće je gumbom resetirati zastavicu TooCalm_bio.

double G_TooCalm = 5; int T_TooCalm = 120*br_uzoraka_po_sekundi; //dvij e minute, ina če treba puno više, npr satmvremena jer čak u snu se osoba pomakne na tren! bool TooCalm_alarm = false; bool TooCalm_bio = false; if (avg_delta_rms_list.Count > T_TooCalm) { if (avg_delta_rms_list[avg_delta_rms_list.Count - 1] < G_TooCalm) { TooCalm_alarm = true; foreach (double x in avg_delta_rms_list.Skip(avg_de lta_rms_list.Count - T_TooCalm)) { if (x > G_TooCalm) TooCalm_alarm = false; } } if (TooCalm_alarm & (!TooCalm_bio)) //ako je osoba premirna // a alarm TooCalm nije bio! { //osoba je premirna TooCalm_bio = true; } }

Page 12: Roko Krpetić SEMINARSKI RAD - SPVP 0036428162studenti.zesoi.fer.hr/pametne-kuce/Studenti/2010/rkrpetic...Ovaj seminarski rad je izrañen u okviru predmeta „Sustavi za praćenje

Sustav za mjerenje pokretljivosti

12

Parametri korišteni u algoritmu su eksperimentalno namješteni na odgovarajuće vrijednosti tako da algoritam bude što točniji, tj. da daje što manje lažnih alarma, i što je još važnije da ne izostane detekcija nezgode (osoba premirna). Svi parametri mogu se korigirati iz sučelja aplikacije. Takoñer, u slučaju pojedine detekcije poduzimaju se odreñene radnje (alarmiranje, ispisivanje na sučelje) kao što je opisano u dokumentaciji Sustava za telemetriju i korisničko sučelje.

3.3.2. Grafički prikaz pokretljivosti U aplikaciji su predviñena dva grafa:

• graf u realnom vremenu, • povijesni graf.

Graf u realnom vremenu prikazuje četiri grafa: akceleraciju za svaku os i . Takoñer, u nekom trenutku moguće je prikazati povijesni graf mjere pokretljivosti ( ). Taj graf se iscrtava iz log-a, a moguće je birati rezoluciju crtanja (sekunda,

10 sekundi, sat,…).

Za iscrtavanje je korištena Microsoftova .NET kontrola Charting. Važniji dijelovi koda opisani su u nastavku, a cijeli kod aplikacije dan je u prilogu.

3.3.2.1. Graf u realnom vremenu

Klikom na gumb za iscrtavanje grafa u realnom vremenu otvara se nova forma. U novoj formi se konfigurira graf funkcijom konfiguriraj_graf3(). U toj funkciji se za svako od četiri područja grafa (eng. Chart Area) namještaju sljedeći parametri:

• minimum i maximum pojedinih osi, • format osi, • dimenzije područja grafa, • tip i izgled linije.

Na x osi se krajnja lijeva vrijednost računa svojstvom DateTime.Now , a krajnja desna dodavanjem vrijednosti max_sekunda (namješteno na 120).

Nakon konfiguriranja grafa uključuje se funkcija label7_TextChanged koja je event

handler. Pripadajući event se generira točno nakon što je izračunata vrijednost avg_rms , tj. nakon funkcije izracunaj_vrijednosti() tako da se nevidljivoj labeli promijeni vrijednost. U funkciji label7_TextChanged poziva se funkcija crtaj3() koja nacrta četiri nove točke na grafu, provjeri je li iscrtavanje grafa došlo do kraja vidljivog područja i po potrebi izbriše stare podatke kako bi se graf uvijek iscrtavao u vidljivom području osi x. Ta funkcija naredbama

AddNewPoint(timeStamp, 'x' ); AddNewPoint(timeStamp, 'y' ); AddNewPoint(timeStamp, 'z' ); AddNewPoint(timeStamp, 'a' );

četiri puta poziva funkciju AddNewPoint za crtanje točke.

Nakon što nacrta točku provjera je li graf došao do kraja vidljivog područja. Ako je, izbriše se početnih (max_sekunda-10)* form1.br_uzoraka_po_sekundi uzoraka

Page 13: Roko Krpetić SEMINARSKI RAD - SPVP 0036428162studenti.zesoi.fer.hr/pametne-kuce/Studenti/2010/rkrpetic...Ovaj seminarski rad je izrañen u okviru predmeta „Sustavi za praćenje

Sustav za mjerenje pokretljivosti

13

naredbom ptSeries.Points.RemoveAt(0) i korigira se vremenska os (os x). Isječak koda dan je u nastavku.

if (ptSeries.Points.Count == (form1.max_sekunda-3) * form1.br_uzoraka_po_sekundi) { for (int i = 0; i< (form1.max_sekunda-10) * form1. br_uzoraka_po_sekundi; i++) { ptSeries.Points.RemoveAt(0); } graf3.ChartAreas[area].AxisX.Minimum = ptSeries.Po ints[0].XValue; graf3.ChartAreas[area].AxisX.Maximum =

DateTime.FromOADate(ptSeries.Points[0].XValue).AddS econds (form1.max_sekunda).ToOADate;

}

Na grafu neće biti vidljive promjene dok god se ne zada naredba graf3.Invalidate() .

3.3.2.2. Povijesni graf Prije crtanja povijesnog grafa korisnik bira rezoluciju crtanja i potom klikne na odgovarajući gumb koji otvara novu formu. U novoj formi se prvo poziva funkcija izracunaj() koja pripremi točke za crtanje.

Funkcija izračunaj obavlja sljedeće:

1. napravi kopiju loga 2. iz kopije loga učita sve podatke u memoriju te ih korištenjem regularnih izraza

razdvoji u varijable 3. Iz varijabli napravi dvije liste: lista_vrijeme, avg_delta_rms_list2 4. Ovisno o rezoluciji pripremi nove liste: lista_vrijeme2, avg_delta_rms_list3

Prvi korak za sve ostale pripremi kopiju datoteke jer originalnoj datoteci kontinuirano pristupa iz glavne forme. Nakon trećeg koraka imamo sve izmjerene točke: (x,y)= (lista_vrijeme, avg_delta_rms_list2). S obzirom da ne crtamo sve točke, već korisnik bira proizvoljnu rezoluciju crtanja, liste je potrebno modificirati. lista_vrijeme2 se dobije tako da se iz lista_vrijeme uzmu samo oni uzorci koji odgovaraju zadanoj rezoluciji (npr. za rezoluciju od 1 s uzme se svako deseti uzorak). avg_delta_rms_list3 se dobije tako da se iz avg_delta_rms_list2 izbace svi uzorci koji ne odgovaraju izabranoj rezoluciji, a oni koji ostanu se promijene u srednju vrijednost izbačenih. Računanje srednje vrijednosti se izvodi kako se ne bi izgubili izbačeni podaci. Na kraju imamo spremne liste za crtanje grafa koje imaju točno rezolucija_u_sekundama*br_uzoraka_u _sekundi manje elemenata nego što je zabilježeno u log datoteci. Nakon što su liste spremne poziva se funkcija konfiguriraj_graf2().

Naredbama

minValue = lista_vrijeme2[0]; maxValue = lista_vrijeme2[lista_vrijeme2.Count - 1] ; graf2.ChartAreas[ "ChartArea1" ].AxisX.Minimum = minValue.ToOADate(); graf2.ChartAreas[ "ChartArea1" ].AxisX.Maximum = maxValue.ToOADate(); graf2.ChartAreas[ "ChartArea1" ].AxisY.Minimum = 0; graf2.ChartAreas[ "ChartArea1" ].AxisY.Maximum = avg_delta_rms_list3.Max();

Page 14: Roko Krpetić SEMINARSKI RAD - SPVP 0036428162studenti.zesoi.fer.hr/pametne-kuce/Studenti/2010/rkrpetic...Ovaj seminarski rad je izrañen u okviru predmeta „Sustavi za praćenje

Sustav za mjerenje pokretljivosti

14

postavlja se prvi element iz lista_vrijeme2 za minimalnu vrijednost osi x, zadnji element za maksimalnu, 0 za minimalnu osi y, a maksimum liste avg_delta_rms_list3 za maksimalnu vrijednost osi y.

Konačno se poziva funkcija crtaj2() koja nacrta graf s točkama (x,y)= (lista_vrijeme2, avg_delta_rms_list3).

Page 15: Roko Krpetić SEMINARSKI RAD - SPVP 0036428162studenti.zesoi.fer.hr/pametne-kuce/Studenti/2010/rkrpetic...Ovaj seminarski rad je izrañen u okviru predmeta „Sustavi za praćenje

Sustav za mjerenje pokretljivosti

15

4. Zaključak

U dokumentu je opisan nosivi sustav s akcelerometrom koji služi za detekciju aktivnosti kod starijih osoba. Napisana je programska podrška za mikrokontroler i za windows aplikaciju koja izvodi algoritme detekcije, alarmira u slučaju nezgode, grafički prikazuje mjeru pokretljivosti.

Predlažu se sljedeća poboljšanja sustava:

• uvrštenje selftest opcije akcelerometra u programsku podršku mikrokontrolera, • korištenje složenijeg apstraktnog algoritma za inteligentnu detekciju neobičnih

aktivnosti, • implementacija dodatnih senzora u sustav (respiracija, EKG, mjerač glukoze,

oksimetar).

Razvijeni su razni telemetrijski sustavi za starije osobe, meñutim širu primjenu su našli samo oni najjednostavniji: jednostavan ureñaj sa tipkom koja generira alarm, gdje korisnik mora sam pritisnuti tipku. Problem svih telemetrijskih biomonitoring sustava koji skupljaju podatke sa senzora je što nije riješen problem obrade tih podataka. Iako se dugoročnim kontinuiranim mjerenjima nekog podatka kao što je EKG ili pokretljivost mogu dijagnosticirati bolesti i predvidjeti razne rizične situacije, pregledavanje i obrada tih podataka od mnogo osoba bi zahtijevalo veliku računalnu moć kao i temeljitu promjenu zdravstvenog sustava. Takoñer, problem je i motiviranost osoba za korištenje ovih sustava zbog čega ureñaji moraju biti što manja smetnja za korisnika.

Page 16: Roko Krpetić SEMINARSKI RAD - SPVP 0036428162studenti.zesoi.fer.hr/pametne-kuce/Studenti/2010/rkrpetic...Ovaj seminarski rad je izrañen u okviru predmeta „Sustavi za praćenje

Sustav za mjerenje pokretljivosti

16

5. Literatura

[1] Babić, Stjepan; Finka, Božidar; Moguš, Milan. Hrvatski pravopis. Zagreb: Školska knjiga, 1995.

[2] Srića, Velimir…[et al]. Menedžerska informatika. Zagreb: MEP Consult : Delfin : HITA Poslovna akademija, 1999.

[3] Antologija hrvatske kratke priče / priredio Miroslav Šicel. Zagreb: Disput, 2001.

[4] Petrak, Jelka. Traženje informacija u medicini. // Uvod u znanstveni rad u medicini / Matko Marušić i suradnici. 3. izd. Zagreb: Medicinska naklada, 2004. Str. 116 - 124.

[5] Aparac-Jelušić, Tatjana. Knjižnična znanost u posljednjem desetljeću dvadesetog stoljeća. // Vjesnik bibliotekara Hrvatske 40, 1/2(1997), str. 139-152.

[6] Anzulović, Neda. Aleksandar Stipčević: biografija i bibliografija radova. // Izazovi pisane baštine: zbornik radova u povodu 75. obljetnice života Aleksandra Stipčevića / uredila Tatjana Aparac-Jelušić. Osijek: Filozofski fakultet, 2005. Str. 7-37.

[7] Lauder, John; Matheson, Ann. Newsplan 2000 project: completion report to the heritage lottery fund, 2005. URL: http://www.bl.uk/about/cooperation/pdf/newsplan2000final.pdf (2006-01-13)

[8] Dynamic action plan, 2005. URL:http://www.minervaeurope.org/publications/dap/dap.pdf (2005-11-20)

[9] Hrvatsko knjižničarsko društvo. URL: http://www.hkdrustvo.hr/ (2006-03-01)

Page 17: Roko Krpetić SEMINARSKI RAD - SPVP 0036428162studenti.zesoi.fer.hr/pametne-kuce/Studenti/2010/rkrpetic...Ovaj seminarski rad je izrañen u okviru predmeta „Sustavi za praćenje

Sustav za mjerenje pokretljivosti

17

6. Pojmovnik

Pojam Kratko objašnjenje Više informacija potražite na

White paper Kratak dokument koji daje uvid u neko područje, tehniku, politiku, proizvod, metodu, standard i sl.

en.wikipedia.org/wiki/White_paper

Itd…