SZAKDOLGOZAT-FELADAT Rátky Marcell (IMNGDM) szigorló villamosmérnök hallgató részére
Alvásmonitorozó rendszer fejlesztése A szenzoráramkörök egyre csökkenő mérete és fogyasztása napjainkra lehetővé tette a különböző tevékenységek végzése során is viselhető, fiziológiai paramétereket mérő szenzoros rendszerek alkalmazását. A szenzorrendszerek alkalmazásának egy lehetséges területe az alvás paramétereinek monitorozása. A gyűjtött adatok feldolgozása révén hozzásegíthetjük a felhasználót a pihentetőbb alváshoz, az alvást befolyásoló problémák, betegségek kényelmes, otthoni felismeréséhez. Az alvás fázisainak megkülönböztetésével lehetségessé válik az alvás minőségének kvantitatív becslése, az így létrehozott adatsorokat a felhasználó grafikonon ábrázolva, életvitelével, táplálkozási és egyéb szokásaival összevetve igen hasznos visszajelzést, útmutatást kaphat. Az alvási apnoe vizsgálata leggyakrabban költséges és kényelmetlen alváslaboratóriumi vizsgálattal történik. Kevésbé súlyos esetei a lakosság jelentős százalékánál előfordulnak, és legtöbbször kivizsgálatlanok maradnak. Ezekben az enyhe esetekben is hasznos lehet azonban a felismerés, amelyhez felesleges lenne egy költséges vizsgálat, amelyet a páciens – látszólagos tünetmentessége okán – egyébként is elutasítana. A hallgató feladata, hogy az alvási fázisok, illetve apnoe meghatározására a nagy értékű orvosi műszerekhez viszonyítva szerény pontossággal, de kis méretben és alacsony fogyasztással képes eszközt kísérletezzen ki. Ehhez a testfelületen elhelyezett gyorsulásérzékelő, illetve a légzéshangot érzékelő mikrofon jele áll rendelkezésre. Fentiek alapján a szakdolgozat-készítés keretében az alábbi konkrét feladatokat kell megoldania: − Gyorsulás- és hangjelek mintavételezésére alkalmas mikroprocesszoros rendszer tervének elkészítése, tesztáramkör élesztése; − Mérési adatsorok felvétele, off-line elemzése; − Alvási fázisokra következtető on-line szenzoros modul rendszertervének elkészítése. Tanszéki konzulens: Dr. Sujbert László, docens Külső konzulens: Tatai Péter (AITIA International Zrt.) Budapest, 2012. október 5. …………………… Dr. Jobbágy Ákos tanszékvezető
Budapesti M¶szaki és Gazdaságtudományi Egyetem Villamosmérnöki és Informatikai Kar Méréstechnika és Információs Rendszerek Tanszék
Alvásmonitorozó rendszer fejlesztése
Szakdolgozat
Készítette
Konzulens
Rátky Marcell
dr. Sujbert László, Tatai Péter, Tihanyi Attila
2013. december 22.
Tartalomjegyzék Kivonat
4
Abstract
5
Bevezet®
6
0.1.
Az alvásról
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6
0.2.
A dolgozat felépítése . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7
1. Apnoe-felismerés hangjelekb®l alfeladat
8
1.1.
Bevezetés
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8
1.2.
Mérési elrendezés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10
1.2.1.
Optimális mérés esete
10
1.2.2.
A valós mérési elrendezés
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11
1.3.
A jelek vizsgálata, feldolgozása
. . . . . . . . . . . . . . . . . . . . . . . . .
11
1.4.
A MATLAB-forráskód . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
15
1.5.
A mintavételezési frekvencia hatása a légzésfelismerésre . . . . . . . . . . . .
15
1.6.
Robusztusság, környezeti zajok hatása a jelre
. . . . . . . . . . . . . . . . .
15
1.7.
Apnoé-felismerés alfejezet összefoglalása
. . . . . . . . . . . . . . . . . . . .
16
2. Alvásmélység felismerése alfeladat 2.1.
17
Létez® eszközök . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
17
2.1.1.
aXbo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
17
2.1.2.
Zeo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
18
2.1.3.
Sleep as Android . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
18
2.2.
Mérési összeállítás
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
19
2.3.
A jelek feldolgozása . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
20
2.4.
A MATLAB-forráskód . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
21
3. Javaslat az alvásmeggyel® rendszerre 3.1.
Alapvet® megfontolások
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.2.
F®bb alkatrészek kiválasztása
23 23
. . . . . . . . . . . . . . . . . . . . . . . . . .
23
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
23
3.2.1.
Gyorsulásmér®
3.2.2.
Mikrofon
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
24
3.2.3.
SD-kártya . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
24
1
3.2.4. 3.3.
Mikrokontroller . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
A kapcsolási rajz ismertetése
24
. . . . . . . . . . . . . . . . . . . . . . . . . .
24
3.3.1.
A top modul (3.1 ábra)
. . . . . . . . . . . . . . . . . . . . . . . . .
24
3.3.2.
A jelkondícionáló modul (3.2 ábra) . . . . . . . . . . . . . . . . . . .
26
3.3.3.
Debug UART (3.3 ábra) . . . . . . . . . . . . . . . . . . . . . . . . .
26
3.3.4.
Az SWD-kapcsolat (3.4 ábra) . . . . . . . . . . . . . . . . . . . . . .
27
3.3.5.
USB-kapcsolat (3.5 ábra)
. . . . . . . . . . . . . . . . . . . . . . . .
27
3.3.6.
Battery charging and power (3.6 ábra) . . . . . . . . . . . . . . . . .
27
3.3.7.
SD-kártya (3.7 ábra) . . . . . . . . . . . . . . . . . . . . . . . . . . .
28
3.3.8.
Gyorsulásmér® (3.8 ábra)
. . . . . . . . . . . . . . . . . . . . . . . .
29
3.3.9.
Rezg®motor (3.9 ábra) . . . . . . . . . . . . . . . . . . . . . . . . . .
30
3.4.
A hardver kritikus elemeinek tesztje
. . . . . . . . . . . . . . . . . . . . . .
30
3.5.
A hardver terve . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
31
4. Összefoglaló, továbbfejlesztési lehet®ségek
34
4.1.
Összefoglaló . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
34
4.2.
Továbbfejlesztési lehet®ségek . . . . . . . . . . . . . . . . . . . . . . . . . . .
34
4.3.
Vezetéknélküli csatlakozási lehet®ség
. . . . . . . . . . . . . . . . . . . . . .
35
4.4.
Feldolgozás precizitásának növelése . . . . . . . . . . . . . . . . . . . . . . .
35
4.5.
M¶ködés igazolása alváslaboratóriumi vizsgálattal . . . . . . . . . . . . . . .
35
Köszönetnyilvánítás
36
Függelék
37
Irodalomjegyzék
50
2
HALLGATÓI NYILATKOZAT Alulírott Rátky Marcell, szigorló hallgató kijelentem, hogy ezt a szakdolgozatot meg nem engedett segítség nélkül, saját magam készítettem, csak a megadott forrásokat (szakirodalom, eszközök stb.) használtam fel. Minden olyan részt, melyet szó szerint, vagy azonos értelemben, de átfogalmazva más forrásból átvettem, egyértelm¶en, a forrás megadásával megjelöltem. Hozzájárulok, hogy a jelen munkám alapadatait (szerz®(k), cím, angol és magyar nyelv¶ tartalmi kivonat, készítés éve, konzulens(ek) neve) a BME VIK nyilvánosan hozzáférhet® elektronikus formában, a munka teljes szövegét pedig az egyetem bels® hálózatán keresztül (vagy autentikált felhasználók számára) közzétegye. Kijelentem, hogy a benyújtott munka és annak elektronikus verziója megegyezik. Dékáni engedéllyel titkosított diplomatervek esetén a dolgozat szövege csak 3 év eltelte után válik hozzáférhet®vé.
Budapest, 2013. december 22.
Rátky Marcell hallgató
Kivonat A szenzoráramkörök egyre csökken® mérete és fogyasztása napjainkra lehet®vé tette a különböz® tevékenységek végzése során is viselhet®, ziológiai paramétereket mér® szenzoros rendszerek alkalmazását. A szenzorrendszerek alkalmazásának egy lehetséges területe az alvás paramétereinek monitorozása. A gy¶jtött adatok feldolgozása révén hozzásegíthetjük a felhasználót a pihentet®bb alváshoz, az alvást befolyásoló problémák, betegségek kényelmes, otthoni felismeréséhez. Az alvás fázisainak megkülönböztetésével lehetségessé válik az alvás min®ségének kvantitatív becslése, az így létrehozott adatsorokat a felhasználó grakonon ábrázolva, életvitelével, táplálkozási és egyéb szokásaival összevetve igen hasznos visszajelzést, útmutatást kaphat. Az alvási apnoe vizsgálata leggyakrabban költséges és kényelmetlen alváslaboratóriumi vizsgálattal történik. Kevésbé súlyos esetek a lakosság jelent®s százalékánál el®fordulnak, és legtöbbször kivizsgálatlanok maradnak. Ezekben az enyhe esetekben is hasznos lehet azonban a felismerés, amelyhez felesleges lenne egy költséges vizsgálat, amelyet a páciens látszólagos tünetmentessége okán egyébként is elutasítana. Az alvás min®ségének vizsgálatát laboratóriumi körülmények között poliszomnográával (PSG) végzik. Otthoni körülmények között is lehet azonban egyszer¶ eszközökkel méréseket végezni. Ezek pontossága természetesen nem közelíti meg a laboratóriumi mérésekét, indikációnak viszont hasznosak lehetnek. Dolgozatomban mikrofonnal felvett hangjelekkel légzést és gyorsulásmér® segítségével alvásmélységet vizsgálok. A mintákon Matlab segítségével végzek feldolgozást. Ezután javaslatot teszek egy teljes rendszer tervére, kitérve a különböz® kritériumok teljesíthet®ségére. Bemutatom a rendszer kapcsolási rajzát és a hardver kritikusabb részeinek próbapanelen való tesztmérését.
4
Abstract Since sensor systems are constantly shrinking in size and energy consumption, it has become possible to use them in various wearable sensor systems, measuring physiological parameters during daily tasks. Sleep monitoring is one of the several possible areas where sensor systems can be used. Data analysis can provide useful information for the subject, helping him enjoy a more restful sleep, and diagnose minor health issues regarding sleep, with no aid of a medical professional. Estimating the actual sleep phase may lead to a quantitative measure regarding sleep. Measured data can also be inspected by the subject, providing useful feedback when data and lifestyle parameters are juxtaposed. Diagnosis of sleep apnea is traditionally done by an expensive and inconvenient sleep study (polysomnography). Non-life-threatening cases are believed to be present on a considerable percent of the population, and are in numerous cases left undiagnosed. It would be most preferable to diagnose these mild cases as well, however an expensive medical examination would be unnecessary and the apparent lack of symptoms would also make the subject reluctant to it. Sleep quality is usually determined by a sleep study, also referred to as polysomnography or PSG. It is also possible for a patient to do simple measurements at home. These measurements are not near as accurate as a full PSG evaluation, but can be used as indicators. This Thesis shows how microphone signals can be used for breathing pattern analysis, and a single 3D accelerometer can indicate the depth of sleep. Measurements are then processed in Matlab. Schematics for a complete design fullling the requirements for signal processing are described in detail. Test measurement of critical circuits are shown.
5
Bevezet® Az alvás és az álmok ®sid®k óta foglalkoztatják az emberiséget. Már a kb. ie. 22. században keletkezett Gilgames-eposzban is találunk álominterpretációt (Ninszun álomfejtése). Szinte minden ókori kultúrában szerepelt az alvással, álmodással foglalkozó isten [10]. Mára a tudomány eljutott arra a szintre, hogy az alvást és az álmodást nagyjából képes legyen tudományos eszközökkel vizsgálni és elemezni.
0.1. Az alvásról Arra, hogy miért van szervezetünknek alvásigénye, egyel®re csak hipotézisek állnak rendelkezésre. A négy legvalószín¶bbnek tartott elmélet a következ®[14]: 1. Evolúciós okokból. Az elmélet szerint azok az állatok, amelyek éjszaka csendben pihentek, kevésbé voltak kitéve a ragadozók támadásának. 2. Energiatakarékosságból. A Harvard egyetem kutatói szerint alvás közben energiafelhasználásunk a nappal szokásos érték
10%-ára
is lecsökkenhet. Ez az arány állatok
esetében még alacsonyabb lehet. Mivel éjjel nehezebb volt táplálékhoz jutni, lehetséges, hogy a szervezet válaszul fejlesztette ki az alvás képességét. 3. Resztoratív funkciók végrehajtásának céljából. Az utóbbi évek kutatásai által bizonyítást nyert, hogy a szervezet önjavító-, és immun-funkciói alvás közben a legaktívabbak. Ilyen funkciók például az izomépítés, szövetregeneráció, fehérjeszintézis és a növekedési hormon felszabadítása. 4. Neuroplaszticitás. Az agy plasztcitása
1 és az alvás között er®s korreláció mutatható
ki [13]. Bár a fentiek szerint az alvásigény valódi okát máig nem tudták teljes bizonyossággal megállapítani, ez nem akadályozza meg, hogy az alvás szervezeti el®nyeit vizsgáljuk. Fiziológiai szempontból az alvás egy relaxált állapot, amelyben a pulzus csökken, a test h®mérséklete is változik, az agyhullámok pedig jellegzetes mintát mutatnak. Az agyi tevékenységet vizsgálva megállapítható, hogy az éber állapot jellegzetesen a bal agyfélteke dominanciájával jár, míg alvás közben a jobb agyfélteke kap jóval nagyobb szerepet. [2] A bal agyfélteke felel®s a nyelvi funkciókért, id®- és térbeli orientációért, analitikus, logikus gondolkodásért. Ezzel szemben a jobb agyfélteke els®dlegesen nem verbális kifejezés-
1
Az agy önjavító, önmódosító képessége [9]
6
módra specializálódott, gondolkodása asszociatív, szimbólumalapú tömörítésekkel tároló [16]. A jobb agyfélteke alváskori dominanciája következtében az álommunka során a szervezet bels® kommunikációja szimbólumalapú tünetképzésre is képes (pszichoszomatikus megbetegedések) [11]. Az alvás min®ségének elemzésére szolgáló alváslaboratóriumi vizsgálatok költségesek és körülményesek. Egy ilyen elemzésre már csak végszükség esetén vállalkozik bárki, akkor, amikor az alvászavar tünetei már egyértelm¶en megjelentek. Az utóbbi években a szenzorok, szenzorrendszerek egyre csökken® mérete és ára, a mikrokontrollerek folyamatosan csökken® fogyasztása és növekv® számítási kapacitása lehet®vé tette, hogy kisméret¶, viselhet® szenzoros rendszerek segítsék a felhasználót mindennapi tevékenységei során. Az alvás kvalitatív elemzésének egyik fontos célparamétere a véroxigénszint követése. Az erre való következtetés a légzés hosszából-mélységéb®l megvalósítható feladat. Az alvási apnoé egy olyan, alvásmin®séget jelent®sen gyengít® kondíció, amelynek otthoni elemzésére kevés eszköz áll rendelkezésre, holott a lakosság igen jelent®s százaléka szenved benne, többnyire anélkül, hogy tudna róla[8]. A reggeli, és utána egész napon át tartó kipihentség másik kulcskérdése az ébredés pillanatának megválasztása. Az alvás különböz® fázisaiban különböz® hatékonysággal ébreszthet® az alany, és ennek megfelel®en különböz® mértékben érzi magát kipihentnek, frissnek. Ha egy ébreszt®óra gyelembe tudná venni, hogy mely alvási fázisban vagyunk épp, és igyekezne a természetes ébredés ritmusát követve a legfelületesebb alvást megszakítani, az ezen rendszert alkalmazó személy ttebbnek érezné magát ébredéskor, és ez kihatna egész napjára. Ilyen rendszerek már rendelkezésre állnak, különböz® módszerekkel becsülve az alvási fázisokat.
0.2. A dolgozat felépítése Dolgozatom 1. fejezete az apnoé-felismerés alfeladattal foglalkozik. Rövid bevezetésben Bemutatom az apnoét, és ennek hangfelvétel segítségével való kimutatásának lehet®ségeit. Ezután ismertetem az általam végzett méréseket, és a felvett jelek sz¶rését, kondicionálását, amelynek eredményeképpen a fejezet végén megmutatom, hogyan lehet korlátozott pontossággal felismerni a belégzés pillanatait. Zárásul összegzem az eredményeket, azok felhasználhatóságát és a fejlesztési lehet®ségeit. A 2. fejezet az alvásmélység mozgásból való felismerésér®l szól. Ismertetem az alfásfázisok és mozgás közötti lehetséges kapcsolatot, a piacon már létez® termékek bemutatásával. Ezután következik a mérési adatok feldolgozásának részletezése, amelyben a beérkez® zajos jelb®l jó becslést adhatunk az aktuális alvási fázisra. A 3. fejezet célja, hogy javaslatot adjon egy, a korábbi fejezetek által meghatározott igényeket kielégít® hardveres rendszerre. Részletesen bemutatom a rendszer elemeit, kapcsolási rajzát, illetve a kritikusabb részek méréssel történ® tesztelését. Végezetül a 4. fejezetben az egész dolgozat összefoglalása olvasható, amelyben kitérek a lehetséges további kutatási irányokra, alkalmazási lehet®ségekre is.
7
1. fejezet
Apnoe-felismerés hangjelekb®l alfeladat 1.1. Bevezetés A légzéssel kapcsolatos alvászavarok igen nagy jelent®ség¶ek az alvás min®ségének szempontjából. Ezek egyike az el®ször 1965-ben említett apnoe. Az apnoe görög eredet¶ szó, azt jelenti, lélegezni akarni. A betegnél a légzés alvás közben valamilyen okból szünetel, majd többnyire hirtelen leveg®vétellel (horkantással) küzd a szervezet az életben maradásért [18] [7]. Ezzel azonban egyrészt a véroxigénszint folyamatos megfelel® értéken tartását akadályozza (ezt észleli a központi idegrendszer, és ad ki vészjelzést), másrészt a vészreakció következtében az alvás mélységét csökkenti, magasabb éberségi állapottal, akár teljes ébredéssel segítve a páciensnek a leveg®höz jutást. Az alvási apnoe szindróma klasszikus deníciója szerint egy olyan alvás alatt jelentkez® légzészavar, amelyben óránként legalább 5, az alvás id®tartama alatt legalább 30, 10 másodpercnél hosszabb légzésszünet következik be. Ennek megfelel®en a 10 másodpercnél hosszabb légzéskihagyásos szakaszokra érdemes gyelnünk. Fontos kiemelni, hogy bár egyszer¶ eszközeinkkel minden 10 másodperces légzéskihagyást apnoénak tekintünk (hiszen a tervezend® rendszer célja nem a pontos diagnózis, hanem a gyelem felhívása egy esetleges problémára), a deníció valójában azokra a légzéskihagyásokra vonatkozik, amelyek végén arousal, pillanatnyi felriadás következik be. Ez az alvás fragmentálódásához vezet és teljes biztonsággal csak az EEG-jelek egyidej¶ regisztrálásával lehet kimutatni [6]. Az apnoét sokféle szempontból lehet osztályozni, de a legáltalánosabb a tünetek háttere alapján való felosztás, eszerint létezik centrális és obstruktív alvási apnoe. A centrális apnoe jellemz®je, hogy a leveg®vételre való utasítás már a központi idegrendszernél elakad, valamilyen okból a páciens mintegy kifelejt néhány légzésütemet. Sokkal gyakoribb azonban az obstruktív alvási apnoe, amelynél a beteg próbál ugyan leveg®t venni, azonban a leveg® szabad áramlását valamilyen zikai akadály gátolja. Ilyen akadály lehet például az orrsövényferdülés, a mandulák megnagyobbodása, egy m¶téti beavatkozás eredménye, vagy akár valamely, a légzéssel kapcsolatos izom gyengesége is. Jelent®s kockázati tényez® a túlsúlyosság is, a felhalmozott zsír nyomást fejthet ki a légcs®re, ezáltal akadályozva a légzést [3].
8
Az apnoe felismerése laboratóriumi körülmények között poliszomnográa végzésével történik. Egy ilyen vizsgálat során EEG (elektroencefalogram), EOG (elektrookulogram), EMG (elektromiogram), EKG (elektrokardiogram) felvételekkel, légáramlás-vizsgálattal, légz®izomzat vizsgálatával, induktív testpleizmográal (ez szintén a légz®mozgást, légz®izomzat m¶ködését vizsgálja), vérgázanalízissel (pulzoximéter), hang- és videofelvétel készítésével segítik a pontos diagnózist. Otthoni körülmények között számomra a légzés vizsgálata t¶nt a legcélravezet®bbnek, gyelembe véve azt is, hogy a páciens nem szeretne drága, vagy bonyolult eszközzel mérni otthonában.
1.1. ábra.
Obstruktív alvási apnoe minta [15]. Jól látható a légzéskihagyás utáni horkantás, és a légzések közötti hosszú szünet.
Ideális (nem apnoés) alvás esetében a légzés szabályos ritmust követ. Apnoe esetében azonban a szabályos szakaszokat légzéskihagyások tagolják, ezeket pedig nagyobb lélegzetvétel (sokszor horkantás) követi. Egy ilyen légzéskihagyásos szakaszt tekinthetünk meg az 1.1 ábrán. Megállapíthatjuk, hogy apnoés szakaszban a légzéskihagyást er®teljes leveg®pótlás követi. Hasonló ábrákat, és a centrális és obstruktív apnoe összehasonlítását láthatjuk az 1.2 és az 1.3 ábrákon. Fontos kiemelni, hogy bár a fenti ábrák alapján az obstruktív apnoe jellemz®je a légzéskihagyás utáni er®teljes légvétel (horkantás), a jelenség deníciójában ez nem szerepel, és mérhet®sége egyszer¶ eszközök használata esetén nehézkes, hiszen amplitúdója és id®tartama is egyéni eltéréseket mutat. Dolgozatomban tehát mindvégig azzal a feltételezéssel élek, hogy az apnoe felismerése a belégzési pontok megtalálásával kell történjen, a kiértékelés az egymást követ® belégzések között eltelt id®tartamok alapján fog megtörténni.
9
1.2. ábra.
1.3. ábra.
Centrális alvási apnoe poliszomnográás adatsora
Obstruktív alvási apnoe poliszomnográás adatsora
1.2. Mérési elrendezés 1.2.1. Optimális mérés esete Miel®tt megkezdjük a mérés tárgyalását, vizsgáljuk meg, mely körülmények lennének ideálisak a mérés elvégzésére. Ahhoz, hogy a mérési eredmények jóságát igazoljuk, a legjobb volna különböz® paraméterek együttes mérését elvégezni. Ehhez célszer¶nek t¶nik egy alváslaboratóriumi vizsgálat. Ebben, és a következ® fejezetben is jó ötlet volna az általánosan elfogadott mérési paramétereket felvenni, és ugyanazon id®ben saját mérést is végezni. Így a kett® közötti korreláció bemutatásával biztosíthatnánk méréseink pontosságát. A laboratóriumi körülményekhez tartozna a minél jobb jel-zaj viszony biztosítása is. Amíg a rendszer kifejlesztése a feladatunk, minél tisztább jelekkel érdemes dolgozni, és innen lenne praktikus elmozdulni az egyre életszer¶bb (zajosabb) esetek felé.
10
1.2.2. A valós mérési elrendezés Jelen szakdolgozatban a fenti irányelveket nem teljes mértékben követtem. Mivel a fejlesztend® eszköz a specikáció szerint korlátozott pontosságú és igen olcsó, egyszer¶ kell legyen, a mérés és feldolgozás során mindvégig életszer¶ környezetben mértem, és a legegyszer¶bb algoritmusokat alkalmaztam. Az otthoni (nem alváslaboratóriumi) mérések mellett szólt az is, hogy több éjszaka és több alany mérése volt célszer¶, és erre otthon több esély van. Biztató, hogy az általam kés®bbiekben bemutatandó aXbo eszköz fejlesztésénél is ezt a módszert követték: tapasztalati úton kikísérletezték az eszközt, majd annak hatását vizsgálták laborban. A hangmérések els® alanya tehát én magam voltam. Mikrofonállványt és USB-s küls® hangkártyát használtam. A szobában relatív csendet tudtam biztosítani, azonban a környék nem kifejezetten csendes és a helyi t¶zoltóállomás közelsége is zavarjeleket produkált. A jelfeldolgozáshoz szükséges hangfelvételeket a Méréstechnika és Információs Rendszerek Tanszék által biztosított M-Audio Fast Track Pro USB hangkártyával rögzítettem, a méréshez Behringer ECM-8000 mikrofont használtam. A méréshez alapértelmezésben felajánlott
44.100Hz-es
mintavételezési frekvenciát megtartottam.
1.4. ábra.
M-Audio Fast Track Pro USB hangkártya
1.5. ábra.
A Behringer ECM-8000 mikrofonja
1.3. A jelek vizsgálata, feldolgozása A hangjelek feldolgozását a MATLAB program segítségével végezzük. Tekintve, hogy a hangjeleket több forrásból, több különböz® mintavételi frekvenciával kapjuk bemenetként, mindenekel®tt egységes mintavételezésre kell váltanunk. Ez azért is rendkívül hasznos, mert a végs® rendszerben a teljesítményfelvételt és feldolgozási sebességet nagy mértékben befolyásolja a mintavételek száma, és most lehet®ségünk nyílik ennek határait vizsgálni. Erre a MATLAB resample függvényét használjuk, els® kísérletként
8kHz -re
változtatva a mintavételi frekvenciát.
A (már újramintavételezett) jelet megvizsgálva rögtön szembet¶nik annak relatív zajossága. Fiziológiai ismereteinkb®l azonban tudjuk, hogy a légzés alapfrekvenciája egy vi-
11
Az eredeti wav jel 0.08 0.06
Amplitude
0.04 0.02 0 −0.02 −0.04 −0.06 −0.08 0
20
40
60
80
100
120
Time (sec) 1.6. ábra.
Kétperces minta az eredeti jelb®l
szonylag jól körülhatárolható sávon belül kell mozogjon. Els® jelkondicionálási feladatunk tehát egyértelm¶en egy sávátereszt® sz¶r® alkalmazása lesz, ett®l a jel zajszintjének jelent®s csökkenését várjuk. Ehhez tekintsük meg a jel spektrumát. Itt fontos megemlíteni, hogy a légzés hangjának frekvenciája a 16-200Hz tartományban mozog[6], ezt a frekvenciatartományt azonban a használt eszközökkel nem lehetett igazán jól vizsgálni. A légáramlat azonban a légcs®ben haladva turbulencia által magasabb frekvenciájú, nagyobb energiájú komponenseket is létrehoz. Az 1.7 ábrán láthatjuk, hogy a 800-900Hz körüli tartományban érdemes vizsgálódnunk.
A jel spektruma
4
2.5
x 10
2
Amplitude
1.5
1
0.5
0 −3
10
−2
10
−1
10
0
1
10
10
2
10
3
10
4
10
Frequency (log Herz)
1.7. ábra.
A jel spektruma
A fenti mérés alapján a MATLAB Filter Builder-ének segítségével készítünk egy olyan sávátereszt® sz¶r®t, amely a 650 és 900Hz közötti tartományt engedi át. Célunk, hogy a megsz¶rt jelben nagyobb amplitúdóval megjelen® pontokat, amelyek a belégzést jelzik, ki tudjuk jelölni. Ehhez egy ablakozó integrálást végzünk a jel pontonkénti négyzetére (energiájára) vonatkozóan. Ezáltal a konzisztensen nagyobb energiájú pontok
12
kiemelkednek a jelb®l.
Ablakozó integrálással való szûrés után 0.025
Amplitude
0.02
0.015
0.01
0.005
0 0
20
40
60
80
100
120
Time [sec] 1.8. ábra.
El®feldolgozás utáni állapot
Ezek után a jelben meg kell találnunk a csúcsokat, amelyek várhatóan a belégzéseket fogják jelölni. Ehhez a MATLAB ndpeaks függvényét vesszük igénybe, az alábbi paraméterek beállításával:
MINPEAKDISTANCE
két szomszédos csúcs közötti távolság (mintadarabszám). Ese-
tünkben ezt a minimumot a két légzés között élettanilag elképzelhet® legkisebb id®köz fogja meghatározni
THRESHOLD
ahhoz, hogy egy pontot csúcsnak tekintsünk, az el®tte és utána lév®
elemnél legalább ennyivel kell nagyobbnak lennie. Ezt tapasztalati úton határozzuk meg A fenti kritériumoknak megfelel® paraméterezéssel a ndpeaks kiváló munkát végez: a megtalált belégzési pontok a tesztadatsorok mindegyike esetében megegyeztek a hanganyagok meghallgatásával megtalálhatóakkal.
A csúcskeresés eredménye 0.025 El˝ok´esz´ıtett jel Bel´egz´esmarker
Amplitude
0.02
0.015
0.01
0.005
0 0
20
40
60
80
100
Time [sec] 1.9. ábra.
A jelben megtalált belégzési pontok
13
120
Mivel az apnoe deníciója az egymást követ® belégzések között eltelt id®tartamok szerint osztályoz, ezt is érdemes ábrázolni. Gyakorlati megvalósítás esetén a felhasználó számára a kihagyások id®tartama és egy éjszaka alatti összes darabszáma lesz igazán informatív.
A belégzések között eltelt idõtartam Belégzések között eltelt idõ (sec)
5 4.5 4 3.5 3 2.5 2 1.5 1 0.5 0 0
20
40
60
80
100
120
Idõ (sec) 1.10. ábra.
Egymást követ® belégzések közötti id®tartam
Összehasonlításnak, mintegy önellen®rzésnek egy kollégám mobiltelefonos hangfelvételére is lefuttattam az algoritmust. Az illet® rosszabb alvó, éjszakánként horkol, így jó tesztalanynak bizonyul. Az ® esetében egy 30 perces adatmintával végeztünk elemzést, melynek eredménye az 1.11 ábrán látható. Az 1.12 ábrán jól látszik, hogy az alany alvásában volt egy kiemelked®en hosszú légzéskihagyás. Az ábrán a vízszintes tengelyen az eltelt id®t látjuk, a függ®leges tengely mutatja a légzések között eltelt id®tartamot. Ennek megfelel®en az alany egy körülbelül 12 másodperces és egy 54 másodperc körüli légzéskihagyást produkált a harmincperces mérés alatt.
A csúcskeresés eredménye horkoló alanynál 0.35 El˝ok´esz´ıtett jel Bel´egz´esmarker 0.3
Amplitude
0.25 0.2 0.15 0.1 0.05 0 0
500
1000
1500
2000
Time [sec] 1.11. ábra.
Csúcskeresés eredménye horkoló alany esetében (harminc perc hosszúságú minta)
14
A belégzések között eltelt idõtartam horkoló alanynál Belégzések között eltelt idõ (sec)
60
50
40
30
20
10
0 0
500
1000
1500
2000
Idõ (sec) 1.12. ábra.
Belégzések között eltelt id®tartam horkoló alany esetében
1.4. A MATLAB-forráskód Az algoritmust megvalósító MATLAB-forrásfájl a Függelékben (F.0.1) megtalálható.
1.5. A mintavételezési frekvencia hatása a légzésfelismerésre Tekintve, hogy a fenti vizsgálatok alapján a légzésre utaló frekvenciatartomány valamivel 1kHz alatt van, a mintavételi frekvenciát 8kHz-r®l még jelent®s mértékben lehet csökkenteni. A Nyquist-Shannon tételnek megfelel®en 2kHz-es mintavételi frekvenciával a légzés várhatóan még jól becsülhet® marad az algoritmussal.
1.6. Robusztusság, környezeti zajok hatása a jelre Bár a feladat lényegi része ezzel alapszinten megoldottnak tekinthet®, a gyakorlati alkalmazáshoz a robusztusság alapszint¶ vizsgálata is fontos. Minden eshet®ségre (zavarjelre) felkészülni terjedelmi és gyakorlati korlátok miatt sem lehetséges, a dolgozatban azonban élhetünk azzal a feltételezéssel, hogy a majdani felhasználó alapvet®en zajmentes környezetben pihen, hiszen ha nem így lenne, alvásmin®ségének javítását ezzel lenne javasolt kezdenie. Ennek megfelel®en alapvet® háztartási zajokra (h¶t®szekrény, mosógép, ventilátor), az utca besz¶r®d® zajaira (forgalom, beszélgetés), és eseti nem periodikus zavarokra kell készülni. Emellett zavaró lehet az eszköz rögzítéséb®l adódó hiba is, például ha a m¶szer leesik, a takaró vagy ruha súrlódik rajta, stb. Egy internetr®l szabadon letölthet® városi zajból vettem mintát, majd ezt hozzáadtam az eredetileg használt kétperces légzésmintához. Amint az az 1.13 ábrán látható, a zajjal terhelt jelben a korábbiakhoz hasonlóan megtaláltuk a megfelel® számú belégzési pontot. Sajnos azonban az 1.14 ábrán látható, hogy a belégzések között eltelt id®tartamokkal valószín¶leg komoly probléma van. Egyrészt ugyanis nem egyezik meg a korábbi (extra zajterhelés nélküli) vizsgálat eredményével, másrészt gyanút kelt®en egyenletes a légzések között eltelt id®. A távok túlnyomó többsége 2,6 másodperc id®tartamú, ennyire pedig nem
15
1
lélegezhet egyenletesen az alany . Valószín¶nek tartom, hogy a probléma megoldása a korábban kísérletezés útján meghatározott paraméterek pontosításában rejlik. A kés®bbiekben erre feltétlenül kell még teszteket végezni.
A csúcskeresés eredménye 250 El˝ ok´esz´ıtett jel Bel´egz´esmarker
Amplitude
200
150
100
50
0 0
20
40
60
80
100
120
Time [sec] 1.13. ábra.
A városi zajjal terhelt mintában megtalált belégzési pontok A belégzések között eltelt idõtartam
Belégzések között eltelt idõ (sec)
5 4.5 4 3.5 3 2.5 2 1.5 1 0.5 0 0
20
40
60
80
100
120
Idõ (sec) 1.14. ábra.
Belégzések között eltelt id®k a város zajával terhelt jel esetében
1.7. Apnoé-felismerés alfejezet összefoglalása A fejezetben áttekintettem az obstruktív alvási apnoé ziológiájának alapjait. Ezen ismeretek segítségével az általam elkészített hangfelvételek vizsgálatára egyszer¶ algoritmust dolgoztam ki. Az algoritmust több különböz® mintán eredményesen teszteltem, habár a jelent®sebb mérték¶ zaj alapjelhez keverésében problémát találtam. Kitértem továbbá a mintavételi frekvencia megváltoztatásának várható hatására is. Véleményem szerint a fenti algoritmus jó kiindulási alap lehet egy egy alvásmeggyel® rendszer kidolgozásához. További tesztelére, zajosabb esetek vizsgálatára azonban feltétlenül szükség van.
1
És nem is teszi, lásd: 1.10 ábra.
16
2. fejezet
Alvásmélység felismerése alfeladat 2.1. Létez® eszközök Az alvásfázisokra mozgásból történ® következtetés nem újkelet¶ módszer. Számos többékevésbé sikeres termék van már piacon, ezek közül vizsgálunk meg néhányat.
2.1.1. aXbo
2.1. ábra.
Az aXbo ébreszt®óra
Az aXbo fantázianev¶ eszköz [1] egy csuklópántba ágyazott szenzoros modulból és egy asztali, óra egységb®l áll. A nagyjából 50.000Ft-os eszköz legnagyobb er®ssége, hogy a Siesta Group alváslaboratóriumi tesztet végzett vele [17]. A bécsi alváslabor 2008-ban három tényt igazolt kísérletileg:
Van-e er®s korreláció az alvásfázisok és a mozgás között. Az kutatók így összegezték az eredményt: The most important result for aXbo was the signicant correlation between body movements and the sleep phases relevant for waking up.
Van-e korreláció az ébresztéskori alvási fázis és a szubjektív kipihentségérzet között. Ennek szintén pozitív eredménye volt: There is a signicant correlation between the individual feeling of well-being and the stage in which a person is woken up or awakes.
17
Ad-e az aXbo termék használata határozottan jobb ébredést, mint a hagyományos ébreszt®órák. The study proved the functioning of aXbo. Compared to the basic night the participants were in signicantly better mood and had more aectivity and less drowsiness in the mornings with the correct aXbo waking than when being woken randomly. These values were established by mean of the standardized scale ASES, which the participants used for noting their feeling. All these dierences were
statistically signicant; hence it is legitimate to speak about a factual dierence.
2.1.2. Zeo
2.2. ábra.
A Zeo termék
A Zeo terméke ugyancsak ígéretesnek t¶nik, azonban a legfrissebb hírek szerint a cég a cs®d szélére jutott[21]. Korábban a teljes verziót (Zeo Pro) 149$-ért árulták. A cég igyekezett a lehet® legtöbb eszközzel való kompatibilitásra, többek között okostelefonon keresztül is használható[20].
2.1.3. Sleep as Android Az Android operációs rendszert futtató okostelefonokra elérhet® Sleep as Android [4] alkalmazás azt ígéri, hogy beépített gyorsulásmér®je segítségével detektálja a felületes alvási fázisokat és ennek megfelel®en ébreszt. A szoftveres és hardveres limitációk (a telefonok fele nem képes kikapcsolt kijelz®vel mérni, az energiafelhasználás is igen magas)[5] ellenére sokan használják. Az azonban bizonyos, hogy a matracra helyezett telefonnal való mérés er®sen érzékeny a matrac típusára. Továbbá kérdéses, hogy amikor a matracgyártók a mozgás minél hatékonyabb elnyelésére törekednek[12], mennyire érdemes a matrac elmozdulásai alapján becsülni.
18
2.3. ábra.
A Sleep as Android képerny®képe
2.2. Mérési összeállítás Az alvás közbeni mozgás mérését a SparkFun Electronics 9DOF (9 degree of freedom) sensor stick-jével végeztem. A 2.4 ábrán megtekinthet® egyszer¶ eszköz kiváló segítség
2
mozgásjelek analíziséhez. A kommunikációt I C-felületen teszi lehet®vé.
2.4. ábra.
SparkFun 9DOF sensor stick
Az eszköz a következ® szenzorokat tartalmazza, a használatukhoz szükséges minimális kiegészít® áramkörök mellett: Szenzor
Típus
Mért adatok
Accelerométer
ADXL345
3D [X, Y, Z]
Magnetométer
HMC5883L
3D [X, Y, Z]
Giroszkóp
ITG-3200
3D [X (roll), Y (pitch), Z (yaw)]
2.1. táblázat.
A SparkFun 9DOF sensor stick-jének szenzorai
A három szenzor együttesen képezhet IMU-t (Inertial Mesurement Unit), amely a különféle szenzorok hibáit kijavítva képes abszolút koordináták meghatározására. Ezt alkal-
19
mazzák az irányítástechnika számos területén. Bár kifejezetten izgalmas (és lehetséges) volna akár a teljes éjszakai mozgást lekövetni IMU-algoritmussal, jelen dolgozat keretei ennek az egyébként igen számításigényes algoritmusnak a kidolgozását nem teszik lehet®vé, továbbá az adott feladat ezt nem is igényli. Sokkal egyszer¶bb metódussal is képesnek kell lennünk a megoldásig eljutni, hiszen a leegyszer¶sített feladat így hangzik: Állapítsuk meg a gyorsulásszenzor jeléb®l, melyek
azok az id®szakok, amelyekben az alany sokat mocorog .
2.3. A jelek feldolgozása
DAT1 xi xi pitchi
Label ADXL345: HMC5843: PSITG3200: SEQ: 2.5. ábra.
DAT2 yi yi rolli i
DAT3 zi zi yawi
A 9DOF-szenzormodul kimenetének felépítése
A program a mérési adatokat szövegfájlba menti, azonban a sorok szétválasztását el kell végeznünk a MATLAB-os feldolgozás el®tt. A fájl felépítésér®l ad áttekintést a 2.5. Jól látható, hogy az els® oszlop címkeként használható. A szétválasztásra sok módszer alkalmazható, talán az egyik legkényelmesebb az
awk
segédprogram alkalmazása. Ez a
kicsi, de nagy hatékonyságú segédprogram szövegfájlokat képes soronként feldolgozni, és a sorokon belüli mez®ket külön kezelni. A programot a következ®képpen használhatjuk a bejöv® adatsorok szétválasztására.
awk -F : "{print $0 >> $1}" 9DOFDAT.TXT
Accelerometer data 25 Acceleration − x Acceleration − y Acceleration − z Acceleration − vector length
20
15
Acceleration
m s2
10
5
0
−5
−10
−15
−20
0
0.5
1
1.5 Time (sec)
2.6. ábra
20
2
2.5 4
x 10
li =
q x2i + yi2 + zi2
(2.1)
Mivel a mozgolódás kimutatásához nincs szükségünk információra az egyes tengelyeken történ® gyorsuláskomponensekr®l, kizárólag a három vektor összegzéséb®l adódó vektor hosszát kell vizsgálnunk, a többi adatot nem szükséges tárolnunk. Ezt a vektorhosszat a 2.1 képlettel számíthatjuk. Mivel az alvási fázisokra való visszakövetkeztetést a potenciális felhasználási módnak megfelel®en online-nak célszer¶ elképzelnünk, a felhasznált algoritmusoknak is mikrokontrolleres rendszerben megvalósíthatónak, online elvégezhet®nek kell lenniük. Ennek megfelel®en els®ként a tárolás problémájával szembesülünk. Mivel a gyorsulásmér® adatait kétbájtos formátumban tárolja, a három dimenzió egyetlen mérési értéke hat bájton fér el. Ha tében
6B
· 30 1s
30Hz-es
mintavételi frekvenciával számolunk, az egy nyolcórás alvás ese-
· 8 · 60 · 60s = 5184000B ≈ 5M B
adat gy¶lik össze, melynek tárolása ugyan
lehetséges, a felhasználás szempontjából azonban felesleges, és az eszköz kis méretére való tekintettel célszer¶ nem elmenteni az összes adatot. Látható, hogy a jel tartománya az ADXL345 beállításainak megfelel®en értéket fed le, ahol
g
a nehézségi gyorsulás értéke, és
g≈
Ebb®l következ®en a skálázást a következ®képpen számítjuk: ség. Az mintavételezési frekvencia
1 id®egység 30
30Hz,
±512,
ez
±2g
9,81 sm2 . 4g 1024
≈ 0,0383 sm2
az egy-
ebb®l következ®en az egy mintavételhez tartozó
˙ . = 33,33s
Fentiek értelmében kizárólag a vektorhosszt tároljuk el minden mérési ponthoz. A minták szemrevételezésével és kísérletezéssel úgy t¶nik, 1024-elem¶ ablakokban érdemes dolgozni. Az algoritmus els® lépéseként tehát kiszámoljuk a vektor ered® hosszát. Az így kapott eredmény még ofszethibával terhelt, a nehézségi gyorsulásból adódóan. Bár ez az eltérés az algoritmust nem befolyásolhatná, szebb, jobban átláthatóbb eredményt kapunk, ha ezt a kivonást elvégezzük. A fenti számítás eredményeképp a nehézségi gyorsulás értéke 256, így ezt kell kivonnunk az ered®b®l. Az 1. fejezetben bemutatott ablakozó-integráló sz¶réssel tudunk itt is dolgozni. A lépések hossza és az ablak mérete eltér®, az eltér® mintavételi frekvenciának megfelel®en és a mozgás jellemz®ib®l adódóan. A fentiek eredményeképp kapjuk a 2.7 ábrán látható grakont. Jól látszik, hogy a nagyjából ötórás mintában három látványos mozgásos id®szakot tudunk felismerni.
2.4. A MATLAB-forráskód A feladatot megvalósító MATLAB-forráskód a Függelékben (F.0.2) megtalálható.
21
2.7. ábra.
Mozgásanalízis
22
3. fejezet
Javaslat az alvásmeggyel® rendszerre 3.1. Alapvet® megfontolások A rendszer megtervezéséhez mindenképpen gyelembe kell vennünk néhány alapvet® feltételt. Mivel egy feltételezhet®en rosszul alvó személy alvását szeretnénk meggyelni, fontos, hogy a lehetséges keretek között minimalizáljuk a magával a rendszerrel történ® megzavarását. Itt els®dlegesen az eszköz méretéb®l adódó diszkomfortot kell minimalizálni. A mérettel kapcsolatban tapasztalatom szerint a mér®eszköz magasságára a legérzékenyebb a felhasználó, ezt szeretném minimalizálni. A zikai méret mellett az üzemid®re, és ennek következtében a fogyasztásra kell kitérnünk. Bár a mikrokontroller fogyasztása jelent®sen függ az azon futtatott algoritmustól, a lehetséges mértékig csökkentenünk kell a teljes rendszer áramfelvételét, hiszen a felhasználó egy éjszakán belül biztosan nem fogja tudni feltölteni az akkumulátort. Mivel az eszköz prototípus fázisra készül, minden olyan lehet®séget érdemes beletervezni, ami a kés®bbiek során hasznos lehet. Mivel a mikrofon által felvett hang zajosságára a konkrét prototípussal való kísérletezés nélkül nehéz becslést adni, két teljesen eltér® mikrofonos mérésre is lehet®séget biztosítok az áramkörben: egy egyszer¶, csiptet®s módszerrel rögzíthet® mikrofonnal és egy sztetoszkópfejre applikált mikrofonnal is lehet majd teszteket végezni.
3.2. F®bb alkatrészek kiválasztása 3.2.1. Gyorsulásmér® A gyorsulásmér®re vonatkozóan igen kevés el®re ismert követelménynek kellett teljesülnie. Mivel az algoritmus a 3D gyorsulásvektor ered® hosszával dolgozik, biztosan 3D-s gyorsulásmér®re van szükség. Az elérhet® 3D-s gyorsulásmér®k fogyasztása, zikai mérete, ára b®ven elfogadható tartományban mozog, így a munkám során korábban már megismert MMA8451Q IC-re esett választásom.
23
3.2.2. Mikrofon A mikrofon kiválasztásával kapcsolatban nincs szükség semmilyen különleges megfontolás betartására, hiszen a frekvenciatartomány, hangmin®ség a tesztadatok alapján csekély hatással van az algoritmus pontosságára. Egyszer¶ irányítatlan mikrofonokat alkalmazunk. A sztetoszkópfejbe szerelend® mikrofon esetében fontos a zikai méret, hogy a beépítés mechanikailag megoldható legyen.
3.2.3. SD-kártya Az SD-kártyával kapcsolatban a tárkapacitás az egyetlen izgalmas paraméter. Egyszer¶ becsléssel azonban gyorsan kiszámítható, hogy a ma kapható SD-kártyák szinte bármelyike b®ven alkalmas egy éjszakányi adat tárolására. 8kHz mintavételi frekvenciával, 12-bites adatokkal, mono felvétellel, 12 órányi mérésre a következ®t kapjuk:
8000
sample bit · 12 · 12 · 60 · 60sec = 4147200000bit ≈ 495MB sec sample
(3.1)
Lényegében tehát minden ma kapható SD-kártya teljesíti a b® egyéjszakányi mérés képességének kritériumát.
3.2.4. Mikrokontroller A mikrokontroller kiválasztásának szempontjai közül kiemelten fontos volt a kis fogyasztás és méret és a jó támogatottság. Fentieket a Freescale Kinetis-L szeriája igen jól teljesíti, így az MKL25Z kontroller egy változata (MKL25Z128VFT4) került a rendszerbe.
3.3. A kapcsolási rajz ismertetése A teljes kapcsolási rajz a Függelékben megtalálható.
3.3.1. A top modul (3.1 ábra) Az áramkör viszonylagos bonyolultsága megköveteli a hierarchikus felépítést. Mivel nagyon törekedtem arra, hogy a rendszer teljesen átlátható legyen, kétszeres hierarchiát valósítottam meg: egyrészt az Altium Designer által támogatott többlapos, hierarchikus tervezéssel dolgoztam, másrészt pedig a legfels® lapon, a top modulon logikai kategóriákba csoportosítottam az egyes részegységeket. A top modul tehát összefoglalva mutatja be a teljes rendszert, megvalósítja a 3 alatt található rendszertervet. Tekintsük át röviden a top modulban található csoportokat és egyes elemeit. 1.
Communication interfaces: Ide kerültek azok a részegységek, amelyek a külvilággal való adatkapcsolatot végzik: (a)
Debug UART: A részegység feladata, hogy a fejlesztés során hibaüzenetekkel, információval szolgáljon a m¶ködésr®l
(b)
SWD interface: A felprogramozást és szoftveres debuggolást valósítja meg 24
1
2
Battery charging and power U_SEPIC_charger SEPIC_charger.SchDoc
U_DEBUG_UART DEBUG_UART.SchDoc 3V3
VBAT+
VBAT+
PIBT10
Vcc uC_RX uC_TX GND
COBT1 BT1 Battery
PIBT102
VBAT-
Vin
Vout GND
SHDN
PIS402
GND 3V3
10uPIC10 2 100nPIC702
COC11 C11 PIC1 01 10u
PIC1 02
BYP
PIIC104 PIC4201PIC4202 PIC4201 PIC4202
GND
470p
100nPIC802
GND
PIC902
100n
GND
COL3 L3
3V3 +
10uPIC1602
COL4 L4 1m
1m PIL302
C16 PIC1601 COC16
PIL301 PIL402
C13 PIC1301 COC13
PIC1302
NLI2C00SCL I2C0_SCL NLI2C00SDA I2C0_SDA NLPTD0 PTD0 NLPTD1 PTD1
3V3
100n
PIC1402
USB0_P USB0_N
3V3A PIL401
COC14 PIC1401 C14 100n
PIC1502
PIU202 PIU203 PIU204 PIU205
COC15 PIC1501 C15 100n
SCL 3V3 SDA GND INT1_ACC INT2_ACC
A
GND
PIU206
ADC0_DP0 PIU207 ADC0_DM0 PIU208 NL3V3A 3V3A PIU209
NLGNDA GNDA GND
PIU2010 PIU2011 PIU2012
3V3
Data storage GND
U_uSD uSD.SchDoc
NLSPI10MISO SPI1_MISO NLSPI10MOSI SPI1_MOSI NLSPI10SCK SPI1_SCK NLPTA1 PTA1 NLPTA2 PTA2 NLPTA4 PTA4
GND
PIH101 PIH201 PIH301 PIH401 PIH501 PIU2048 PH1 ICOH1 U2047 PIU2046 PH2H3H4 ICOH2 U2045 PICOH3 U204 PICOH4 U2043 PIU2042 PIU2041 PIU2040 PIU2039 PIU2038 PH5 ICOH5 U2037
COC9 PIC901 C9
PIC1202
PIU201
C
NLADC00DP0 ADC0_DP0
VOUT
GND
NLUSB00N USB0_N NLUSB00P USB0_P
3V3A
COC12 C12 PIC1201 10u
COC8PIC801 C8
GND
3V3
VUSB
VUSB USB_N USB_P GND
COC42 C42
+
COC7 C7PIC701
NLMIC2 MIC2 COSW1GND SW1
PISW103
U_accelerometer accelerometer.SchDoc
GND
3V3 +
+
COC10 PIC10 1 C10
GND
PTD7
COS4 S4
U_USB USB.SchDoc
3V3
PIIC105
PI C102
PTA19 PIS401
PID701 PID802 P ID802 PID801
COD7 COD8 D7 D8 COIC1 IC1 TC1014_LDO
1M
PIPIIC103 R40 2
MIC_IN VREF VIN-
PISW102
U_SWD_interface SWD_interface.SchDoc NLSWD0DIO SWD_DIO SWD_DIO NLSWD0CLK SWD_CLK SWD_CLK NLRST RST RST GND GND
COR40 R40
RST PIC4101 PIC4101PIC4102 PIC4102 B
PISW101
PTD1 PTD0 SPI1_MISO SPI1_MOSI SPI1_SCK
PID601P PID702 ID702
COD6 D6
PIPIIC101 R40 1
U_AMP AMP.SchDoc
NLMIC1 MIC1
GND
MIC2 PIMIC202
GND
VBAT+
COC41 C41 1u
MIC1
PIMIC101
GNDA
GND PID602
4
Signal conditioning
PIMIC102
COMIC2 MIC2
PIMIC201
GND
VUSB
COMIC1 MIC1
NLUART00RX UART0_RX NLUART00TX UART0_TX
PTD5
A
VCHRG V_FB I_FB CNTRL S/S GND
PTD7 PTD6/LLWU_P15 PTD5 PTD4/LLWU_P14 PTD3 PTD2 PTD1 PTD0 PTC7 PTC6/LLWU_P10 PTC5/LLWU_P9 PTC4/LLWU_P8
VUSB
NLTPM20CH1 TPM2_CH1 NLADC00SE23 ADC0_SE23 NLADC00DM0 ADC0_DM0 NLPTA18 PTA18
3
Sensors
Communication interfaces
VDD VDD USB0_DP USB0_DM VOUT33 VREGIN PTE20 PTE21 VDDA VREFH VREFL VSSA
PTC3/LLWU_P7 PTC2 PTC1/LLWU_P6/RTC_CLKIN PTC0 PTB17 PTB16 PTB3 PTB2 PTB1 PTB0/LLWU_P5 RESET_b PTA19
3V3
MISO 3V3 MOSI GND SCK CS# CARD_DETECT EN
GND
B
Feedback and user interaction COU2 U2
U_vibr_motor 3V3 vibr_motor.SchDoc
NLTPM20CH0 TPM2_CH0 3V3 PIU2036
PIR801
TPM0_CH1 TPM0_CH0
PIU2035 PIU2034
PIU2033 PIH601
UART0_TX COH6 PIU2032 H6 UART0_RX PIU2031
TPM2_CH1 PIU2030 TPM2_CH0 PIU2029 PIU2028 PIH701 COH7 PIU2027 PIH801H7 RST COH8 PIU2026 H8 NLPTA19 PTA19 PIU2025
NLPTD5 PTD5 C38 10n
3V3
PIR901
COR8 R8 10k
PIR802
PIS10 COC38 PIC3802 PIC3801
Vcc CONTROL GND
NLPTD7 PTD7 COS1 S1
GND
COR9 R9 10k
PIR902
PIS201 COC39 PIC3901
C39 10n PIC3902
PIS102
PIS20
GND
GND
C
3V3
COR10 R10
PIRGB102
Vdd
R
PIRGB101 PIR1002
COS2 S2
G
PIRGB104 PIR1102
B
PIRGB103 PIR1202
NLTPM00CH0 TPM0_CH0
PIR1001
220 COR11 R11
NLTPM00CH1 TPM0_CH1
PIR1101
220 COR12 R12
NLTPM00CH2 TPM0_CH2
PIR1201
220
PTE29 PTE30 PTE24 PTE25 PTA0 PTA1 PTA2 PTA3 PTA4 VDD VSS PTA18
RGB1 CORGB1
3V3
Title
PTA18
TPM0_CH2 ADC0_SE23 I2C0_SCL I2C0_SDA SWD_CLK PTA1 PTA2 SWD_DIO PTA4
PIU2013 PIU2014 PIU2015 PIU2016 PIU2017 PIU2018 PIU2019 PIU2020 PIU2021 PIU202 PIU2023 PIU2024 D
2
Date: File:
Revision 1.0
2013.12.22. C:\Users\..\alvasfigyelo.SchDoc
3
3.1. ábra.
(c)
Number
A4 GND
1
D
Alvásfigyelő - TOP module Size
Sheet of Drawn By:
Marcell Rátky
4
A TOP modul
USB: Adatkapcsolat PC felé, az SD-kártyáról való adatátvitelt és a felhasználói beállítások feltöltését teszi lehet®vé
2.
Battery charging and power: Itt kaptak helyet a tápsz¶réssel, feszültségkonvertálással, akkumulátortöltéssel kapcsolatos áramkörök
3.
Sensors: (a)
MIC1 / MIC2:
A rendszerben két mikrofon csatlakoztatására is lehet®séget
biztosítunk, az egyik egy sztetoszkópos mérést tud megvalósítani, a másik pedig egyszer¶ mikrofonos megoldás. Szükség esetén természetesen bármilyen mikrofonnal lehet kísérletezni. (b)
Accelerometer:
Gyorsulásmér® áramkör, a rendszerhez
I 2 C -interface-szel
és
megszakításkérésekkel csatlakozik 4.
Signal conditioning: A mikrofonok jelének er®sítésére, jelkondícionálására szolgáló részegység
5.
Data storage: A rögzített minták oine elemzésére és esetleges naplózási üzenetek tárolására használandó, SD-kártyát alkalmazó rész
6.
Feedback and user interaction:
A felhasználóval való I/O kommunikációt vég-
zi, bemeneti oldalról nyomógombokkal, kimenetir®l pedig egy RGB-LED-del és egy rezg®motorral
25
7.
Mikrokontroller: Ez az egység már csak a mikrokontroller kivezetéseinek konkrét bekötését tartalmazza. A nem használt I/O-kat további fejlesztés céljából és biztonsági okokból tüskesorra vezetjük
3.3.2. A jelkondícionáló modul (3.2 ábra) Az áramkör
1 két feladatot lát el: áthelyezi a jel nulla értékét a tápfeszültség felére, és feler®-
síti a mikrofon jelét. A top modulon megtalálható kapcsoló állásával kiválasztott mikrofon
2 0..3,3V
jele eredetileg a
3
tartományban kaphat értéket. Ez azonban a mikrofon zikai m¶-
ködése miatt a jel egyik felének elvesztését okozná, ahol pedig m¶ködne, feleslegesen nagy tartományt foglalhatna el a jelszint. Ezért az er®sít® fokozat referenciapontját (U3A er®sít® 3-as pinje) nem földpontra, hanem a tápfeszültség felére választjuk. Ennek megfelel®en
±1,65V
a jel már
tartományban kaphat értéket. A két fokozat összességében
er®sítést tesz lehet®vé, az
R23
100 − 200×
potenciométer beállításának megfelel®en. A megvalósításá-
ra MCP6L02 m¶veleti er®sít®t választottam, mivel amellett, hogy teljesíti a frekvenciára, sebességre vonatkozó kritériumokat, egészen alacsony áron be is lehet szerezni.
VCC PIU308
Vcc+
POGND GND PIU304 VccCOU3C U3C
GND
A = -2 Sets reference to VREF/2
A = -50..-100
COC25 C25
VREF_HALF
PIR2401 POMIC0IN MIC_IN
PIR2402
PIC2501PIC2502 PIC2501 PIC2502
COR22 R22 50k
2.4k COR21 R21
COR24 R24 2.7R
1.2k
COC26 C26 PIC2602PIC2601
PIR2102
COR25 R25 PIR2502
PIR2501
4.7u VREF_HALF
PIR2101
PIR2201
2
PIU302
1
PIU301
3
100k
5
COR23 R23
7
PIU307
POVOUT VOUT
COR27U3B R27 COU3B 1k
PIR2701
VREF_HALF
PIR2801 PIR2901
VREF_HALF
PIC2901 C29 COC29 PIC2902 1u
COR29 R29 POVIN0 VIN-
PIR2702
COC28 PIC2802 C28 100nPIC2801
PIR2802
COR28 R28 100k
PIR2303
PIU305
COU3A U3A POVREF VREF
6
PIR2602 PIU306
4.7u 1k
PIU303
PIR2202 PIR2301
PIR2302
COC27 COR26 C27 R26 PIC2701PIC2702 PIC2701 PIC2702 PIR2601
10p
PIR2902
GND 3.2. ábra.
A jelkondícionáló modul kapcsolási rajza
3.3.3. Debug UART (3.3 ábra) Az áramkör rendkívül egyszer¶, hiszen az UART-kapcsolatot a mikrokontroller támogatja, és küls® UART/USB-átalakítót fogunk használni. Az
1
Az elvégzett méréseknek megfelel®en az
R24
R38
jel¶ felhúzóellenállás, az
Ω
ellenállás értéke 100k
26
R39
értékre módosul!
Title Amplificator and signa Size A4
Number
esetleges oszcilloszkópos mérések során hasznos, az beültetjük, a
J1
csatlakozóról
3,3V
R37
pedig jumper szerep¶: amennyiben
tápfeszültséget is levehetünk (a legtöbb UART/USB-
átalakító esetében erre nincs szükség).
POVcc POVCC Vcc
PIR3802
PIR3701
PIR3801
PIPIJ101 R3702
COR38 R38 10k
2
POUC0RX POuC0RX uC_RX POuC0TX POUC0TX uC_TX POGND GND PIR3901
COR37 R37 0R
PIJ102 PIJ103 PIR3902 PIJ104
COJ1 J1
3
1 2 3 4
COR39 R39 10R
3.3. ábra.
Az UART modul kapcsolási rajza
3.3.4. Az SWD-kapcsolat (3.4 ábra) Az SWD (Serial Wire Debug) kétpines programozást, debuggolást tesz lehet®vé. Gyakorlatilag a JTAG szabvány továbbfejlesztett változata, melynek legnagyobb el®nye, hogy sokkal kevesebb I/O-lábat használ fel (JTAG esetében a TDI, TDO, TCK, TMS és az opcionális TRST lábra volt szükség, míg az SWD mindössze SWD_DIO és SWD_CLK lábakon kommunikál).
COP2 P2 PIP201
POGND GND
PIP203 PIP205 PIP207 PIP209
1 3 5 7 9
2 4 6 8 10
POSWD0DIO SWD_DIO
PIP202
POSWD0CLK SWD_CLK
PIP204 PIP206 PIP208
PORST RST
PIP2010
Header 5X2H 3.4. ábra.
Title Debu
Az SWD-interfész kapcsolási rajza
Size A4
3.3.5. USB-kapcsolat (3.5 ábra)
Date: File:
Az USB-kapcsolat a PC-hez történ® kapcsolódást teszi lehet®vé, célja els®dlegesen a mérési
2
3
adatok SD-kártyáról való kényelmes letöltése és kongurációs adatok átvitele SD-kártyára. Az áramkör jelent®s része védelmi célokat szolgál. A
P1
jel¶ alkatrész egy PTC biztosíték,
amely kiold (nagy ellenállásúvá válik), ha az áramfelvétel meghaladja az el®írt értéket, viszont regenerálódik, amint h®mérséklete visszatér eredeti állapotába. A
D1 , D2 , D3
diódák
TVS-ek (Transient Voltage Supressor), nagyfeszültség¶ tüskék ellen védenek (ESD). Az
L2
pedig egy miniat¶r szimmetrikus fojtótekercs[19].
3.3.6. Battery charging and power (3.6 ábra) Az akkumulátor töltését egy SEPIC tölt®vel terveztem meg. A töltésvezérlést az els® változatban az LT1512 IC-vel, kés®bb azonban szoftveresen, FET-tel tervezem kivitelezni. Utóbbi el®nye a kevesebb alkatrész és egyszer¶bb felépítés, bár kétségkívül hátránya, hogy egy esetleges szoftveres hiba így nagyobb valószín¶séggel okoz problémát. Az akkumulátor
27
Title SWD connection Size
Number
COL1 L1
POVUSB VUSB
PIL102
COP1 P1 PIL101 PIP101
PIC401
PID102
+
PIC402
POGND GND
PIP102
COC4 C4
COD1 D1 GND
USB_N POUSB0NNLUSB0N USB_N
GND
NLUSB0P USB_P POUSB0P USB_P
10p
C6 PIC602 COC6
PIC601
10p
PIL202
COR6 R6 10R
GND
COL2 L2
PIC502 COC5 C5
PIC501
PID10 PIL201
PIR601
PIR602
PIR701
PIR702
PICON101 PICON102
PIL203
PIL204
COR7 R7 10R
PID20 PID302 COD2 D2
PID201
PICON103 PICON104 PICON106 PICON105
COCON1 CON1
COD3 D3
PID301
Vbus DD+ GND ID Shield
GND
GND
3.5. ábra.
Az USB modul kapcsolási rajza
3 − 4,2V
feszültségét még át kell konvertálnunk az integrált áramkörök számára megfelel®
3, 3V -ra.
Ez igen egyszer¶en megoldható egy LDO feszültségkonverter segítségével. Fel-
merül azonban egy megoldásra váró probléma. Az akkumulátor üzemi feszültség alá való merítése javíthatatlan károkkal jár. Ezt kivédend® az általam választott feszültségkonverter áramkörnek van egy
SHDN
Title
(shutdown) lába, amelynek '0' szintre kapcsolásával a USB connection for micro USB-B, OTG Size
Number
konverter lekapcsolja a kimenetér®l a feszültséget, megakadályozva ezzel az akkumulátor A4
Date: 2013.12.22. kell túlmerülését. Problémás azonban, hogy egyrészt a kikapcsolásnak alapértelmezésnek
Sheet of Drawn By:
2 lennie, másrészt valamilyen módon be is kell tudnunk kapcsolni az3 LDO-t. Ez utóbbi azért
4
File:
1
C:\Users\..\USB.SchDoc
nem triviális feladat, mert ha a mikrokontroller feladata a tápáramkör élesztése, akkor el®bb kellene felkapcsolnia a tápját, mint hogy önnönmaga tápfeszültséget kapna. Ezt kivédend®, az LDO kimenetét egy diódán keresztül az USB tápjával összekötjük. Ezzel azt érjük el, hogy amennyiben USB-kapcsolaton keresztül tölt®feszültséget kapunk, a kikapcsolt LDO kimenetén át tápfeszültséget juttatunk az áramkörre, így a mikrokontroller el tud indulni, és fel tudja kapcsolni önmagának a tápját. Vigyáznunk kell azonban, hiszen az USB 5V-os tápfeszültsége tönkretenné a mikrokontrollert (és más alkatrészeket is), ezért soros diódák nyitófeszültségének segítségével csökkentjük az LDO kimenetére ezáltal a mikrokontroller bemenetére jutó feszültséget. Ennek a metódusnak nyilvánvaló hátránya, hogy lemerüléskor csak az USB jelenléte esetén indítható újra az eszköz. Általánosságban ez lehetne nehézség, a konkrét esetben azonban ez pontosan így jó, hiszen a lemerült akkut nem cseréljük, csak töltjük. Biztonsági okokból egy indítógombot is tettem az áramkörre, illetve a nyomógombot a reset jelhez is hozzákötöttem.
3.3.7. SD-kártya (3.7 ábra) Az SD-kártya kapcsolásában jobb oldalon elhelyezked® áramkör az SD-kártya ki- és bekapcsolásáért felel. Ez azért nagyon fontos, mert amennyiben az SD-kártya tápja váratlanul megsz¶nik egy írási m¶velet közben, az adatok inkonzisztenssé válnak, és az sem garantált, hogy a következ® indításkor lehetne folytatni az írást. Ezért szükség esetén (brownout detection interrupt) ki kell kapcsolnunk szoftveresen az SD-kártya tápját. Az interrupt ru-
28
A
V_SW COD4 0.5A COU4 D4 U4 LT1512 PIU408 PIC3101PIC3102 PIC3101 PIC3102 PID401 PID402
PIL602
V_SW
V_IN
POS0S S/S PIU404 S/S GND
GND
PPIL601 IU405 COL6A L6A
22u 25V
COC31 C31
MBRS130LT3
2.2u FB
PIU402
PIU407 PIU406COC34PIU401 PIU403 C34PIC3401 100nPIC3402
PIR3402
COR34 R34 1k
PIR3401
PIL604
POVBAT0 VBAT+
PIR30 1
COL6B L6B
I_FB
POGND GND
PIC30 2
V_C
PIC30 1 COC30 C30
GND_S
POVCHRG VCHRG
COR32 R32
PIR3202
24R
PIC3501 C35 COC35 PIC3502 100n
PIR30 2 PIR3101
PIL603
For software-controlled charging Components needed: - Coil - 200mOhm - V_FB divider - Diode - Capacitors
NLV0SW V_SW
COR30 R30 8.18R COC32 PIC3202 C32 PIC3201 22u 25V
POV0FB V_FB COR31 R31
COC33 C33 POCNTRL CNTRL PIC3302PIC3301 100n
12.4k
PIR3201POI0FB I_FB
PIR3102
PIR3501
PIF3D03 PIR3 02
G PIF301
COR33 R33 1M
B
COF3 F3 IRLML2060TR
PIF3S02
PIR3 01
COR35 R35 200m
GND
PIR3502
POVBAT0 VBAT-
GND
A töltésvezérlés kapcsolási rajza
3.6. ábra.
C
tinban fontos, hogy belépéskor a brownout detection szintjét magasabb szintre állítsuk, ellenkez® esetben a kikapcsolás általi terheléscsökkenésre felugró tápfeszültség hibásan vissza is kapcsolná a kontrollert. Az SD-kártya card detect jelölés¶ lába jelzi a kontroller felé, hogy van-e kártya a foglalatban. A kapcsolásban ez logikai ÉS-kapcsolatban van az EN jellel, hiszen tápfeszültség nélkül, kikapcsolt állapotban logikailag értelmezhetetlen lenne a kártya létét vizsgálni. 4Ez 1 2 3 Title abban az esetben lehet fontos, ha az SD-kártyát behelyezésekor automatikusan szeretnénk
D
SEPIC battery charger module
felcsatolni egy fájlrendszerbe. Esetünkben ez nem biztos, hogy kiNumber lesz használva, de a leSize A4
het®séget hardveresen érdemes biztosítanunk.
POM SI
CS#
PIR1302 COR13 R13 10R
microSD socket
COS3 S3
DAT2
PIS30DAT2
CD/DAT3
PIS30CD0DAT3
CMD
PIS30CMD
VDD
PIS30VDD
B
PIR1301
POSCK POMISO
COC18 C18
PIC1810p 01 COR16 R16 PIC1802 10R
PIR1602 PIR1601
COC19 C19
PIC19010p 1 COR14 R14 PIC1902 10R
PIR1402 PIR1401
COC17 C17 10p
PIC1701 COR15 R15 PIC1702 10R
PIR1501 PIR1502
2013.12.22. C:\Users\..\SEPIC_charger.SchDoc
Sheet of Drawn By: Marcell Rátky
3
4
MISO
POCS#
Revision 1.0 A
Date: File:
SCK
2
MOSI
A
PO3V3 3V3 POGND GND
3V3
GND
COC20 C20
+3.3V
PIC2010p 1 PIC20 2
PIL502 COL5 L5
PIL501 PIF1S02
SD_POWER
NLEN PIF101 EN POEN EN
B
COF1 F1 IRLML5103PbF
COR19 R19
PIR1902
23.2k
PIR1901 POCARD0DETECT CARD_DETECT COC24 C24 1u
PIC2402 PIC2401
PIR2001
PIR2002
CLK
PIS30CLK
VSS
PIS30VSS
PIF1D03
PIF2D03
GND G
NLSD0POWER SD_POWER COF2 F2 PIR1702 IRLML2060TR
PIC2302
PIF201
DAT0
PIS30DAT0
DAT1
PIS30DAT1
PIR1801 COR18 R18 1M
PIS30CARD ET PIS30HIELD
PIF2S02
COC23 C23 PIC2301 100n
PIR1701
PIC2101 PIC2 02 COR17 R17 COC21 01 C22 COC22 C21 100k PIC210210u PIC2100n +
+3.3V
SHIELD
CARD DETECT
G
PIR1802
EN
COR20 R20
GND
1k
GND C
C
3.7. ábra.
Az SD-kártya kapcsolási rajza
3.3.8. Gyorsulásmér® (3.8 ábra) A gyorsulásmér® kapcsolásában lényegében az adatlap által javasolt alapkapcsolást láthatTitle SD card module
D
D
juk. A BYP lábon egy extra tápsz¶rés szerepel, amelyet a gyártó szerint akár ki is lehet Revision Size Number
IN T1
hagyni, azonban minimális el®nyökkel járna elhagyása. Az 1
funkciója programozható.
2
3
29
A4
és
Date: File:
1.0
IN T2
interrupt-lábak Sheet of
2013.12.22. C:\Users\..\uSD.SchDoc
Drawn By: Marcell Rátky 4
PO3V3 3V3 POGND GND
3V3
GND
COU1 U1
3V3
3V3
PIU101 PIU1014
PIC202
COC2 C2
PIR302
100n
4.7k SDA
PIR301
GND
PIR402
COR3 R3
GND
GND
COR4 R4
PIU1010
NLSCL PIU104 SCL PIU105 POSCL SCL NLSDAPIU106 SDA POSDA SDA
4.7k
PIR401
SCL
2
PIC301 C3 PIC302 COC3 +
PIC201
3V3
PIR502
PIR501 PIU107
COR5 4.7k R5
3.8. ábra.
VDDIO INT1 VDD INT2 GND BYP SCL 3 SDA SA0
3V3
PIR101
PIR201
PIR102
MMA8451Q 3V3
3V3
COR1 R1 4.7k
PIU1011 PIU109
COC1 C1 PIU102 PIC101PIC102 PIC101 PIC102
PIR202
COR2 R2 4.7k
POINT10ACC INT1_ACC POINT20ACC INT2_ACC GND
4
PIU1012
100n
MMA8451Q
A gyorsulásmér® kapcsolási rajza
3.3.9. Rezg®motor (3.9 ábra) A felhasználóval való kommunikációhoz (ébresztéshez) egy egyszer¶ rezg®motort választottam. Ehhez minimális kiegészít® hálózat szükséges, csak a kapcsolására és sz¶résére kell gondolnunk. A mikrokontroller I/O lábai közül mindenképpen PWM-képes lábat érdemes választani, mert csak ezzel tudjuk szabályozni a rezgés intenzitását.
POVcc POVCC Vcc
PIL702 COL7 L7 1m
PIL701
PIM10 PID502 M PIM102 PID501
COC36 C36 COC37 C37
PIC360220n 1 PIC370100n 1 COM1 M1
PIC3602
PIC3702
PIF40D3
GND
COC40 C40 2
POCONTROL CONTROL PIC4002PIC4001 100n
G PIF401
Title MMA845 accelerometer (SA0 = 1)
COD5 D5 Diode
Size
COF4 F4 IRLML2060TR
Date: File:
PIR3602
COR36 R36 1M
Number
A4
2013.12.22. C:\Users\..\accelerometer.Sc
3
PIF40S2
PIR3601 POGND GND GND 3.9. ábra.
Az rezg®motor kapcsolási rajza
3.4. A hardver kritikus elemeinek tesztje Az áramkör hardveres tekintetben legbonyolultabb eleme a kétfokozatú m¶veleti er®sít®s kapcsolás. Ennek tesztjét breadboardon végeztem el. Az áramkörhöz DIP tokozású m¶veleti er®sít®b®l csak egy helyettesít® terméket sikerült beszereznem, ez a TLC2272 áramkör, amely lényeges paramétereiben megegyezik a kapcsolásban használttal. A tesztáramkör a 3.10 ábrán látható. Az áramkör kapcsolási rajza megegyezik a 3.3.2 fejezetben jellemzett Title 3.2 kapcsolási rajzzal, azzal az eltéréssel, hogy a m¶veleti er®sít® szerepét itt az azonos lábkiosztású TLC2272 integrált áramkör tölti be.
Size
Number
A4 A második er®sít®fokozat kimeneti feszültsége a 3.12 ábrán tekinthet® meg. Jól látszik, Date: 2013.12.22. hogy az er®sít® kimenete lefedi a 0−3,3V sávot, így a kapcsolás az elvárt módon m¶ködik. A File: C:\Users\..\vibr_motor.SchDoc 2
3 30
Sheet Drawn B 4
3.10. ábra.
Az áramkör breadboardon megépített változata
3.11. ábra.
A mérési elrendezés fotója
tesztelés során egy hibára azonban fény derült: az
R24
ellenállás értékét rosszul határoztam
meg, az ellenállást le kellett cserélni egy jóval nagyobb érték¶re (100kΩ). Továbbá az er®sítés értékét is többször meg kellett változtatnom, ez azonban a potenciométer segítségével egyszer¶en megoldható volt. Az ábra készültekor az er®sítés nem volt teljesen megfelel®: a szükségesnél nagyobb érték volt beállítva, ezáltal néhány ponton túlvezérlés lépett fel. Ez csak a potenciométer beállításától függ, így a teszt eredményét nem befolyásolja.
3.5. A hardver terve Az alvásmeggyel® rendszer 3D-látványterve a 3.13 és a 3.14 ábrákon látható. Az áramkör alakját a sztetoszkópfejes méréshez igazítottam. A nyomtatott áramkör pontosan ráilleszkedik egy általam vásárolt sztetoszkópra, az akkumulátort pedig egy mellpántban tervezem elrejteni, amely egyben rögzíti az eszközt. Ennek megfelel®en az akkumulátor csatlakozói az áramkör oldalára kerültek, oda, ahol majd a pánt fog elhelyezkedni. A kisméret¶ nyomógombokat úgy választottam meg, hogy megnyomásukhoz lehet®leg nagy er® kelljen, ekkor ugyanis minimalizálható az alvás közbeni mozgás által véletlenül történ® megnyomás. A kommunikációs csatlakozókat az áramkör szélére helyeztem, szükség esetén a kör ívéhez
31
3.12. ábra.
A második er®sít®fokozat kimeneti feszültsége
igazítottam az alkatrészeket. A mikrokontroller szabad, általános célú I/O lábait praktikus, kényelmesen hozzáférhet® pinekre vezettem ki, ezáltal szükség esetén az áramkör újratervezése nélkül használhatunk fel néhány újabb I/O-lehet®séget.
32
3.13. ábra.
Felülnézeti ábra az áramkörr®l
3.14. ábra.
Döntött ábra az áramkörr®l
33
4. fejezet
Összefoglaló, továbbfejlesztési lehet®ségek 4.1. Összefoglaló Dolgozatomban megvizsgáltam az apnoe kialakulását, légzéshangokra való hatását. Bemutattam egy egyszer¶ algoritmust, amellyel szerény pontossággal, kis er®forrásigény mellett, kielégít® pontossággal elvégezhetjük a belégzések pillanatának becslését, ezáltal megadva a két belégzés között eltelt id®tartamot. Bemutattam a mintavételi frekvencia és az er®s zavarjelek hatását a légzésvizsgálatra. Az alvásmélységre mozgásból következtet® termékek bemutatása után saját méréseim alapján kidolgoztam egy algoritmust a gyakoribb mozgással járó és a nyugodtabb, mozdulatlanabb id®szakok elkülönítésére. A kísérleti mérések alapján megterveztem és részletesen ismertettem egy, a két részfeladatnak megfelel® jelfeldolgozási feladatot megvalósítani képes hardvereszköz kapcsolási rajzát. Megépítettem és kipróbáltam az áramkör jelkondicionáló fokozatát. A m¶ködésével kapcsolatos eredményeket a 3.4 fejezet tartalmazza. Végül bemutattam az eszköz 3D-látványtervét. Dolgozatom jelen összefoglalóval és a kitekintéssel zárul.
4.2. Továbbfejlesztési lehet®ségek A jelenlegi tervezés költség- és méretminimum alapján történt. Azt gondolom, hogy egy esetleges termék is csak így lehetne sikeres, hiszen pontosan azokat a felhasználókat tekintjük célközönségnek, akik nem szeretnének id®t, energiát, jelent®s mennyiség¶ pénzt szánni alvásmin®ségük javítására, azonban otthon, mintegy játszva, olcsón szívesen használnának egy ilyen eszközt. Az alábbiakban javasolt fejlesztési irányok mind valamilyen értelemben költségnövel® hatásúak, így egy els® kiadásnál nem venném ®ket gyelembe, de érdemes készülni rájuk, hiszen ha tömeges felhasználói igény mutatkozna rájuk, nem lenne nehéz megvalósítani ezeket.
34
4.3. Vezetéknélküli csatlakozási lehet®ség Mint a korábban említett aXbo és Zeo is, a jelen eszköz is csatlakozhatna küls® egységhez. Ez els®dlegesen az aktuátor tekintetében volna hasznos. A rezg®motor, vagy csipogó nem a legkellemesebb ébresztési mód, azonban egy küls® egységbe, vagy akár egy átlagos okostelefonba épített hangszórón keresztül sokkal kellemesebb ébresztés lenne lehetséges. Fontos megemlíteni, hogy a felhasználó kényelmén kívül ez lehet®séget biztosítana a jelent®s méretnövekedés elkerülésével is korlátozott sebesség¶ adatrögzítésre is, ami az apnoé modul beépítése esetén fontos lenne, a gyorsulásmér®s vizsgálatnál utólag extra elemzési lehet®séget adna. Ki kell azonban emelni, hogy egy vezetéknélküli kommunikációs modul is méretnövekedést ad, az adatátvitel sebessége pedig csak korlátozott mintavételezési sebességet enged meg. Ezen felül a kommunikáció teljesítményfelvétele sem elhanyagolható. Ez utóbbi csökkenthet® BLE (Bluetooth Low Energy) alkalmazásával, de ez nem igazán alkalmas folyamatos adatátvitelre. Nehéz tehát megtalálni az optimumot, és ez egy termék esetében piackutatást is igényelne. Véleményem szerint egy küls® modul alkalmazása esetén a minimális adatátvitelre érdemes törekedni, tehát lehet®leg csak az ébresztés triggerelését célszer¶ vezeték nélkül átvinni.
4.4. Feldolgozás precizitásának növelése A fenti feldolgozási lépések költséghatékonyak bár, de a pontosság még egészen biztosan növelhet® lenne, további mérésekkel, kísérletezéssel. A hangjeleknél hosszú ideig spektrogrammal és PCA-val próbáltunk eredményre jutni, de a PCA komplexitása meghaladta a rendelkezésre álló számítási teljesítmény kereteit, így ezzel fel kellett hagynunk. Kés®bb azonban, amikor konkrét termékfejlesztésre kerülne sor, mindenképpen ismét meg kellene vizsgálni a frevenciatartományban való analízis és a f®komponens-analízis lehet®ségét.
4.5. M¶ködés igazolása alváslaboratóriumi vizsgálattal Amint azt az aXbo eszköz esetén megtették, tanulságos lenne ennél az eszköznél is alváslaboratóriumi teszteket végezni. Pusztán az eszköz által rögzített jelek összevetése az alváslabor precíz méréseivel már nagyon hatékony segítséget adna a feldolgozás tökéletesítéséhez. Az alvásfázisok EEG-b®l történ® megállapítása egyszer¶ feladat, a mozgásszenzor méréseit ezzel lehetne igazolni.
35
Köszönetnyilvánítás Köszönöm konzulensemnek, dr. Sujbert Lászlónak, hogy folyamatosan felügyelte a munkámat, tanácsokat és biztatást adott. Küls® konzulensemnek, Tatai Péternek, hogy lehet®séget adott a dolgozat Aitia International Zrt.-nél történ® megírására. Külön köszönettel tartozom Tihanyi Attila tanár úrnak, a PPKE tanárának, hogy szakmai tapasztalatával végig segítette munkámat. Rengeteg fontos tanácsot, segítséget kaptam t®le a munkám során. Köszönöm továbbá kollégáimnak az Aitia International Zrt-nél, hogy tanácsaikkal segítették a dolgozat létrejöttét. És köszönöm mindenkinek, aki támogatta a munkámat, de most nem soroltam fel
,
36
Függelék function [ peaks , locs , origwavdata , origwavfs , rsmwavdata , rsmwavfs , ←filtered_data , filtered_fs ] = breathfind ( wavfile ) % BREATHFIND Function to find breathing pattern in a wav file % wavfile : name and path of the input wav file % % peaks : amplitude of those peaks % locs : locations of peaks , in seconds % % -- debug outputs -% origwavdata : original wav data % origwavfs : sampling frequency of the original wav data % rsmwavdata : original wav data , resampled to 8 kHz % rsmwavfs : 8 kHz % filtered_data : wav data after all filtering operation % filtered_fs : 8 kHz % % -----------------------close all ; clc ; if nargout > 2 disp ( ' Running in debug mode ! '); end [ wavdata , wavfs ] = audioread ( wavfile ); origwavdata = wavdata ; origwavfs = wavfs ; % resampling newfs = 8 e3 ; [P , Q] = rat ( newfs / wavfs ); wavdata = resample ( wavdata ,P ,Q); wavfs = newfs ; clear P Q; if nargout > 2 rsmwavdata = wavdata ; rsmwavfs = wavfs ; end load bpf150 ; wavdata = filter ( Hbp , wavdata );
37
% windowed integrating filtering wstart = 1; wstep = 1000; % window stepsize wsize = 10000; % window size x = 0; res = zeros (1 , length ( wavdata )) ; while ( wstart + wsize <= length ( wavdata )) tmp = 0; for i = wstart : wstart + wsize tmp = tmp + wavdata (i) ^2; end res (1 , wstart + wsize /2) = tmp ; x = x + 1; wstart = wstart + wstep ; end if nargout > 2 filtered_data = res ; filtered_fs = wavfs ; end [ peaks , locs ] = findpeaks ( res , ' MINPEAKDISTANCE ', 20*1000 , ' THRESHOLD ', 25e -4) ; locs = locs / wavfs ; % converting location dimmension to seconds end F.0.1. Listing.
A hangelemzést végz® függvény MATLAB-forráskódja
function [ res ] = movefind ( x , y , z ) % BREATHFIND Function to find breathing pattern in a wav file % x: x - component of acceleration data % y: y - component of acceleration data % z: z - component of acceleration data % % res : result -- whatever the hell that is TODO
close all ; clc ; % a : length of the acceleration vector a = zeros (1 , length (x)); % substracting gravitational acceleration ( offset ) % + -2 g = 1024 => 1g = 256 for i =2: length (x) a(i ) = sqrt ( x(i) ^2 + y(i) ^2 + z(i) ^2) - 256 ; -1) ^2 + z(i -1) ^2) ; end % windowed integrating filtering wstart = 1; wstep = 30*30; % window stepsize wsize = 300*30; % window size x = 0; res = zeros (1 , length (a)); while ( wstart + wsize <= length (a) ) tmp = 0;
38
%
- sqrt (x(i -1) ^2 + y(i ←-
for i = wstart : wstart + wsize tmp = tmp + a( i) ^2; end res (1 , wstart + wsize /2) = tmp ; x = x + 1; wstart = wstart + wstep ; end res ( res ==0) = NaN ; t =1/30:1/30: length ( res ) /30; figure ; hold on ; stem (t , res , '. ', 'g '); stairs (t , a *30*30 , 'k '); hold off ; end F.0.2. Listing.
A mozgáselemzést végz® függvény MATLAB-forráskódja
39
D
C
B
1
100n
GND
COC2 PIC202 C2
PIC201
3V3 +
GND
COC3 PIC302 C3
PIC301
2
2
PIR301
PIR302 SDA
A
1
COR3 R3 4.7k
3V3
PIR401
PIR402 COR4 R4 4.7k
GND
PO3V3 3V3 POGND GND
SCL
3V3
GND PIU1010
PIU1014
PIU101
3V3 MMA8451Q
PIR501 PIU107
COR5 4.7k R5
PIR502
VDDIO INT1 VDD INT2 GND BYP SCL SDA SA0
COU1 U1 MMA8451Q
NLSCL PIU104 SCL PIU105 POSCL SCL NLSDAPIU106 SDA POSDA SDA
3V3
COC1 C1
3
100n
PIU1012
PIU102 PIC101PIC102 PIC101 PIC102
PIU109
PIU1011
PIR102
PIR202
GND
Date: File:
A4
Size
2013.12.22. C:\Users\..\accelerometer.SchDoc
Number
Title MMA845 accelerometer (SA0 = 1)
POINT10ACC INT1_ACC POINT20ACC INT2_ACC
COR2 R2 4.7k
PIR201
PIR101 COR1 R1 4.7k
3V3
3V3
3
Revision 1.0
4
Sheet of Drawn By: Marcell Rátky
4
D
C
B
A
D
C
B
C16 PIC1601 COC16
3V3
GND
10uPIC1602
10u
100n
1
GND
PIC1402
100n
COL4 L4 1m
PIC1202
COC12 C12 PIC1201
COC14 PIC1401 C14
PIC1302
BYP
COC9 C9 100n
PIC1502
100n
COC15 PIC1501 C15
PIL401
3V3A
GND
PIC902
PIC901
PIIC104 PIC4201PIC4202 PIC4201 PIC4202
470p
PIIC105
COC42 C42
COD8 D8
Vout
3V3A
GND
PI C102
COD7 D7
COIC1 IC1 TC1014_LDO
PIL301 PIL402
GND
GNDA
Battery
COBT1 BT1
PID701 PID802 P ID802 PID801
GND
PIBT102
PIBT10
VBAT+
C13 PIC1301 COC13
PIL302
COC8PIC801 C8
100nPIC802
COL3 L3 1m
PIC1 02
10uPIC10 2 100nPIC702
10u
3V3
PIS402
SHDN
1M
PIPIIC103 R40 2
COC11 C11 PIC1 01
COS4 S4
PTA19
Vin
COR40 R40
COC7 C7PIC701
COC10 PIC10 1 C10
GND 3V3
COC41 C41 1u
PIPIIC101 R40 1
COD6 D6
PID601P PID702 ID702
VBAT-
VBAT+
PID602
VBAT+
VUSB
RST PIC4101 PIC4101PIC4102 PIC4102
PIS401
GND
+
A
NLTPM20CH1 TPM2_CH1 NLADC00SE23 ADC0_SE23 NLADC00DM0 ADC0_DM0 NLPTA18 PTA18
VCHRG V_FB I_FB CNTRL S/S GND
+
GND
VUSB
U_SEPIC_charger SEPIC_charger.SchDoc
Battery charging and power
+
GND
3V3
GND
NLUART00RX UART0_RX NLUART00TX UART0_TX
PIU206
PIU205
PIU204
PIU203
PIU202
PIU201
NLGNDA GNDA
PIU2010 PIU2011 PIU2012
ADC0_DP0 PIU207 ADC0_DM0 PIU208 NL3V3A 3V3A PIU209
USB0_P USB0_N
3V3
2
GND
NLUSB00N USB0_N NLUSB00P USB0_P
VUSB
VDD VDD USB0_DP USB0_DM VOUT33 VREGIN PTE20 PTE21 VDDA VREFH VREFL VSSA
VUSB USB_N USB_P GND
U_USB USB.SchDoc
U_SWD_interface SWD_interface.SchDoc NLSWD0DIO SWD_DIO SWD_DIO NLSWD0CLK SWD_CLK SWD_CLK NLRST RST RST GND GND
Vcc uC_RX uC_TX GND
U_DEBUG_UART DEBUG_UART.SchDoc 3V3
Communication interfaces
2
COMIC2 MIC2
COMIC1 MIC1
PIMIC201
MIC2
PIMIC202
PTC3/LLWU_P7 PTC2 PTC1/LLWU_P6/RTC_CLKIN PTC0 PTB17 PTB16 PTB3 PTB2 PTB1 PTB0/LLWU_P5 RESET_b PTA19
PIU2013 PIU2014 PIU2015 PIU2016 PIU2017 PIU2018 PIU2019 PIU2020 PIU2021 PIU202 PIU2023 PIU2024
GND
3V3
MIC1
PIMIC101
PIMIC102
Sensors
GND
GND
3
GND
3V3
3
PIU2028 PIH701 COH7 PIU2027 PIH801H7 RST COH8 PIU2026 H8 NLPTA19 PTA19 PIU2025
UART0_TX COH6 PIU2032 H6 UART0_RX PIU2031 TPM2_CH1 PIU2030 TPM2_CH0 PIU2029
PIU2033 PIH601
TPM0_CH1 PIU2035 TPM0_CH0 PIU2034
PIU2036
COU2 U2
U_accelerometer accelerometer.SchDoc NLI2C00SCL I2C0_SCL SCL 3V3 NLI2C00SDA I2C0_SDA SDA GND NLPTD0 PTD0 INT1_ACC NLPTD1 PTD1 INT2_ACC
PIH101 PIH201 PIH301 PIH401 PIH501 PIU2048 PH1 ICOH1 U2047 PIU2046 PH2H3H4 ICOH2 U2045 PICOH3 U204 PICOH4 U2043 PIU2042 PIU2041 PIU2040 PIU2039 PIU2038 PH5 ICOH5 U2037
PTD7
1
PTD5
TPM0_CH2 ADC0_SE23 I2C0_SCL I2C0_SDA SWD_CLK PTA1 PTA2 SWD_DIO PTA4
+
PTD1 PTD0 SPI1_MISO SPI1_MOSI SPI1_SCK
PTD7 PTD6/LLWU_P15 PTD5 PTD4/LLWU_P14 PTD3 PTD2 PTD1 PTD0 PTC7 PTC6/LLWU_P10 PTC5/LLWU_P9 PTC4/LLWU_P8 PTE29 PTE30 PTE24 PTE25 PTA0 PTA1 PTA2 PTA3 PTA4 VDD VSS PTA18 PTA18
PISW102
PIR802
Date: File:
A4
Size
GND
GND
3V3
NLADC00DP0 ADC0_DP0
MISO 3V3 MOSI GND SCK CS# CARD_DETECT EN
U_uSD uSD.SchDoc
Vdd
RGB1 CORGB1
PIRGB102
3V3
GND
PIRGB103 PIR1202
PIRGB104 PIR1102
PIRGB101 PIR1002
4
NLTPM00CH1 TPM0_CH1 NLTPM00CH2 TPM0_CH2 PIR1201
Marcell Rátky
Revision 1.0
220
220 COR12 R12
PIR1101
220 COR11 R11
Sheet of Drawn By:
B
G
R
NLTPM00CH0 TPM0_CH0 PIR1001
COR10 R10
Vcc CONTROL GND
U_vibr_motor 3V3 vibr_motor.SchDoc
NLTPM20CH0 TPM2_CH0
2013.12.22. C:\Users\..\alvasfigyelo.SchDoc
Number
Alvásfigyelő - TOP module
GND
COS2 S2
COR9 R9 10k
GND
C39 10n PIC3902
PIR902
P IS201 COC39 PIC3901
NLPTD7 PTD7
PIR901
PIS20
COS1 S1
COR8 R8 10k
3V3
PIS102
PIC3801
Title
C38 10n
PIS10 COC38 PIC3802
NLPTD5 PTD5
PIR801
3V3
GND
VOUT
Data storage
MIC_IN VREF VIN-
NLSPI10MISO SPI1_MISO NLSPI10MOSI SPI1_MOSI NLSPI10SCK SPI1_SCK NLPTA1 PTA1 NLPTA2 PTA2 NLPTA4 PTA4
3V3
U_AMP AMP.SchDoc
Feedback and user interaction
NLMIC2 MIC2 COSW1GND SW1
PISW103
NLMIC1 MIC1
PISW101
Signal conditioning
4
D
C
B
A
D
C
B
A
1
1
Vcc+
PIR2502
1.2k COR25 R25 PIR2501
PIR2902
PIR2801 PIR2901
2
GND
COR29 R29 100k
COR28 R28 100k
PIR2802
PIC2901 C29 COC29
PIC2902 1u
3
COU3A U3A
PIU303
2 PIU302
PIR2102
2.4k COR21 R21
1
PIU301
PIR2101
A = -2 Sets reference to VREF/2
VREF_HALF
4.7u VREF_HALF
PIC2602PIC2601
COC26 C26
POVREF VREF
COR24 R24 2.7R
POVIN0 VIN-
POMIC0IN MIC_IN
PIR2402
PIR2401
VREF_HALF
GND
POGND GND PIU304 VccCOU3C U3C
PIU308
VCC
2
PIR2701
PIR2702
10p
PIR2302 7
PIR2303
3
PIU307
COR23 R23
PIR2202 PIR2301
COR27U3B R27 COU3B 1k
5
PIU305
6
PIR2602 PIU306
VREF_HALF
COC28 PIC2802 C28 100nPIC2801
4.7u 1k
PIC2701PIC2702 PIC2701 PIC2702 PIR2601
COC27 R26 C27 COR26
COR22 R22 50k PIR2201
PIC2501PIC2502 PIC2501 PIC2502
COC25 C25
A = -50..-100
3
Date: File:
A4
Size
2013.12.22. C:\Users\..\AMP.SchDoc
Number
4
Sheet of Drawn By: Marcell Rátky
Revision 1.0
Title Amplificator and signal conditioning module for microphone signals
POVOUT VOUT
4
D
C
B
A
D
C
1
2
PIR3701
POUC0RX POuC0RX uC_RX POuC0TX POUC0TX uC_TX POGND GND PIR3901
COR37 R37 0R
PIR3902 PIJ104
PIJ103
PIJ102
PIR3801 PIPIJ101 R3702
COR39 R39 10R
10k 1 2 3 4
COJ1 J1
3
Title Debug UART connection
Date: File:
A4
Size
2013.12.22. C:\Users\..\DEBUG_UART.SchDoc
Number
Revision 1.0
4
Sheet of Drawn By: Marcell Rátky
D
C
B
POVCC POVcc Vcc PIR3802 COR38 R38
4
B
3
A
2
A
1
D
C
B
1
POGND GND GND
2
POS0S S/S PIU404 S/S
25V
PIC30 1 COC30 C30 PIC30 2 22u
PIL601
PIU405 L6A COL6A
PIU407
PIR3401 GND
COR34 R34 1k
PIR3402
100nPIC3402
PIC3401
FB
V_SW
PIL602
COR32 R32
PIU402
PIC3502
PIC3501 COC35 C35 100n
24R
COL6B L6B
MBRS130LT3
PIR3502
PIR3501
PIR3201
COR35 R35 200m
POI0FB I_FB
PIL603
PIL604
COC31 C31 2.2u
V_SW COD4 0.5A D4 COU4 U4 LT1512 PIU408 PIC3101PIC3102 PIC3101 PIC3102 PID401 PID402
PIR3202
PIU406C34 PIU401 PIU403 COC34
GND_S
POVCHRG VCHRG V_IN GND
2
V_C
A
1
I_FB
PIR3102
PIR30 2 PIR3101
PIR30 1
12.4k
POV0FB V_FB COR31 R31
COR30 R30 8.18R
3
3
PIC3201
100n
POCNTRL CNTRL PIC3302PIC3301
COC33 C33
PIR3 01
PIR3 02
Date: File:
A4
Size
GND
COR33 R33 1M
G PIF301
PIFS302
Revision 1.0
4
Sheet of Drawn By: Marcell Rátky
COF3 F3 IRLML2060TR
NLV0SW V_SW
PIFD303
2013.12.22. C:\Users\..\SEPIC_charger.SchDoc
Number
Title SEPIC battery charger module
POVBAT0 VBAT-
22u 25V
COC32 PIC3202 C32
POVBAT0 VBAT+
For software-controlled charging Components needed: - Coil - 200mOhm - V_FB divider - Diode - Capacitors
4
D
C
B
A
D
C
B
A
1
1
2
2
POGND GND
2 4 6 8 10
POSWD0DIO SWD_DIO POSWD0CLK SWD_CLK
PIP2010
PORST RST
PIP208
PIP206
PIP204
PIP202
Header 5X2H
PIP209
PIP207
PIP205
PIP203
1 3 5 7 9
COP2 P2 PIP201
3
3
Date: File:
A4
Size
2013.12.22. C:\Users\..\SWD_interface.SchDoc
Number
Title SWD connection interface Revision 1.0
4
Sheet of Drawn By: Marcell Rátky
4
D
C
B
A
D
C
B
A
1
1
2
USB_P POUSB0P USB_P
NLUSB0P
GND
NLUSB0N USB_N POUSB0N USB_N
2
PIC601
PIC602
PIC501
PIC502 COC6 C6 10p
COC5 C5 10p PIL203
PIL202
POGND GND
POVUSB VUSB
COL2 L2
GND
COL1 L1
GND
PID10
PID102
GND
PID201 PID301
COD2 D2
COD3 D3
COR7 R7 10R
PIR701
Vbus DD+ GND ID Shield
3
3
COCON1 CON1
PICON105
PICON106
PICON104
PICON103
PICON102
PICON101
GND
PIR702
PIR602
PIP102
COR6 R6 10R
COP1 P1
PIR601
COD1 D1
PIL101 PIP101
PID20 PID302
PIL204
PIL201
PIC401 COC4 PIC402 C4
PIL102
+
Date: File:
A4
Size
2013.12.22. C:\Users\..\USB.SchDoc
Number
Title USB connection for micro USB-B, OTG Revision 1.0
4
Sheet of Drawn By: Marcell Rátky
4
D
C
B
A
D
C
B
1
1u
COC24 C24
PIR1901
GND
PIC2401
POCARD0DETECT CARD_DETECT PIC2402
COR19 R19 23.2k
PIR1902
+3.3V
COR20 R20 1k
PIR2001
COS3 S3
PIR2002
EN
PIS30CARD ET PIS30HIELD
CARD DETECT
PIS30CMD
CMD
DAT1
2
PIS30DAT1
PIS30DAT0
PIS30VSS
VSS DAT0
PIS30CLK
CLK
VDD
PIS30CD0DAT3
CD/DAT3
COR13 R13 10R
PIR1301
PIR1302
POCS# CS#
GND
SD_POWER PIS30VDD
PIS30DAT2
2
DAT2
microSD socket
SHIELD
A
1
COC18 C18
PIC110p 801 COR16 PIC1802 R16 10R
MOSI
PIR1601
PIR1602
POM SI COC19 C19
PIC19010p 1 R14 COR14 PIC1902 10R
SCK
PIR1401
PIR1402
POSCK COC17 C17 10p
PIC1701 R15 COR15 PIC1702 10R
MISO
PIR1502
PIR1501
POMISO COC20 C20
PIC2010p 1 PIC20 2
3
3
3V3
PIR1802
PIFS202
PIFD103 PIFD203
Date: File:
A4
Size
GND
PIR1701
COR17 R17 100k
2013.12.22. C:\Users\..\uSD.SchDoc
Number
COC23 C23 PIC2301 100n
PIC2302
COF2 F2 PIR1702 IRLML2060TR
COF1 F1 IRLML5103PbF
COL5 L5
PIL501 PIFS102
PIL502
+3.3V
Title SD card module
COR18 R18 1M
G
PIPIF201 R1801
NLEN PIF101 EN POEN EN G
GND
PO3V3 3V3 POGND GND
4
NLSD0POWER SD_POWER
Revision 1.0
4
Sheet of Drawn By: Marcell Rátky
PIC2101 PIC2 02 COC21 PIC2 01 C22 COC22 C21 PIC210210u 100n +
D
C
B
A
D
C
B
A
1
1
2
2
100n
POCONTROL CONTROL PIC4002PIC4001
PIR3601
PIR3602
PIF4D03
COD5 D5 Diode
GND
3
POGND GND
COF4 F4 IRLML2060TR
M1
COL7 L7 1m
PIM10 PID502 COM1 PIM102 PID501
M
COR36 R36 S 1M PIF402
G PIF401
PIC3702
PIC3602 GND COC40 C40
PIC3701
PIC3601
COC36 C37 COC37 C36 220n 100n
PIL701
PIL702
POVcc POVCC Vcc
3
Date: File:
A4
Size
2013.12.22. C:\Users\..\vibr_motor.SchDoc
Number
Title Vibration motor circuit Revision 1.0
4
Sheet of Drawn By: Marcell Ratky
4
D
C
B
A
Irodalomjegyzék [1] Axbo ocial homepage.
http://www.axbo.com/pages/home.
[2] Bertini M. Casagrande M.
Night-time right hemisphere superiority and daytime
left hemisphere superiority: a repatterning of laterality across wake-sleep-wake states. 2008. [3]
http://www.doctoroz.com/videos/how-identify-and-treat-sleep-apnea.
[4]
https://sites.google.com/site/sleepasandroid/home.
[5]
https://sites.google.com/site/sleepasandroid/q-a-faq.
[6] Dr. Magyar Pál; Dr. Vastag Endre.
Pulmonológiai betegségek.
Semmelweis Kiadó,
2005. [7] Karci E. et. al.
http://www.ncbi.nlm.nih.gov/pubmed/22255725.
[8] Simpson L et. al.
High prevalence of undiagnosed obstructive sleep apnoea in the
general population and methods for screening for representative controls. Centre for
Genetic Epidemiology and Biostatistics, University of Western Australia. [9] Pascual-Leone A. et al. (2011). Characterizing brain cortical plasticity and network dynamics across the age-span in health and disease with tms-eeg and tms-fmri. [10]
http://www.godfinder.org/.
[11] Gerald Luborsky, Lester; Aronson. The symptom-context method: Symptoms as opportunities in psychotherapy. Washington, DC, US: American Psychological Associa-
tion, xi, 422 pp., pages 365376, 1996. [12]
https://www.youtube.com/watch?v=wHc3HHSonqI.
[13] Division of Sleep Medicine at Harvard Medical School. Sleep, learning, and memory.
http://healthysleep.med.harvard.edu/healthy/matters/benefits-of-sleep/ learning-memory. [14] Division of Sleep Medicine at Harvard Medical School.
Why do we sleep, anyway?
http://healthysleep.med.harvard.edu/healthy/matters/benefits-of-sleep/ why-do-we-sleep.
49
[15] [16]
[17]
http://www.sciencedirect.com/science/article/pii/S1350453312001695#gr4. http://jdc.jefferson.edu/cgi/viewcontent.cgi?article=1058&context= jeffjpsychiatry. http://axbo.com/international/docs/aXbo_siesta_group_studies_summary. pdf.
[18] Psychology
Today.
http://www.www.psychologytoday.com/conditions/
sleep-apnea. [19] Dr. Thomas Brander; Alexander Gerfer; Bernhard Rall; Heinz Zenker.
Trilogy of
Magnetics. Würth Elektronik Gmbh., October 2010. [20]
http://www.myzeo.com/sleep/shop/.
[21]
http://mobihealthnews.com/20772/exclusive-sleep-coach-company-zeo-is-shutting-down/.
50