SZKUPIEN BENCE SZAKDOLGOZAT
BUDAPESTI MŰSZAKI ÉS GAZDASÁGTUDOMÁNYI EGYETEM GÉPÉSZMÉRNÖKI KAR MECHATRONIKA, OPTIKA ÉS GÉPÉSZETI INFORMATIKA TANSZÉK
BUDAPESTI MŰSZAKI ÉS GAZDASÁGTUDOMÁNYI EGYETEM GÉPÉSZMÉRNÖKI KAR MECHATRONIKA, OPTIKA ÉS GÉPÉSZETI INFORMATIKA TANSZÉK
SZKUPIEN BENCE SZAKDOLGOZAT Állásstabilitást vizsgáló stabilometriás mérőrendszer fejlesztése erőszenzorok felhasználásával
Konzulens: Nagymáté Gergely Phd hallgató
Témavezető: Kiss Rita egyetemi tanár
Budapest, 2016
vi
vii
TARTALOMJEGYZÉK
Előszó ................................................................................................................................... x Jelölések jegyzéke ............................................................................................................... xi 1. Bevezetés .......................................................................................................................... 1 1.1. Célkitűzések ............................................................................................................ 1 1.2. Áttekintés................................................................................................................. 2 2. Szakirodalmi áttekintés .................................................................................................. 4 2.1. A CoP-ból számítható paraméterek ...................................................................... 5 2.1.1. Távolság típusú paraméterek........................................................................ 5 2.1.2. Frekvencia típusú paraméterek .................................................................... 6 2.2. A paraméterek használata ...................................................................................... 7 2.3. A paraméterek megbízhatósága ............................................................................ 8 2.4. A mintavételi frekvencia és a mérés időtartama .................................................. 8 2.5. A stabilometria alkalmazása: kutatási eredmények ............................................ 8 2.5.1. Bilaterális térdízületi kopás hatása az egyensúlyozóképességre ............... 9 2.5.2. Unilaterális térdízületi kopás hatása a testtartás stabilitására ................. 10 2.5.3. Bokatörés utáni felépülés vizsgálata stabilometriával .............................. 11 2.6. A Zebris erőeloszlás-mérő berendezés helyettesítése........................................ 11 3. Hardver .......................................................................................................................... 13 3.1. Mérleg .................................................................................................................... 13 3.2. Wheatstone-híd ..................................................................................................... 14 3.3. ADC ....................................................................................................................... 16 3.4. Arduino ................................................................................................................. 17 4. Szoftver .......................................................................................................................... 19 4.1. Arduino program .................................................................................................. 19 4.2. Labview program.................................................................................................. 21 4.2.1. Soros porti kommunikáció .......................................................................... 22 4.2.2. Adatfeldolgozás ........................................................................................... 24 4.2.3. Kiértékelés .................................................................................................... 25 5. Kalibrálás, Hitelesítés ................................................................................................... 27 5.1. Kalibrálás ............................................................................................................... 27 5.2. Hitelesítés .............................................................................................................. 29 6. Összefoglalás, eredmények értékelése ........................................................................ 34 6.1. Eredmények .......................................................................................................... 34 6.2. Továbbfejlesztési lehetőségek .............................................................................. 35 viii
7. felhasznált források ....................................................................................................... 36 8. Summary ........................................................................................................................ 38 9. Függelék ......................................................................................................................... 40
ix
ELŐSZÓ Napjainkban a technika fejlődésével az orvostudományban egyre nagyobb szerepet kapnak a mérnöki megoldások. Különösen igaz ez az orvosi diagnosztika területére. Az egyre hatékonyabb és pontosabb módszerek kidolgozásában és alkalmazásában a mérnök és orvos együttműködésére van szükség. Szép példája ez a tudományágak összefonódásának, az interdiszciplinaritásnak. A biomechatronika szakirány hallgatójaként az innovatív mérnöki megoldások, és az élőlények vizsgálata egyaránt érdekel. Témámnak egy biomechanikai vizsgálatok elvégzésére alkalmas eszköz kifejlesztését választottam. Jelen szakdolgozat célja egy állásstabilitást vizsgáló stabilometriás mérőrendszer kifejlesztése erőszenzorok felhasználásával. *** Köszönöm Kiss Bernadettnek, hogy használhattam a Mechatronika Szakosztály műhelyét, és az útmutatást a műhely használatához. Köszönettel tartozom Gárdonyi Gábornak, aki Labview programozás tudásával segített a projekt létrejöttében. A dolgozat elkészítését az Országos Tudományos Kutatási Alapprogram támogatta (K115894).
Budapest, 2016. Szkupien Bence
x
JELÖLÉSEK JEGYZÉKE Jelölés
Magyar megnevezés
Angol megnevezés
Mértékegység
ADC
Analóg-digitális átalakító
Analog-digital converter
-
AP CE CEA
Anteroposterior Konfidenciaellipszis Konfidenciaellipszis területe
Confidence Ellipse Confidence Ellipse Area
mm2
CoP
Talpi nyomásközéppont
Center of Pressure
-
ML
Mediolateral
-
-
MPF
Átlagos frekvencia
Mean Power Frequence
Hz
P R
Teljesítmény Ellenállás
Power Resistance
W Ω
SPR
Spektrális teljesítmény arány
Spectral Power Ratio
1
xi
1. BEVEZETÉS 1.1. Célkitűzések A BME MOGI Tanszéken lévő mozgás laboratórium alkalmas stabilometriai vizsgálatok végzésére. A stabilometriai vizsgálat célja a vizsgált személy testtartásstabilitásának meghatározása. A mérés célja a vizsgált személy talpi nyomásközéppont helyzetének rögzítése az idő függvényében . A Laboratóriumban egy Zebris FDM-S erőeloszlás-mérő berendezést használnak (1. ábra). A célom egy olyan berendezés tervezése, amely funkciójában helyettesíti a Zebris-t, és bizonyos szempontokból többet is nyújt. A tanszéken jelenleg üzemelő Zebris (ZEBRIS GmbH, Isny, Germany) eszköz 320mm x 470mm nagyságú merőfelszíne alatt összesen 1504 db mérőcella helyezkedik el. A mérés vezérlése az eredeti WinPDMS szoftverrel történik. A nyers mérési adatokat (egyes nyomáscellák által mért nyomásértékeket) a WinPDMS szoftverből exportálják, a feldolgozás saját, tanszéki LabView 2013 (National Instruments, Austin, Texas, USA) programmal történik. Hátránya, hogy a gyári, zárt rendszert nem lehet a tanszék igényei szerint testre szabni. A Zebris készülék mintavételi frekvenciája 50 Hz alatt van, a mintavételezés szabálytalan időközönként történik. Emiatt a frekvencia alapú paraméterek számítása megbízhatatlanná válik. A feladatom egy hardver készítése, ami alkalmas stabilometriai vizsgálatok végzésére elegendően nagy frekvencián. A feladat részét képezi a hardver és a számítógép összekötése és a mérést vezérlő, valamint és a nyers adatokat feldolgozó program elkészítése. Ezt a programot olyan funkciókkal látom el, amelyek gyorssá és kényelmessé teszik a mérést, az eredmények rögzítését és a szükséges számítások elvégzését.
1
1. ábra. Zebris FDM-S erőeloszlás-mérő berendezés1
1.2. Áttekintés A jelen szakdolgozat első része a szakirodalom áttekintése a stabilometria és a talpi nyomásközéppont mérése tekintetében. Először összefoglalom a mérés szokásos menetét, majd a mérési eredményekből számítható paramétereket. A számos paraméter közül irodalmi források alapján megadom a független és megbízható paramétereket. A szakirodalmi áttekintés végén korábbi kutatások eredményei alapján a stabilometriai mérések gyakorlati alkalmazhatóságát mutatom be. A következő fejezet célja a hardver elkészítésének bemutatása. Egy közönséges fürdőszobai mérleget alakítottam át, a benne lévő négy erőmérő cellát érintetlenül hagyva. A cellák által szolgáltatott analóg mérési adat cellánként 1-1, összesen 4 db HX711 típusú analóg-digitális átalakító (ADC) segítségével digitálissá konvertálható, az ADC-k elé mérőhíd beiktatásával. A digitális adatot egy Arduino UNO mikrokontrollerbe továbbítva a szükséges számítások elvégezhetők, kimenetén másodpercenként 80-szor a 4 erőmérő cellára eső tömeg jelenik meg kilogrammban. Az eszköz használatához két programot írtam: az Arduino-ra és Labview-ban. Az Arduino-ra írt program órajelre beolvassa a nyers adatot, amit az ADC küld, és különböző számítások segítségével a nyers adatból kilogrammban értelmezhető adatot továbbit soros porton a számítógép felé. A Labview program a számítógépen fut. Folyamatosan nyomon követhető a talpi nyomásközéppont mozgása, valamint a mérleg innen offsetelhető (nullázható), és a mérés is innen indítható. Minden mérés eredménye fájlba menthető, amelyek adataiból a különböző, egyensúlyozást leíró paraméterek meghatározásához szükséges számítások elvégezhetők. A következő fejezet a kalibrálással és a hitelesítéssel foglalkozik. A kalibrálás célja, hogy a mért értékek megfeleljenek a valóságnak. Jelen esetben az offsetelés a Labview programban, gombnyomásra történik, igy a fő kalibrálási feladat az érzékenység beállítása. Végül összefoglalom és értékelem a kapott eredményeket.
1
A kép forrása: http://www.prophysics.ch/produktdatenbank/fdm-s-system/
2
3
2. SZAKIRODALMI ÁTTEKINTÉS A stabil testtartás, a test tömegközéppontjának közel egy pont felett tartása az egyensúly megtartásának elengedhetetlen feltétele. A stabilometria a testtartás stabilitásának értékelésére használható módszer. Egy lábon vagy két lábon állás közben vizsgálják a talpi nyomásközéppont (Center of Pressure: CoP) vándorlását az idő függvényében. A vizsgált személy egy előre meghatározott ideig, általában 30 vagy 60 másodpercig áll, nyitott vagy csukott szemmel. Leggyakrabban a mérést erre a célra kifejlesztett nyomáseloszlás-mérőn végzik. A 2. ábrán stabilometriai mérés látható. A nyomásmérő cellák által mért értékekből a CoP számítható. A CoP helyzetének időbeni változásából több biomechanikai paraméter számítható, amely segíti egyes elváltozások, betegségek diagnosztizálását. Egyes neurális vagy fiziológiai elváltozások befolyásolhatják a testtartást, az egyensúlyozó képességet. Így a staibilitást leíró paraméterek segítségével fiziológiai, neurológiai rendellenességek, sportok, különböző kezelések vagy testtartások hatása numerikusan leírható. Például a stabilometriai vizsgálatok segítségével lehetséges a Parkinson-kór korai diagnózisa, vagy a különböző súlyosságú térdi porckopás biomechanikai hatásainak vizsgálata. [1]
2. ábra. Stabilometriai mérés [1]
4
A stabilometriai mérésekhez többféle pozíció használható. A két lábon állás, mint természetes testtartás a leggyakoribb, bármilyen állapotban lévő páciens képes rá. A vizuális információk elvesztése nagyban befolyásolja az egyensúlyozóképességet, ezért a két lábon állás csukott szemmel szintén gyakran alkalmazott pozíció. Az egy lábon állás lényeges eltérő egyensúlyozó képességet követel meg, különösen alkalmas ízületi problémák hatásvizsgálatára. [1] A CoP időben változó koordinátáiból számítható paraméterek [1] [2] [3] két nagy csoportba oszthatók: távolság és frekvencia típusú paraméterek. A távolság típusú paraméterek a CoP pályáját, míg frekvencia típusú paraméterek az időbeli változásokat írják le.
2.1. A CoP-ból számítható paraméterek 2.1.1. TÁVOLSÁG TÍPUSÚ PARAMÉTEREK Ezeket a mért, időtartománybeli eredményekből számítjuk:
95%-os konfidenciaellipszis területe (Confidence ellipse area – CE Area): Annak az ellipszisnek a területe (négyzetmilliméterben), amely a mért CoP pontok 95%-át magába foglalja.
95%-os konfidenciaellipszis tengelyeinek aránya (Confidence ellipse axis ratio – CE Axis ratio): Az ellipszis kis- és nagytengelyének aránya.
CoP által a mérés során bejárt út hossza (mértékegység: mm)
CoP maximális sebessége (mértékegység: mm/s)
CoP pozíció maximum eltérése az átlagtól, és ennek szöge a +AP és – AP félsíkokban (mértékegység: mm): Számítása a 3. ábrán látható.
3. ábra. CoP pozíció maximum eltérése az átlagtól, és ennek szöge a +AP és – AP félsíkokban [2]
AP-LM irányban bejárt távolság aránya: A testtartás kontrolljának legnagyobb véletlenszerű hibáinak arányát írja le a két anatómiai irányban. 5
2.1.2. FREKVENCIA TÍPUSÚ PARAMÉTEREK A CoP AP és ML irányok szerinti felbontásával egyváltozós időfüggvényeket kapunk, melyek Fourier-transzformációval frekvenciatartományba konvertálhatók. A frekvencia típusú paraméterek:
Legnagyobb amplitúdó (Largest amplitudes – LA): a legnagyobb lokális minimum-lokális maximum vagy lokális maximum-lokális minimum különbség, azaz a legnagyobb folytonos, egyirányú mozgással megtett távolság. (mértékegység: mm). A 4. ábrán egy 20 másodperces mérési intervallum alatti legnagyobb amplitúdó látható.
4. ábra. Legnagyobb amplitúdó AP irányban [3]
Átlagos frekvencia (Mean power frequency – MPF): egy súlyozott átlag, az (1) képlet szerint:
(1) ahol az fj frekvenciakomponensek a Pj teljesítményük szerint vannak súlyozva, M a megkülönböztetett frekvenciasávok száma. (mértékegység: Hz)
Medián frekvencia (Median frequency – MDF): Az a frekvencia, amely a spektrumot két egyenlő energiájú területre bontja. A (2) képlet érvényes a medián frekvenciára:
6
(2) ahol az M darab megkülönböztetett frekvenciasáv sorszáma a j index, Pj pedig a j indexű frekvenciasáv teljesítménye. (mértékegység: Hz)
99% sávszálesség (99% Bandwidth – BW): Annak a frekvenciasávnak a szélessége, amely a CoP jel teljesítményének 99%-át magába foglalja. (mértékegység: Hz)
Frekvenciasávok közötti teljesítmény-arányok (Frequency range power ratios – LMR, MHR): A frekvenciasávot három tartományra osztjuk: alacsony frekvencia (0-0,3 Hz), közepes frekvencia (0,3-1 Hz) és magas frekvencia (1-5 Hz). Az 5 Hz-nél magasabb frekvenciák a CoP mérésekor elhanyagolhatók. Az LMR az alacsony és a közepes sávba eső teljesítmény aránya (low-medium frequency range power ratio), az MHR
a közepes és a magas sávba eső
teljesítmény aránya (medium-high frequency range power ratio).
AP-ML teljesítmény aránya (Spectral Power AP-ML Ratio – SPR): A teljes spektrum teljesítménye AP irányban, és a teljes spektrum teljesítménye ML irányban, egymáshoz viszonyítva.
2.2. A paraméterek használata A különböző kutatások eredményeinek összehasonlításának feltétele, hogy a mérés időtartama, a mintavételi frekvencia, a lábak és a karok helyzete azonos legyen. Fontos szempont a vizsgálandó paraméterek azonossága is. A COP helyzetének időbeni változásából több paraméter egymástól nem független. Nagymáté és munkatársai [1] statisztikai elemzéssel megállapították, hogy a távolság típusú paraméterek közül a következők használata célszerű:
95%-os konfidenciaellipszis területe
CoP által a mérés során bejárt út hossza
CoP maximális sebessége
95%-os konfidenciaellipszis tengelyeinek aránya
AP-LM irányban bejárt távolság aránya
A frekvencia típusú paraméterek közül:
Legnagyobb amplitúdó
Átlagos frekvencia
AP-ML teljesítmény aránya
Frekvenciasávok közötti teljesítmény-arányok 7
2.3. A paraméterek megbízhatósága A paraméterek megbízhatósága megmutatja azonos körülmények között, ugyanazon a személyen végzett mérések megismétlési pontosságát. Több kutatás a CoP paraméterek megbízhatóságát különböző, homogén összetételű csoportokon vizsgálta, pl. gerincsérült betegek, csípő- és térdi porckopásos páciensek, egészséges öreg emberek vagy egészséges fiatal felnőttek. A csoport tagjait két egymást követő napon vagy egy napon kétszer, de legalább egy órás szünet beiktatásával mérték. [4] [5] [6] Nagymáté és munkatársai [3] nagyobb, vegyes összetételű csoporton vizsgálták egyes CoP paramétereket megbízhatóságát. A vizsgált személyeket három helyzetben mérték: kétlábon állás nyitott szemmel; kétlábon állás csukott szemmel; egylábon állás nyitott szemmel. Megállapították, hogy a megbízhatóság szempontjából ajánlott paraméterek:
CoP által a mérés során bejárt út hossza
CoP pozíció maximum eltérése az átlagtól +AP és – AP irányokban
Legnagyobb amplitúdó
Általánosságban elmondható, hogy a frekvencia típusú paraméterek kevésbé megbízhatók. A pozíciók közül az egy lábon állás nem ajánlott, mivel egyes tesztalanyok számára nehézséget jelenthet a pozíció tartása, és kevés plusz információt ad a két lábon álláshoz képest. Nagymáté és munkatársai egy másik tanulmányban [2] megállapítják, hogy a megbízható, statisztikai jellegű paraméterek mellett az extremitásokat is érdemes figyelembe venni, mert ezek megmutatják az emberi egyensúlyozás véletlenszerű hibáit, amelyet nem célszerű figyelmen kívül hagyni.
2.4. A mintavételi frekvencia és a mérés időtartama A mintavételi frekvenciára min. 50 Hz javasolt. Általában 25-40 másodperc alatt beáll egy stabil egyensúly, azaz a konfidenciaellipszis területe már nem nő számottevően. Viszont a túl sokáig tartó mérés (különösen a sérült páciensek esetén) a fáradás vagy a figyelem lankadása következtében „zajt” vihet a mérésbe. Ezek alapján 30 másodperc az ajánlott mérési időtartam. [7]
2.5. A stabilometria alkalmazása: kutatási eredmények A továbbiakban néhány stabilometrián alapuló kutatási eredményen keresztül bemutatom a módszer gyakorlati alkalmazásait.
8
2.5.1. BILATERÁLIS TÉRDÍZÜLETI KOPÁS HATÁSA AZ EGYENSÚLYOZÓKÉPESSÉGRE A térdízületi kopás az egyik legelterjedtebb ortopédiai kór, az idős népesség 10%-át érinti. Az 5. ábra az egészséges és a kopott térdízület közötti különbséget mutatja. A testtartásra és a testtartás stabilitására gyakorolt biomechanikai hatásait széles körben vizsgálták és vizsgálják. Kevés tanulmány foglalkozik a bilaterális (mindkét lábat érintő) térdízületi kopás testtartás stabilitására gyakorolt hatásairól. A bilaterális térdízületi kopásban szenvedő páciensek statikus és dinamikus egyensúlyát vizsgáló tanulmányok megállapították, [8] hogy az unilaterális (csak az egyik lábat érintő) térdízületi kopásban szenvedő páciensekhez hasonlóan csökken a testtartás stabilitása. A mérési eredmények az unilaterális és bilaterális térdízületi betegek között szignifikánsan különbözhetnek. Bilaterális térdízületi kopásban szenvedő betegek stabilometriás vizsgálattal mért értékeit kontrollcsoport mérési eredményeivel összehasonlítva megállapítható [9], hogy egyes stabilometriai paraméterek között az eltérés szignifikáns, de az összes paramétert együtt tekintve az eltérés már nem szignifikáns. A térdízületi kopásban szenvedő betegek esetén a CoP által megtett út szignifikánsan hosszabb, mint a kontrollcsoport értékei. CoP ML irányú amplitúdója és SPR értéke szignifikánsan nagyobb a térdízületi kopásban szenvedő betegek esetén. A bilaterális térdízületi kopásban szenvedő betegek egyensúlyozás közben ML irányban több mozgást végeznek, mint az egészséges kontrollcsoport tagjai.
5. ábra. Térdízületi kopás (osteoarthritis)2
2
A kép forrása: http://www.regenexx.com/knee-surgery-alternative/osteoarthritis-knee/
9
2.5.2. UNILATERÁLIS TÉRDÍZÜLETI KOPÁS HATÁSA A TESTTARTÁS STABILITÁSÁRA
6. ábra. Súlyos térdízületi kopásos páciens stabilometriás vizsgálata [10]
A tanulmány célja [10] különböző súlyosságú unilaterális térdízületi kopásban szenvedő betegek egyensúlyozó képességének vizsgálata kétlábon állás közben. A betegeket röntgenfelvételek alapján két csoportba osztották: az első csoportba azok kerültek, akik a Kellgren-Lawrence skála szerinti III. kategóriába („súlyos” ízületi kopás) tartoztak; a második csoport tagjai ugyanezen skála alapján IV+ fokozatú, azaz „nagyon súlyos” kategóriába estek, ők a fájdalom és a mozgás korlátozottsága miatt képtelenek segítség nélkül néhány percnél tovább sétálni. A 6. ábra súlyos térdízületi kopásos beteg vizsgálatát mutatja. Az eredmények alapján látható, hogy az érintett oldal szerepe a teherviselésben lényegesen kisebb, mint az egészséges oldalé, ezt a konfidenciaellipszis ML irányú tengelyének megnövekedése is jelzi. A 95%-os konfidenciaellipszis területe a nagyon súlyos kategóriában található betegek esetén közel kétszeres (7. ábra).
10
7. ábra. Különböző paraméterek átlagos értéke a két csoportban [10]
A mérési eredmények alapján megállapítható, hogy a 30 másodperces kétlábon állás tesztje a legsúlyosabb térdízületi kopásban szenvedő betegek esetén is elvégezhető. A testtartás stabilitása a térdízületi kopás romlásával romlik, a térdízületi kopás hatása stabilometria segítségével is elemezhető. 2.5.3. BOKATÖRÉS UTÁNI FELÉPÜLÉS VIZSGÁLATA STABILOMETRIÁVAL A [11] bokatörés kezelésének hatásvizsgálatával foglalkozó tanulmány célja annak megállapítása, hogy a bokatörés miatt műtött páciensek testtartás-stabilitása rosszabb-e a hasonló korú és nemű kontrollcsoporténál. A vizsgált személyek egyensúlyozóképességét a műtét után 14 hónappal vizsgálták egy lábon, nyomásmérő platformon történő állás közben, a CoP elmozdulását az idő függvényében mérték. 14 hónappal a műtét után a betegek 26%-a egy lábon sem volt képes megállni, míg a kontrollcsoport minden tagja teljesítette a feladatot.. Az élettartam jelentősen korrelált a teszt sikertelenségével, különösen a 45 év feletti korosztály esetén. Ha a beteg meg tudott állni egylábon, akkor nem volt szignifikáns különbség CoP mozgásaiban és sebességében a kontrollcsoport értékeihez képest.
2.6. A Zebris erőeloszlás-mérő berendezés helyettesítése A stabilometriai mérésekre széles körben elterjedt a Zebris FDM-S erőeloszlás-mérő berendezés használata. Ennek helyettesítésére Nagymáté és munkatársai már tettek kísérletet. [12] Egy, a Zebris-nél jóval olcsóbb eszközzel, a Nintendo Wii Balance Board-dal (8. ábra) mérték a CoP mozgását. Ennek az eszköznek a négy lábánál egyegy erőmérő szenzor található. Az ezekkel mért értékekből a szenzorok pontos távolságának ismeretében számolható a CoP. A számítógéppel való összeköttetést a beépített Bluetooth modul biztosította, a CoP adatokból Labview program számolta a 11
különböző paramétereket. A Nintendo Wii Balance Board 40 Hz frekvencián mér. Ahhoz, hogy a használhatóságát meghatározzák, hitelesítő mérések végzésére volt szükség.
8. ábra. Nintendo Wii Balance Board [12]
A mérések előtt az eszközt kalibrálták, mert a CoP paraméterek számolásakor fontos, hogy az eredmény milliméterben adódjon. Ehhez az kell, hogy az erőszenzorok által mért értékekkel SI mértékegységben, kg-ban számoljanak tovább. A kalibráció során az eszköz szenzorait ismert tömegekkel (1,5 kg; 3 kg; 5 kg; 10 kg) terhelték, és a kimenet különbségét vizsgálták a terheletlen állapothoz képest. Megállapították, hogy a mért kimenő adat mértékegysége dekagramm. Ezzel az információval a CoP már számolható. A mérések során a 25 alanyt külön mérték a Nintendo Wii Balance Board-on és a Zebris-en. Mindkét eszközön 60 másodperc hosszú méréseket végeztek, két lábon állás pozícióban, nyitott szemmel, két lábon állás pozícióban, csukott szemmel és egy lábon állás pozícióban. Mivel a biomechanikai mérések nem reprodukálhatók, összehasonlítási alapként megbízható CoP paramétereket választottak: a 95%-os konfidenciaellipszis területét, a mérés során a CoP által bejárt út hosszát, és az AP és ML irányokban az átlag pozíciótól való eltérés szórását. A mérési eredményeket t-próbával (szignifikancia szint: 0,05) összehasonlítva vizsgálták, hogy kimutatható-e statisztikailag jelentős különbség. A vizsgált paraméterek közül a mérés során bejárt úthossz nem felelt meg a t-próbán, tehát a két eszközzel mért adatokból számított eredmények között jelentős különbség volt. A többi vizsgált paraméter nem mutatott statisztikailag jelentős különbséget. Figyelembe kell venni, hogy az úthossz természeténél fogva akkumulálhatja az egyensúlyozás véletlenszerű hibáit, a többi vizsgált paraméter –amelyek jó eredményeket mutattak–, pedig összesítő jellegű mérőszám, amelyek kevésbé érzékenyek ezekre a hibákra, ezért alkalmasabbak a statisztikai jellegű összevetésekre. Arra a következtetésre jutottak, hogy a Nintendo Wii Balance Board egy olcsó alternatívája lehet a drága erőeloszlás-mérő készülékeknek a srabilometriai mérésekhez. 12
3. HARDVER 3.1. Mérleg A kiindulóeszköz egy Beurer PS 240 típusú, személymérésre alkalmas fürdőszobai mérleg (9. ábra). Maximális terhelhetősége 180 kg, felbontására a gyártó 50 g-ot ad meg.
9. ábra. Beurer PS-240 mérleg3
A feladathoz fölösleges alkatrészeket a kijelzőt és tartozékait a mérlegből eltávolítottuk. Az eszközben található négy mérőcella nyúlásmérő bélyeggel működik. A cellára nehezedő súlyerő a nagyságával arányos alakváltozást idéz elő, a nyúlásmérő bélyeg ellenállása a nyúlás hatására megváltozik: (3) ahol R az ellenállás, ρ a vezető anyag fajlagos ellenállása, l a vezető hossza, A a vezető keresztmetszete. Ha a bélyeg megnyúlik, akkor a nyúlásmérő ellenállás hossza nő, keresztmetszete pedig csökken, így az ellenállása nagyobb lesz. Az ellenállás relatív megváltozása egyenesen arányos a relatív megnyúlással: (4)
3
A kép forrása: https://www.beurer.com/web/en/products/weight/Personal_scales/PS-240-soft-grip
13
ahol ΔR a változó ellenállás értékének változása, R a változó ellenállás értéke terheletlen állapotban, k a bélyegtényező vagy nyúlási tényező, ε a relatív megnyúlás. A bélyegre a nyúlásmérő ellenállást a 10. ábrán látható módon olyan sűrűséggel viszik fel, hogy a nyúlás irányában az összhossza minél nagyobb legyen. Így adott megnyúlás, azaz adott terhelés jóval nagyobb ellenállásváltozást okoz, tehát a szerkezet érzékenysége nő.
10. ábra. Nyúlásmérő bélyeg4
3.2. Wheatstone-híd A terhelés arányos ellenállásváltozást okoz, amelynek változása Wheatstone-híd segítségével feszültségjellé alakítható.
11. ábra. Wheatstone-híd5
A a 11. ábrán látható elrendezés esetén a kimeneten mérhető feszültség: (5) ahol Uki a kimeneti feszültség, Ube a bemeneti feszültség, ΔR a változó ellenállás értékének változása, R a változó ellenállás értéke terheletlen állapotban.
A kép forrása: http://www.kyowa-ei.com/eng/product/category/strain_gages/kfv/index.html Az ábra forrása: Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék, dr. Dabóczi Tamás: Beágyazott rendszerek 4 5
14
A hidat Ube feszültség alá helyezve mérjük az Uki feszültséget. Ebből az (5) képlettel a keresett változó ellenállás számítható. Látható, hogy egy darab változó ellenállás esetén a mért feszültség és az ellenállás változásának viszonya nem lineáris. A viszony lineárissá tehető két, ellentétesen változó ellenállás használatával, a 12. ábra szerinti elrendezésben:
12. ábra. Wheatstone-híd két változó ellenállással6
A kimeneten mérhető feszültségre igy a következő adódik: (6) ahol Uki a kimeneti feszültség, Ube a bemeneti feszültség, ΔR a változó ellenállás értékének változása, R a változó ellenállás értéke terheletlen állapotban. A Beurer mérlegben cellánként két változó ellenállás, egy félhíd van. Ez biztosítja a linearitást, de a híd másik felét meg kellett építenem.
13. ábra. A végső mérőhídelrendezés
Az ábra forrása: Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék dr. Dabóczi Tamás Beágyazott rendszerek 6
15
Terheletlen állapotban a híd kiegyenlített kell, hogy legyen. Ez azt jelenti, hogy a kimeneti feszültség az A+ és A- pontok között 0. A híd akkor van kiegyenlítve, ha a szemközti ellenállások szorzata megegyezik. Ha a cellában lévő két ellenállás terheletlen állapotban egyenlő, akkor ehhez elég két egyforma ellenállást bekötni. Ezt a célt szolgálja a két, 1 kΩ nagyságú ellenállás. Ha a legyártott mérőcellában a két ellenállás nem teljesen egyforma, vagy az 1 kΩ -os ellenállások kicsit eltérnek az 1000 Ω-tól, akkor terheletlen állapotban 0-tól különböző értéket mérünk. Ezt az offset-et egy potenciométer és egy, a 13. ábrán R-rel jelölt ellenállás beiktatásával módosíthatjuk. A potenciométer változtatásával a bal oldali feszültségosztót lehet állitani. Az R ellenállás 1 kΩ-nál lényegesen nagyobb, hogy az osztó arányát viszonylag finoman lehessen állitani. A potenciométer kézzel történő állítása a teljes pontosságot nem garantálja, de az offset nullázására a Labview programban van lehetőség. Az A+ és A- pontokhoz csatlakozó vezetékek a feszültségjelet az ADC felé viszik tovább, az E+ és E- pontokhoz csatlakozó kábelek pedig a mérőhíd bemeneti feszültségét adják, szintén az ADC-vel vannak összekötve.
3.3. ADC Az analóg-digitális átalakító (analog-digital converter: ADC) HX711 típusú (14. ábra).
14. ábra. HX7117
A HX711 egy precíziós, 24 bites, két csatornás ADC, amit mérőhidas mérlegekhez terveztek. A bemeneti oldalon egy multiplexer választja ki az A vagy a B csatornát, és az adatot egy programozható erősítőbe továbbítja (programmable gain amplifier: PGA). Az A csatorna erősitése 128 vagy 64, ez programozható, a B csatorna erősitése fixen 32. Az órajel lehet külső órajelforrás, de ha erre nincs külön szükség, a chipre épített oszcillátor is szolgáltathatja.8 A kimenő digitális adat frekvenciája állítható: 10 Hz A kép forrása: http://www.dx.com/p/hx711-weighing-sensor-module-green384154#.WEiuEvnhCUl 8 Forrás: HX711 adatlapja: https://cdn.sparkfun.com/datasheets/Sensors/ForceFlex/hx711_english.pdf 7
16
vagy 80 Hz lehet. A chip jobb felső sarkában a 0 ohm-os ellenállás helyzetét a 80 Hz jelzésnél rögzítve az ADC másodpercenként 80 jelet továbbít. Ezzel a 15-ös, „RATE” láb értéke 0-ról 1-re változik, ami a 80 Hz-nek felel meg. A HX711 két csatornás, de az A és B csatornát nem lehet szinkronban kiolvasni. Ha a két csatornát egyszerre használjuk, ugyanúgy másodpercenként 80 adatot továbbít az ADC, de a két csatorna között elosztva. Tehát ha a 4 mérőcellához 2 ADC-t használnánk, 1 másodperc alatt összesen 40 adatot kapnánk az egyik, és 40 adatot a másik cellából. Ráadásul az adatok nem lennének szinkronban. Ezért összesen 4 darabot kell használni, mindegyiknek az A csatornáját, 128-as erősítéssel. A 4 ADC egy lapra van forrasztva. Mindegyik chip A+, A-, E- és E+ lábához a mérőhíd megfelelő vezetékei csatlakoznak. A kimeneti oldalon az adat (DT) lábakhoz minden chip-nél külön vezeték csatlakozik, a tápfeszültség (VCC), föld (GND) és órajel (SCK) lábak össze vannak kötve, és mindegyiket csak egy-egy, közös vezeték reprezentál. Így tehát összesen 7 vezeték megy tovább a mikrokontroller felé, ezeket egy tíz eres vezetékköteg fogja össze.
3.4. Arduino Az ADC-ket a számítógéppel egy Arduino Uno mikrokontroller (15. ábra) kapcsolja össze.
15. ábra. Arduino Uno mikrokontroller9
Az Arduino USB kábellel van összekötve a számítógéppel. Ezen keresztül kapja a tápfeszültséget, és ezen zajlik a kommunikáció is. A mikrokontroller az analóg ill. digitális lábak valamelyikén kimenetként küldi az órajelet az ADC-knek. További 4 lábon bemenetként érkezik az adat jel a chipekből az Arduinoba. Hogy a 7 vezetéket 9
A kép forrása: http://www.arduino.org/products/boards/arduino-uno
17
ne kelljen minden használat előtt egyesével bedugni az Arduino megfelelő lábaiba, egy lapra forrasztottam őket a megfelelő pozícióban. Így elég egyszer összeilleszteni ezt a tüskés lapot az Arduino-val. Ezt a 16. ábra mutatja.
16. ábra. A vezetékek rögzítése
18
4. SZOFTVER 4.1. Arduino program Az Arduino program feladata, hogy az ADC-k 24 bites digitális jelét kg értékekre konvertálja, és ezeket az eredményeket valós időben továbbítsa a számítógépnek a soros porton. A tápfeszültség és a föld lábakon kívül öt adat lábat használ az Arduino működés közben. Négyet input módban, ezeken érkezik az adat az ADCktől, egyet output módban, ez adja az órajelt az ADC-nek. A pontosan 80 Hz-es kiolvasáshoz szükség van megszakításos időzítzésre, melyhez a TimerOne könyvtárat az Arduino weblapjáról10 töltöttem le. Ezzel beállítottam, hogy 12500 μs-onként, azaz másodpercenként 80-szor küldjön egy interruptot, ami a process_enable változó értékét 1-re állítja. Az adatkiolvasás legelején ez a változót 0 értéket vesz fel, és csak akkor kezdődik el a következő kiolvasás, ha ennek a változónak az értéke 1. Ezzel a módszerrel a kiolvasás pontosan 80 Hz-es frekvencián történik. Az ADC mért értékének kiolvasása órajel impulzusokra történik.. A kiolvasás megértéséhez a HX711 adatlapja szükséges. Eszerint ha a kimenő adat még nincs kész a kiolvasásra, a DOUT, tehát az adat láb magas értéken van. Amikor az adat kiolvasásra kész, a DOUT láb alacsony feszültségi szintre kerül. Minden impulzus az órajelen egy bit információt shiftel ki, kezdve az MSB bittel. Összesen tehát 24 impulzusra van szükség a teljes adat kiolvasásához. A 17. ábra oszcilloszkópon vizsgálva mutatja az ADC adatjelét (2. csatorna – világoskék) és órajelét (1. csatorna – narancs). Az időtengely osztása 5 msos, jól látható a 12,5 ms-os periódusidő, ami a 80 Hz-es mintavételi frekvenciának felel meg. Azt is megfigyelhetjük, hogy az adatjel mindaddig magas értéken marad, amig nem áll készen az adat a kiolvasásra. Látható, hogy az adatkiolvasás a periódusidőnek igen kis hányadát teszi ki, a maradék idő tartalék az egyéb elvégzendő számításokra. A 18. ábra ugyanezt mutatja, 50 μs-os időléptékkel. A kiolvasás során egymást követő órajelimpulzusok jól megfigyelhetők.
10
http://playground.arduino.cc/Code/Timer1
19
17. ábra. Az ADC adat- és órajele oszcilloszkópon, 5 ms-os időléptékkel11
18. ábra. Az ADC adat- és órajele oszcilloszkópon, 50 μs-os időléptékkel12
11 12
A kép forrása: MOGI tanszék oszcilloszkópja A kép forrása: MOGI tanszék oszcilloszkópja
20
A 24 impulzus után adott további impulzusokkal a következő kiolvasást lehet beállítani. Ennek a lehetőségeit, és a kiolvasás órajeltől való függését a HX711 adatlapjában található 19. ábra mutatja. A kiolvasás elején, ha bármelyik adat láb magasban van, a program vár, amíg mindegyik lábon kész a kiolvasandó adat. A kiolvasás során a program egy impulzusra egymás után mind a 4 ADC-n megjelenő 1 bitet shiftel ki, és tárol el. Ezt 24-szer ismételve kiolvastuk az összes adatot, és még 1 impulzust adunk, hogy a következő adat is 128-as erősítési (gain) értékkel, az A csatornán jöjjön. Egy 24 bites adat a kiolvasás után 3 byte formájában áll rendelkezésre, kettes komplemens ábrázolásban. Ebből a 3 byte-ból 32 bites nyers adatot képez a program. Végül a nyers adatból az offset értékeket levonva, és az eredményt egy kg/bit értékkel megszorozva kapjuk a kg értéket. A négy szenzorból megkapott kg értékeket tabulátor karaketerrel elválasztva ASCII kódolású két tizedesig ábrázolt lebegőpontos számként, sortöréssel lezárva küldi a soros porton. Ha a soros porton „t” karakter érkezik, a program táráz. Ez az offsetelést jelenti, tehát az aktuálisan mért értékeket elmenti, és ezután minden mért értékből ezeket vonja le.
19. ábra. HX711 adat output13
4.2. Labview program A Labview programnak három fő feladata van. Az első az Arduino által a soros porton küldött adatok fogadása. Ezen kívül elvégzi az adatok folyamatos, valós idejű feldolgozását, és a mérés utólagos kiértékelését.
Az ábra forrása: HX711 adatlap: https://cdn.sparkfun.com/datasheets/Sensors/ForceFlex/hx711_english.pdf 13
21
4.2.1. SOROS PORTI KOMMUNIKÁCIÓ Az Arduino és a Labview közötti kommunikáció soros porton történik. Ahhoz, hogy a Labview-ban a soros porti kommunikációhoz szükséges VI-okat használhassuk, szükség van az NI-VISA bővítményre14. Az Arduino felismerése egy AutoDetectArduino subVI feladata, melyet készen töltöttem le.15 A kiolvasott adatok továbbítása a 20. ábra szerinti Producer-Consumer struktúrában történik. Ez két ciklust jelent, a Producer ciklus kiolvassa a soros porton megjelenő adatot, és egy, a ciklusokon kívül, a program indításakor létre hozott queue (adatsor)-hoz csatolja. A Consumer ciklus a queue-ban aktuálisan következő elemet kiolvassa a queue-ból. Ezután ebben a ciklusban történik az adatsor feldolgozása. A srtuktúra nagy előnye, hogy a két ciklus futása időben teljesen elkülönül. Jelen programban azért van szükség a struktúra alkalmazására, hogy biztosan minden adatsor feldolgozásra kerüljön. Ha valami miatt a processzor pillanatnyilag leterhelődik, előfordulhat, hogy az adatok feldolgozása tovább tart a másodperc nyolcvanad részénél. A beolvasást viszont nem lehet késleltetni, a soros porton az adat stabilan 80 Hz frekvencián érkezik. Ekkor a beolvasott adat nem veszik el, hanem bekerül a queue-ba, a feldolgozás pedig a beolvasástól független ütemben zajlik.
NI VISA letöltése: http://search.ni.com/nisearch/app/main/p/bot/no/ap/tech/lang/hu/pg/1/sn/ssnav:dwl/q/ni%20visa/ 15 A VI forrása: https://raw.githubusercontent.com/marcomauro/ArduinoLabVIEW/master/arduinoLabVIEW/auto_detect_arduino.vi 14
22
20. ábra. Producer - Consumer struktúra
A program Producer ciklusa a soros porton beérkező adatot soronként kell, hogy tovább küldje a queue-ba. Egy adatsor a négy mérlegcellán mért kg értékből áll, tabulátorokkal elválasztva, sortöréssel a végén. A soros port olvasása meghatározott időközönként történik a ciklusban, de nem garantált, hogy pontosan ilyen időközönként jelenik meg új sor. Ezért a kiolvasáskor a program figyelembe veszi, hogy van-e sortörés az aktuálisan a portról beolvasott adatban, és ennek megfelelően a queue-ba továbbított adat az előzőleg beolvasott adat sortörés utáni, és az aktuálisan beolvasott adat sortörés előtti részének összefűzése lesz. Így a queue-ba, és onnan a Consumer ciklusba biztosan értelmes, egész sorok jutnak el, amelyek egy időpillanatban a négy cellán mért négy kg értéket tartalmazzák.
23
21. ábra. A kész program Producer ciklusa
Ezen kívül a Producer cikluson (21. ábra) belül van lehetőség a soros porton adatot küldeni az Arduinonak. Ha a Labview programban tárázást nyomunk, ezen a csatornán egy „t” karaktert továbbítunk, ami az Arduino programban a tárázást jelenti. 4.2.2. ADATFELDOLGOZÁS Az adatok feldolgozásával kapcsolatos minden művelet elvégzése a Consumer cikluson belül történik. A queue-n beérkező kg adatokból a program valós időben CoP koordinátákat számol a (7) és (8) képletek alapján, és ezeket egy grafikonon kijelzi. (7)
(8) ahol Cx és Cy a CoP x ill. y koordinátája mm-ben, m1, m2, m3, m4 a 4 cellára eső érték kg-ban, m a négy szenzor adat összértéke, a és b a szenzorok közötti távolság vízszintes ill. függőleges irányban, a 22. ábra szerint.
22. ábra. A mérleg méretei és a mért értékek jelölése
24
Mérés közben a program a queue-n érkező aktuális adatsort minden ciklusban hozzácsatolja egy tömbhöz, ami a mérés kezdete óta az összes adatsort tartalmazza. A mérés végeztével ez a tömb a kiértékeléshez szükséges összes adatot tartalmazza. 4.2.3. KIÉRTÉKELÉS A mérés után lehetőség van a mért kg adatok és a számított CoP koordináták exportálására szöveg formátumban. A kg adatokon opcionálisan medián szűrés végezhető. Ilyenkor az egy cellához tartozó kg értékek helyére az adott érték 2 sugarú környezetének mediánja kerül. Erre a cellák véletlenszerű hibájából adódó kiugró értékek kiszűrése miatt van szükség. A helyes adatokban ez szinte semmilyen torzítást nem okoz, mivel a mérési időtartam nagy részében az értékek monoton változnak (vagy csökkennek, vagy nőnek), és ekkor a medián szűrés a sorozat eredeti elemét adja vissza. A CoP koordinátákon digitális aluláteresztő Butterworth szűrés végezhető, 10 Hz levágási frekvenciával, Ruhe és munkatársai ajánlása [13] alapján. Ennek célja a zajszűrés, nagy jelentősége van a CoP úthossz és a CoP maximális sebességének számításakor. Lehetőség van a szűrt és szűretlen adatok mentésére is, ezt a program kezelőfelületén (23. ábra) minden mentés előtt kiválaszthatjuk.
23. ábra. A program kezelőfelülete
A program az alábbi paramétereket számítja az éppen mért adatokból, vagy egy betöltött, tetszőleges CoP adatokat tartalmazó szövegfájlból: Távolság típusú paraméterek: 95%-os konfidenciaellipszis tengelyeinek aránya
95%-os konfidenciaellipszis területe
CoP maximális sebessége
CoP által a mérés során bejárt út hossza
AP-LM irányban bejárt távolság aránya 25
ML irányban bejárt távolság
AP irányban bejárt távolság
CoP pozíció maximum eltérése az átlagtól a +AP felsíkban
CoP pozíció maximum eltérése az átlagtól a – AP félsíkban
Frekvencia típusú paraméterek:
Legnagyobb amplitúdó AP irányban
Legnagyobb amplitúdó ML irányban
Átlagos frekvencia AP irányban
Átlagos frekvencia ML irányban
AP-ML teljesítmény aránya
A program Front Panel-jén, a számított paraméterek mellett a CoP trajektóriát, az ML és AP pozíciót, ML és AP irányú sebességet, és ezen pozíciók és sebességek frekvenciaspektrumát is láthatjuk, a 24. ábra szerinti elrendezésben.
24. ábra. A mérés kiértékelése a Front panel-en
A paraméterek a kiértékelés után egy szövegmezőből egyszerűen kimásolhatók szövegfájlba, vagy Excel munkafüzetbe.
26
5. KALIBRÁLÁS, HITELESÍTÉS 5.1. Kalibrálás A kalibrálás egyrészt az offset (terheletlen állapotban mért értékek) kinullázását, azaz a mérleg tárázását jelenti. Ez a 4.1. és a 4.2.1 fejezetben bemutatott Labview programban minden mérés előtt egy kattintással elvégezhető. Másrészt a kalibráció 4.1. fejezetben említett kg/bit értékek meghatározását jelenti. Ezek a cellánként külön meghatározott értékek, amelyekkel a mért bitértéket be kell szorozni, hogy kg-ban értelmezhető mennyiséget kapjunk. A kalibrálás során a mérleget ismeretlen rendszernek tekintettem, a kimenetet ismert bemenetekre vizsgáltam. Kijelöltem a mérleg közepét, vagyis azt a pontot, ami mind a négy cellától egyenlő távolságra van. A kalibráció alapgondolata, ha a mérleget ezen a ponton terheljük, akkor mind a négy kg érték a terhelés tömegének negyede. Egy előterhelésként szolgáló tömeg esetén a mérlegen néztem a soros porton érkező bitértékeket. Ezután különböző súlyokkal terheltem a mérleget, és rögzítettem a bitértékeket (25. ábra). A (9) egyenlet a kg/bit érték kiszámítását adja meg egy cellára: (9) ahol m a terhelő tömeg kg-ban, bt a terhelt állapotban 1 mp időintervallumban érkező bitértékek átlaga, be az előterhelt állapotban 1 mp időintervallumban érkező bitértékek átlaga.
27
25. ábra. A mérleg terhelése kalibráció közben
A terhelésként használt tömegek nagyságát 10 g-os felbontású mérleggel határoztam meg. Négy különböző terhelés használatával, összesen négyszer ismételtem meg a mérést. Így összesen 16 érték átlagából adódott minden cellára a kg/bit érték. Ez az 1. táblázatban található. 1. táblázat. A kalibrációs mérések eredménye
összterhelés (kg) 1. mérés 1. mérés 1. mérés 1. mérés 2. mérés 2. mérés 2. mérés 2. mérés 3. mérés 3. mérés 3. mérés 3. mérés 4. mérés 4. mérés 4. mérés 4. mérés átlag
14.76 27.13 34.58 44.56 14.76 27.13 34.58 44.56 14.76 27.13 34.58 44.56 14.76 27.13 34.58 44.56
1 cellára eső terhelés (kg) 3.69 6.78 8.64 11.14 3.69 6.78 8.64 11.14 3.69 6.78 8.64 11.14 3.69 6.78 8.64 11.14
a1
a2
a3
a4
0.0000210 0.0000226 0.0000212 0.0000229 0.0000215 0.0000231 0.0000216 0.0000231 0.0000214 0.0000221 0.0000235 0.0000229 0.0000219 0.0000217 0.0000231 0.0000233 0.0000223
0.0000259 0.0000259 0.0000242 0.0000242 0.0000252 0.0000258 0.0000241 0.0000246 0.0000241 0.0000236 0.0000241 0.0000246 0.0000235 0.0000244 0.0000247 0.0000237 0.0000245
0.0000228 0.0000234 0.0000219 0.0000226 0.0000228 0.0000238 0.0000223 0.0000233 0.0000230 0.0000228 0.0000235 0.0000237 0.0000229 0.0000229 0.0000241 0.0000241 0.0000231
0.0000220 0.0000232 0.0000218 0.0000230 0.0000215 0.0000228 0.0000214 0.0000227 0.0000220 0.0000219 0.0000227 0.0000228 0.0000218 0.0000220 0.0000229 0.0000227 0.0000223
28
Az a1, a2, a3 és a4 rendre az 1., 2., 3. és 4. mérlegcellára vonatkozó érték.
5.2. Hitelesítés Az eszköz megfelelően működése a hitelesítéssel ellenőrizhető, amely jelen esetben ez Mozgáslaboratóriumban található a Zebris FDM- P talpnyomás eloszlásmérő lappal történő összehasonlító mérést jelenti. A hitelesítés során a Zebris erőeloszlás-mérőt a fejlesztett mérlegre helyeztem, a mért személy a Zebris-en állt, a súlya a Zebris-en keresztül egy az egyben átadódott a mérlegre. A mérési elrendezést a 26. ábra mutatja.
26. ábra. A mérési elrendezés
A vizsgálat célja, hogy a két eszközön meghatározott nyomásközéppont (CoP) koordináták és az ezekből számítható különböző paraméterek egyezőségét ellenőriztem. Összesen 10 mérést végeztem, 4 mérést két lábon állás pozícióban, nyitott szemmel, 2 mérést két lábon állás pozícióban, csukott szemmel, 2 mérést egy lábon állás pozícióban. A hitelesítésbe egy speciális esetet is bevontam, mikor a vizsgált személy két lábon állás pozícióban, nyitott szemmel állt, de szándékosan nagy, hirtelen mozdulatokat tett. Ebből is két mérés történt. A 27. ábra egy mérés során a két eszközzel mért nyomásközéppont x koordinátáit (ML irány) mutatja. A két grafikon vízszintes tengelyekének eltérő skálája a mintavételi frekvencia eltéréséből adódik. A 60 mp alatt a Zebris 3157 mintát vett (kb 52,6 Hz mintavételi frekvencia), míg a mérleg 4806-ot (80,1 Hz). 29
27. ábra. A Zebris és a mérleg által mért CoP x koordináták egy mérés alatt
A CoP koordinátákból az alábbi paramétereket számoltam:
95%-os konfidenciaellipszis tengelyeinek aránya
95%-os konfidenciaellipszis területe
CoP maximális sebessége
CoP által a mérés során bejárt út hossza
AP-LM irányban bejárt távolság aránya
Legnagyobb amplitúdó AP irányban
Legnagyobb amplitúdó ML irányban
CoP pozíció maximum eltérése az átlagtól a +AP félsíkban
CoP pozíció maximum eltérése az átlagtól a – AP félsíkban
AP-ML teljesítmény aránya
Átlagos frekvencia AP irányban
Átlagos frekvencia ML irányban 30
Paraméterenként és mérésenként a mérleggel mért CoP értékekből számított paraméter és a Zebris eszközzel mért CoP értékekből számított paraméter arányát számítottam, azaz mind a 12 paraméterre összesen 10 arányszám állt rendelkezésemre (28. ábra). Ideális esetben az arányszám 1 (mindkét mérés értéke azonos).
28. ábra. A Zebris és a mérleg által mért értékekből számított paraméterek aránya paraméterenként
A 28. ábra alapján látható, hogy az 5. és a 6. mérés esetén az eltérés több paraméterre is kiugró. Ennek oka lehet, hogy a két eszköz a mérés közben egymáson kicsit elcsúszott. E két kiugró mérés eredményével a továbbiakban nem számoltam. A megmaradt 8 mérés alapján számolt átlagokat és szórásokat, valamint az egészséges kontrollcsoport relatív szórását [3] a 2. táblázat mutatja. 31
2. táblázat. A mérleg és a Zebris mérési adataiból számolt paramétererek arányának átlaga és szórása
átlag
szórás
egészséges kontrollcsoport relatív szórása [3]
95%-os konfidenciaellipszis tengelyeinek aránya
98,46%
6,04%
25,66%
95%-os konfidenciaellipszis területe
76,59%
5,23%
32,44%
CoP maximális sebessége
91,88%
3,98%
26,27%
CoP által a mérés során bejárt út hossza
85,09%
4,81%
9,23%
AP-LM irányban bejárt távolság aránya
100,02%
5,46%
27,02%
Legnagyobb amplitúdó AP irányban
88,98%
6,10%
25,16%
Legnagyobb amplitúdó ML irányban
89,17%
2,25%
26,62%
CoP pozíció maximum eltérése a +AP félsíkban
85,94%
5,53%
25,17%
CoP pozíció maximum eltérése a – AP félsíkban
91,06%
2,62%
26,10%
AP-ML teljesítmény aránya
101,18%
11,95%
61,97%
Átlagos frekvencia AP irányban
104,77%
5,97%
34,11%
Átlagos frekvencia ML irányban
96,31%
7,09%
36,33%
paraméter
A relatív szórás jelentése, hogy teljesen egészséges tesztalanyok eredményében ekkora szórásra lehet számítani az átlaghoz képest, és megegyezik a várható értékhez való arány szórásával, ha a várható értéket az átlaggal becsüljük. Tökéletesen megbízható mérés esetén minden mérési eredmény azonos lenne, tehát ez az érték 0 lenne. Az általam számolt szórás az ideálishoz való arány szórása, ha a Zebris eszközzel történő méréséből számított paramétereket etalonnak tekintjük (hiszen a Zebris eszköz hitelesített, és a cél ennek helyettesítése). Jelentése a mérleggel és a Zebris eszközzel mért adatokból számított paraméterek arányának a szórása. Ha a mérleg tökéletesen megbízhatóan mérne, akkor ez az arány minden mérésre ugyanannyi lenne, és a szórás 0 lenne. (Ez azt jelentené, hogy a mérleg nem biztos, hogy pontosan azt méri, mint a Zebris eszköz, de mindig pontosan 32
ugyanannyiszorosát). Ez alapján a két szórás összehasonlítása fontos. Az általam számolt, a mérleg megbízhatóságát jellemző szórás minden paraméterre jóval kisebb, mint az egészséges kontrollcsoport szórása, a mérleg pontatlansága egy mérés(sorozat) eredményét érdemileg nem befolyásolhatja. Az 2. táblázat „átlag” oszlopa azt mutatja meg, hogy az adott paramétert a mérleg és a Zebris méréséből számolva mekkora arányos eltérést kapunk. Ideális esetben ennek minden paraméterre 100%-nak kellene lennie. Ez az érték több paraméter esetében lényegesen a 100%-tól. Ennek oka az eltérő mérési frekvencia lehet, aminek hatását a szűrés nem tudja teljesen kompenzálni. Ez azt mutatja, hogy a mérleggel és a Zebris eszközzel mért eredményeket nem lehet egymással összehasonlítani.
33
6. ÖSSZEFOGLALÁS, EREDMÉNYEK ÉRTÉKELÉSE 6.1. Eredmények A munkám célja a BME MOGI Tanszékének mozgáslaboratóriumában stabilometriai mérésekhez használt Zebris nyomáseloszlás-mérő berendezés helyettesítésére alkalmas eszköz tervezése és megépítése. A feladatom részét képezte a méréshez szükséges programok elkészítése, majd a mérés hitelesítése. Egy fürdőszobai mérleget úgy alakítottam át, hogy a benne található négy erőmérő szenzor adataiból a rajta álló személy talpi nyomásközzépontja számolható. Ehhez a mérőcellák félhídjaihoz minden cellára megépítettem a mérőhíd másik felét, és beépítettem cellánként egy HX711 típusú analóg-digitális átalakítót. A mérőhidakat felépítő áramköri elemeket és az ADC-ket lapra forrasztottam. Az eszköz és a számítógép közötti kommunikációt egy Arduino Uno mikrokontroller biztosítja. Az Arduinora írt program a beérkező nyers, digitális adatból kg értékeket számít, melyeket soros porton a számítógép felé küldi tovább. Ennek a programnak a funkciója ezen kívül a mérleg tárázása is. A Labview programban az adatok beolvasását és feldolgozását Producer-Consumer struktúrával oldottam meg. Ez biztosítja, hogy az összes adatsor feldolgozásra kerüljön. A program kezelőfelületén a mért személy talpi nyomásközéppontjának mozgása real-time módon kirajzolódik. A mérés befejezése után a mérési adatok elemzése, a paraméterek számítása gombnyomásra történik. A mérések eredményekből a paraméterek bármikor számíthatók. Az eszköz kalibrálás után hitelesítő méréssorozatot végeztem. A saját eszközöm hitelesítéséhez a mérések során a Zebrist a mérlegre helyeztem, ami a két eszköz pontos összehasonlítását teszi lehetővé. A hitelesítés során a két eszközzel mért eredményekből számított paramétereket hasonlítottam össze. Az összehasonlítás alapján megállapítható, hogy a mérleg által mért adatokból számított paraméterek relatív szórása, azaz a mérés eszköz által okozott bizonytalansága az egészséges kontrollcsoport relatív szórásánál nagyságrendileg kisebb. Ez alapján a mérleggel mért adatok, és az azokból számolt paraméterek pontossága megfelelő arra, hogy klinikai méréseket végezzenek vele. Több paraméter esetében a mérleg bár kis szórással, de jelentős eltérést mutatott a Zebris eszközzel mért értékekből számított paraméterekhez képest. Ez azt jelenti, hogy a mérleggel végzett méréseket egymással összehasonlítva a pontatlanság jelentéktelen, de különböző eszközökön végzett méréseket nem szabad összehasonlítani. Egy méréssorozat egymással összehasonlítandó méréseit ugyanazzal az eszközzel kell végezni. 34
6.2. Továbbfejlesztési lehetőségek A mérleg és a hozzá írt program alkalmas stabilometria vizsgálatok elvégzésére. Elképzelhető, hogy valamilyen méréshez a mérlegnél nagyobb felületen szükséges a CoP mozgásának mérése. Ilyen esetben a dolgozatomban ismertetetthez teljesen hasonló megoldásokkal lehet eszközt építeni, vagy akár a meglévőt átalakítani. Ennek lehetséges módja, hogy a mérőcellákat nem a mérleg eredeti, műanyag borításába, hanem egy más keretbe helyezzük el. Ekkor a cellák távolsága, és ezzel a mérőfelület tetszőlegesen megválasztható. A Labview programban bemeneti adatként szerepel a cellák egymástól mért távolsága, ezt átírva a CoP és minden paraméter pontosan számolható.
35
7. FELHASZNÁLT FORRÁSOK [
G. Nagymáté és R. Kiss, „Parameter Reduction in the Frequency Analysis of Center of Pressure in Stabilometry,” Periodica Polytechnica Mechanical Engineering, %1. kötet60(4), pp. 238-246, 2016.
[
G. Nagymáté és R. Kiss, „Replacing redundant stabilometry parameters with ration and maximum deviation parameters,” Biomedical Engineering, 2016.
[
G. Nagymáté, R. Kiss és Z. Orlovits, „Reliability analysis of a sensitive and independent stabilometry parameter set”.
[
D. Laroche, A. Kubicki, P. J. Stapley, V. Gremeaux, K. Mazalovic, J. F. Maillefertű és et al., „Test-retest reliability and responsiveness of centre of pressure measurements in patients with hip osteoarthritis,” Osteoarthr Cartil, %1. kötet23:, p. 1357–66, 2015.
[
J. Takács, M. G. Carpenter, S. J. Garland és M. A. Hunt, „Test re-test reliability of centre of pressure measures during standing balance in individuals with knee osteoarthritis,” Gait Posture, %1. kötet40, p. 270–3., 2014.
[
H. M. M. M. N. H. E. I. T. S. e. a. Salavati M, „Test-retest reliabty of center of pressure measures of postural stability during quiet standing in a group with musculoskeletal disorders consisting of low back pain, anterior cruciate ligament injury and functional ankle instability,” Gait Posture, %1. kötet29., pp. 460-4, 2008..
[
F. Scoppa, R. Capra, M. Gallamini és R. Shiffer, „Clinical stabilometry standardizati-on: basic definitions - acquisition interval - sampling frequency,” Gait & Posture, %1. kötet37(2), pp. 290-292., 2013.
[
G. S. R. M. K. Ákos Pethes, „Effect of Bilateral, Severe Knee Osteoarthritis on Balancing Ability after Sudden Unidirectional Perturbation,” Biomed, 2014.
[
G. Nagymáté és R. Kiss, „Balancing strategy differences in bilateral knee osteoarthritis patients”.
1]
2] 3] 4]
5]
6]
7]
8] 9]
[ A. P. ,. G. S. ,. Z. B. ,. R. P. R. K. G. Nagymate, „The impact of the severity of 10] knee osteoarthritis on the postural stability,” Materials Today: Proceedings, %1. kötet3, p. 1069 – 1073, 2016. [ G. Nilsson, E. Ageberg, C. Ekdahl és M. Eneroth, „Balance in single-limb 11] stance after surgically treated ankle fractures: a 14-month follow-up,” BMC Musculoskeletal Disorders, %1. kötet7:35, 2006. 36
[ G. Nagymáté, B. Vámos és R. Kiss, „Validation of the Nintendo Wii Balance 12] Board for stabilometry measurements”. [ A. Ruhe, R. Fejer és B. Walker, „The test-retest reliability of centre of pressure 13] measures in bipedal static task conditions - A systematic review of the literature,” Gait&Posture, %1. kötet32(4), p. 436–445, 2010. [ „Takacs J, Carpenter MG, Garland SJ, Hunt MA. Test re-test reliability of 14] centre of pressure measures during standing balance in individuals with knee osteoarthritis. Gait$ßPosture 2014;40:270–3. doi:10.1016/j.gaitpost.2014.03.016.”.
37
8. SUMMARY Stabilometry is the study of postural stability through the analysis of foot center of pressure (CoP). Numerous neural or physiological alterations significantly modify postural stability, therefor CoP displacement can serve as the basis of biomechanical observations and medical diagnosis. Several parameters can be derived from the CoP. In the laboratory of BME MOGI postural stability measurements are carried out using a Zebris FDM-S force distribution plate. This device has some disadvantages: the original software is not customisable, the sampling frequency of the device is under 50 Hz, and the sampling is irregular. My goal was to design and build a device that can serve as a replacement of the Zebris force distribution plate for stabilometry measurements, and to write a program needed to use it. I used the data of four force sensors of a bathroom scale to calculate the CoP. To do that, i had to build the half of a Wheatstone bridge to every sensor, because the sensors contain only two changeable resistors. I built in a HX711 analog-to-digital converter for every sensor. The device communicates with the computer via an Arduino Uno microcontroller. The Arduino program converts the incoming raw measurement data to kg values for each sensor, and forwards it to the computer via serial port. The program is also responsible for offsetting the scale. On the computer runs a program in Labview. The reading and processing of the incoming data from the serial port is done using Producer-Consumer structure. This ensures that every piece of data is successfully processed, even if something momentarily overloads the CPU. On the front panel of the program the user can monitor the movement of the CoP in real time. After the measurement the program calculates the parameters from the CoP coordinates. The result of the measurements can be saved, and later the parameters can be calculated from the saved file using the same program at any time. I calibrated the device, and did a series of validation measurements. I placed the Zebris device on the scale, and after the measurements compared the data. 10 measurements were carried out, 4 with both legs on the plate, eyes open, 2 with both legs on the plate, eyes closed, 2 with one leg on the plate and 2 with both legs on the plate, but the subject made big movements on purpose. For each of the 12 measured parameters, the ratio of the parameter value calculated from the scale CoP data to the parameter value calculated from Zebris CoP data for every measurement was observed. Two measurements showed outlying results for a lot of parameters, so they were excluded from the analysis. Then the standard deviation of these ratios was compared to the relative standard deviation of a healthy control group [3] for every parameter separately. The deviation of the ratios was significantly smaller than 38
the relative standard deviation of a healthy control group for every measured parameter. So the data acquired using the scale, and the parameters calculated from this data is accurate enough to be the basis of clinical observations. However, while the deviation of the measurement data is sufficiently small, some parameters showed significant difference in average value compared to the Zebris device. It means, that measurements done with the scale are accurate when compared to one another, but data of measurements carried out using different devices should not be compared. Keywords: stabilometry, Center of Pressure
39
9. FÜGGELÉK A használt Arduino kód: #include "TimerOne.h" #define ledPin 13 long b_bit = 16777216; long raw1, raw2, raw3, raw4; long b1 = 0; long b2 = 0; long b3 = 0; long b4 = 0; float y = 0; float a1 = float a2 = float a3 = float a4 = // kg/bit
0.0000229; 0.0000241; 0.0000217; 0.0000233;
byte process_enable=0; float m = 0; float g = 0; char ByteIn = 0; int i = 0; byte data1[3] byte data2[3] byte data3[3] byte data4[3] unsigned long byte filler;
// for incoming serial data
= { 0 }; = { 0 }; = { 0 }; = { 0 }; value;
#define CLOCK_LOW { digitalWrite(A4, LOW);} #define CLOCK_HIGH { digitalWrite(A4, HIGH); } #define CLOCK_IMPULSE { CLOCK_HIGH; CLOCK_LOW;}
void callback() // 80Hz interrupt eseménykezelő függvénye { digitalWrite(ledPin, HIGH); // toggle LED pin process_enable=1;
40
}
void setup() { Serial.begin(115200); pinMode(ledPin, OUTPUT); //DT1: 2, DT2: A0, DT3: 4 DT4: A2 pinMode(A4, OUTPUT); //clk pinMode(2, INPUT); //dout pinMode(A0, INPUT); //dout pinMode(4, INPUT); //dout pinMode(A2, INPUT); //dout CLOCK_LOW CLOCK_HIGH delay(1000); // initialize timer1 12500 us-enként legyen = 80 Hz Timer1.initialize(12500); Timer1.attachInterrupt(callback); CLOCK_LOW } void loop() { if(process_enable) { process_enable=0; //KIOLVASÁS KEZDETE value = 0; filler = 0; data1[2] = 0; data1[1] data2[2] = 0; data2[1] data3[2] = 0; data3[1] data4[2] = 0; data4[1]
= = = =
0; 0; 0; 0;
data1[0] data2[0] data3[0] data4[0]
= = = =
0; 0; 0; 0;
//Először megnézzük, hogy mindegyikben kész-e az adat: while(digitalRead(2) != LOW || digitalRead(A0) != LOW || digitalRead(4) != LOW || digitalRead(A2) != LOW); for(i=0;i<8;i++) { CLOCK_IMPULSE; data1[2] = data1[2] << 1; //ADC1 data1[2] = data1[2] | digitalRead(2);
41
data2[2] data2[2] data3[2] data3[2] data4[2] data4[2]
= = = = = =
data2[2] data2[2] data3[2] data3[2] data4[2] data4[2]
} for(i=0;i<8;i++) { CLOCK_IMPULSE; data1[1] = data1[1] data1[1] = data1[1] data2[1] = data2[1] data2[1] = data2[1] data3[1] = data3[1] data3[1] = data3[1] data4[1] = data4[1] data4[1] = data4[1] } for(i=0;i<8;i++) { CLOCK_IMPULSE; data1[0] = data1[0] data1[0] = data1[0] data2[0] = data2[0] data2[0] = data2[0] data3[0] = data3[0] data3[0] = data3[0] data4[0] = data4[0] data4[0] = data4[0] } CLOCK_IMPULSE;
<< 1; //ADC2 | digitalRead(A0); << 1; //ADC3 | digitalRead(4); << 1; //ADC4 | digitalRead(A2);
<< 1; //ADC1 | digitalRead(2); << 1; //ADC2 | digitalRead(A0); << 1; //ADC3 | digitalRead(4); << 1; //ADC4 | digitalRead(A2);
<< 1; //ADC1 | digitalRead(2); << 1; //ADC2 | digitalRead(A0); << 1; //ADC3 | digitalRead(4); << 1; //ADC4 | digitalRead(A2);
//Itt már kiolvastuk a 24 bitet párhuzamosan minden ADC-n és még egy impulzust adtunk neki, hogy adatlap szerint következő mérés is 128 Gain értékkel A csatornán menjen //Utána elvégezzük a lib-ből átvett bitműveleteket, hogy helyes értéket kapjunk // Datasheet indicates the value is returned as a two's complement value
//ADC 1 // Flip all the bits data1[2] = ~data1[2]; data1[1] = ~data1[1]; data1[0] = ~data1[0]; // Replicate the most significant bit to pad out a 32-bit signed integer if ( data1[2] & 0x80 ) {
42
filler = 0xFF; } else if ((0x7F == data1[2]) && (0xFF == data1[1]) && (0xFF == data1[0])) { filler = 0xFF; } else { filler = 0x00; } // Construct a 32-bit signed integer value = ( static_cast
(filler) << 24 | static_cast(data1[2]) << 16 | static_cast(data1[1]) << 8 | static_cast(data1[0]) ); // ... and add 1 raw1 = static_cast(++value);
//ADC2 // Flip all the bits data2[2] = ~data2[2]; data2[1] = ~data2[1]; data2[0] = ~data2[0]; // Replicate the most significant bit to pad out a 32-bit signed integer if ( data2[2] & 0x80 ) { filler = 0xFF; } else if ((0x7F == data2[2]) && (0xFF == data2[1]) && (0xFF == data2[0])) { filler = 0xFF; } else { filler = 0x00; } // Construct a 32-bit signed integer value = ( static_cast(filler) << 24 | static_cast(data2[2]) << 16 | static_cast(data2[1]) << 8 | static_cast(data2[0]) ); // ... and add 1 raw2 = static_cast(++value);
//ADC3 // Flip all the bits data3[2] = ~data3[2]; data3[1] = ~data3[1]; data3[0] = ~data3[0];
43
// Replicate the most significant bit to pad out a 32-bit signed integer if ( data3[2] & 0x80 ) { filler = 0xFF; } else if ((0x7F == data3[2]) && (0xFF == data3[1]) && (0xFF == data3[0])) { filler = 0xFF; } else { filler = 0x00; } // Construct a 32-bit signed integer value = ( static_cast(filler) << 24 | static_cast(data3[2]) << 16 | static_cast(data3[1]) << 8 | static_cast(data3[0]) ); // ... and add 1 raw3 = static_cast(++value);
//ADC4 // Flip all the bits data4[2] = ~data4[2]; data4[1] = ~data4[1]; data4[0] = ~data4[0]; // Replicate the most significant bit to pad out a 32-bit signed integer if ( data4[2] & 0x80 ) { filler = 0xFF; } else if ((0x7F == data4[2]) && (0xFF == data4[1]) && (0xFF == data4[0])) { filler = 0xFF; } else { filler = 0x00; } // Construct a 32-bit signed integer value = ( static_cast(filler) << 24 | static_cast(data4[2]) << 16 | static_cast(data4[1]) << 8 | static_cast(data4[0]) ); // ... and add 1 raw4 = static_cast(++value);
//KIOLVASÁS VÉGE
44
//OFFSETELÉS KEZDETE if (Serial.available() > 0) { ByteIn = Serial.read(); if (ByteIn == 't') { if (raw1 > 8388607) { b1 = raw1 - b_bit; } else { b1 = raw1; }
if (raw2 > 8388607) { b2 = raw2 - b_bit; } else { b2 = raw2; }
if (raw3 > 8388607) { b3 = raw3 - b_bit; } else { b3 = raw3; }
if (raw4 > 8388607) { b4 = raw4 - b_bit; } else { b4 = raw4; } }
45
} //OFFSETELÉS VÉGE //sorrend: 2, 4, 1, 3
if (raw2 > 8388607) { y = raw2 - b_bit - b2; } else { y = raw2 - b2; } m = y * a2; Serial.print(m); Serial.print("\t");
if (raw4 > 8388607) { y = raw4 - b_bit - b4; } else { y = raw4 - b4; } m = y * a4; Serial.print(m); Serial.print("\t");
if (raw1 > 8388607) { y = raw1 - b_bit - b1; } else { y = raw1 - b1; } m = y * a1; Serial.print(m); Serial.print("\t");
if (raw3 > 8388607) {
46
y = raw3 - b_bit - b3; } else { y = raw3 - b3; } m = y * a3; Serial.println(m);
digitalWrite(ledPin, LOW); } }
47