• Nebyly nalezeny žádné výsledky

Hlavní práce74897_olim02.pdf, 1.5 MB Stáhnout

N/A
N/A
Protected

Academic year: 2022

Podíl "Hlavní práce74897_olim02.pdf, 1.5 MB Stáhnout"

Copied!
45
0
0

Načítání.... (zobrazit plný text nyní)

Fulltext

(1)

Vysoká škola ekonomická v Praze

Fakulta informatiky a statistiky

Bezkontaktní měření vitálních funkcí pomocí CW Radaru a Raspberry Pi

BAKALÁŘSKÁ PRÁCE

Studijní program: Aplikovaná Informatika Studijní obor: Aplikovaná Informatika

Autor: Matěj Oliva

Vedoucí bakalářské práce: Ing. Ladislav Luc Praha, květen 2021

(2)
(3)
(4)

Poděkování

Chtěl bych tímto poděkovat svému školiteli Ing. Ladislavovi Lucovi, že se mé práci ujal a Bc.

Elišce Baklové, že mou práci procházela a stála při mně, když jsem ji psal.

(5)

Abstrakt

Bakalářská práce je reakcí na projekt, jehož účelem je vytvoření bezkontaktního monitoringu emocí člověka. Práce se zabývá první částí tohoto projektu – bezkontaktním měřením srdečního tepu a frekvence dýchání pomocí CW Dopplerova Radaru. V úvodu se práce zabývá problematikou monitoringu vitálních funkcí. Srovnává, jaké zařízení se v dnešní době používají a jaké komplikace a problémy s aktuálním řešením souvisí.

Kapitola o radarech pojednává o jejich principu fungování. Zabývá se konkrétně radary specializujícími se na Dopplerův jev. Ten je v jedné z podkapitol o radarech vysvětlen. A nakonec jsou představeny pro tuto práci nejpodstatnější typy vysílaného vlnění – kontinuální, frekvenčně-modulovatelné kontinuální a pulzní, které využívají Dopplerův jev pro zjištění rychlosti nebo polohy pozorovaného objektu.

Další kapitolou teoretické části práce jsou právě zmiňované vitální funkce. Kapitola stručně popisuje fungování jak oběhové, tak dýchací soustavy. Podkapitoly tyto procesy rozvádějí a popisují k jakým pohybům při jejich fungování dochází.

Předposlední část teorie popisuje použitý mini počítač Raspberry Pi 4 model B, jeho vznik a topologii. Pro úplnost informace o jeho univerzálním využití jsou stručně vypsány některé operační systémy, které na něj lze nainstalovat, jako Ubuntu, Manjaro, OctoPi a další.

Vzhledem k technickým omezením, které velikost tohoto mini počítače doprovází, jsou na konci kapitoly uvedeny způsoby, jakými lze jeho výkon navýšit.

Poslední teoretickou částí je uvedení 24GHz CW Radaru – OPS242-A od firmy Omnipresense. V této části práce je vysvětlena komunikace radaru s počítačem, způsob nastavení jeho parametrů a výpis jeho technické specifikace.

Praktická část se pak zabývá hlavně implementací algoritmu, který umožňuje měřit srdeční tep a frekvenci dýchání. Mimo to se zde také píše o nastavení parametrů radaru. V rámci popisu algoritmu jsou popsány jednotlivé funkce s ukázkami kódu. Kompletní zdrojový kód se nachází na konci práce v přílohách. Ve výsledcích je pak prezentován výstup této práce, čeho se podařilo dosáhnout a jaké komplikace se při jejím zpracování vyskytly. Poslední kapitolou je závěr, kde je práce shrnuta a jsou uvedeny další možnosti pokračování v této práci do budoucna.

Klíčová slova

Raspberry Pi, CW Radar, Dopplerův jev, 24 GHz, Vitální funkce, Bezkontaktní měření, OmniPresense, Dechová frekvence, Srdeční tep

JEL Klasifikace

I19, I12, L86

(6)

Abstract

This bachelor thesis is a response to a project to create a non-contact monitoring system of human emotions. The thesis deals with the first part of this project, the non-contact measurement of heart rate and respiratory rate using CW Doppler Radar. In the introduction, the thesis is about the problematics of monitoring vital signs. It compares what devices are used today and what complications are associated with them.

The chapter on radars discusses their principle of operation. It is specifically about radars using the Doppler effect. The Doppler effect is explained in one of the subchapters. Finally, the most important types of transmitted waves for this thesis are introduced – continuous, frequency-modulated continuous and pulse, which use the Doppler effect to detect the speed or position of the observed object.

The next chapter of the theoretical part of the thesis is the vital functions. The chapter briefly describes the functioning of both the circulatory and respiratory systems. Subchapters elaborate these processes and describe what movements occur during their functioning. The penultimate part of the theory describes the Raspberry Pi 4 model B minicomputer, its origin and topology. To complete the information about its universal use, some operating systems that can be installed on it, such as Ubuntu, Manjaro, OctoPi and others, are briefly listed. Due to the technical limitations that accompany the size of this minicomputer, ways in which its performance can be increased are listed at the end of the chapter.

The last theoretical part is the introduction of the 24GHz CW Radar – OPS242-A from Omnipresense. This part of the thesis explains the communication of the radar with the computer, how to set its parameters and lists its technical specifications.

The practical part deals mainly with the implementation of the algorithm that allows to measure heart rate and respiration rate. In addition, it also describes how to set the radar parameters. Within the description of the algorithm, individual functions are described with code samples. The complete source code can be found at the end of the paper in the appendices.

The output of this work is then presented in the results, what was achieved and what complications were encountered in its processing. The last chapter is the conclusion, where the work is summarized and further possibilities for future work are presented.

Keywords

Raspberry Pi, CW Radar, Doppler effect, 24 GHz, Vital functions, Contactless monitoring, OmniPresense, Breath rate, Heartbeat frequency

JEL Classification

I19, I12, L86

(7)

Obsah

Úvod ... 10

1 Radar ... 12

1.1 Princip ... 12

1.2 Proces ... 12

1.3 Dopplerův jev ... 13

1.4 Typy vlnění Dopplerových radarů ... 13

1.4.1 Kontinuální vlnění (CW – Continuous Wave) ... 13

1.4.2 Frekvenčně-modulovatelné kontinuální vlnění (FMCW – Frequency Modulated Continuous Wave) ...14

1.4.3 Další typy vlnění ...14

2 Vitální funkce ...16

2.1 Dýchací soustava ...16

2.1.1 Respirační pohyb...16

2.1.2 Pohyb hrudní stěny spojený s dýcháním ... 17

2.2 Oběhová soustava ... 18

2.2.1 Umístění a hrubá anatomie srdce ... 18

2.2.2 Elektrické a mechanické aktivity srdce ... 18

3 Raspberry-Pi ... 20

3.1 Specifikace Raspberry Pi 4 Model B ... 20

3.1.1 System on a chip... 21

3.2 Operační systém ... 21

3.2.1 Stolní počítač ... 21

3.2.2 Server ... 22

3.2.3 Zábava a jiné ... 22

3.3 Upgrade hardware a vylepšení výkonu ... 23

3.3.1 HAT ... 23

3.3.2 Pouzdra a kryty... 23

3.3.3 Clustery ... 23

3.3.4 Taktování a chlazení ... 23

4 Omnipresense ... 25

4.1 OPS242-A ... 25

4.1.1 Technické specifikace ... 26

4.1.2 API ... 26

(8)

5 Implementace ... 29

5.1 Nastavení CW Radaru ... 29

5.1.1 Aktualizace firmware ... 31

5.2 Algoritmus... 32

5.2.1 main ... 32

5.2.2 background_thread ... 33

5.2.3 get_serial_data ... 34

5.2.4 heart_rate_calculator ... 35

6 Výsledky ... 37

7 Závěr ... 38

Použitá literatura ... 39 Přílohy ... I Příloha A: Zdrojový kód ... I

(9)

Seznam zkratek

CW Kontinuální Vlnění VF Vitální funkce

FMCW Frekvenčně-Modulovatelné Kontinuální Vlnění

(10)

Úvod

Zdravotnictví je jedním z nejkritičtějších oborů, který se neustále rozvíjí. Do minulého století se do tohoto oboru zasazovaly primárně přístroje, které předávaly informace o zdravotním stavu na základě vlastních a subjektových fyzikálních vlastností. S jejich elektrifikací se do medicíny dostaly zařízení a metody jako Elektrokardiografie nebo Rentgen. Postupem 20. století se veškerá zařízení a jejich výstupní hodnoty postupně převáděly do digitální podoby. Diagnostikování chorob tak bylo mnohem snazší a přesnější.

Digitální zařízení se používají doposud, jsou však povětšinou závislá na fyzickém kontaktu se sledovaným subjektem. To nás přivádí k jednomu z nejaktuálnějších témat zdravotnictví ve spojení s průmyslem 4.0 – bezdrátové měření a Internet věcí (IoT).

Jak již bylo řečeno, mnoho zařízení, která se v dnešní době užívají pro pozorování zdravotního stavu subjektu, jsou závislá na přímém kontaktu se sledovaným subjektem, a to obzvláště ta, která měří vitální funkce (dále VF), tedy srdeční tep, dýchání, teplotu atd.

Tento přístup naráží na tři hlavní problémy. Tím prvním je, že pacient může mít citlivou pokožku a dlouhodobý kontakt s měřícími senzory může způsobovat kožní problémy, jako je například vyrážka. Dalším je komplikované sundávání a opětovné nasazování techniky připojené k pacientovi při převozu jeho lůžka. V neposlední řadě je zde pak riziko pro pacienta, pokud je v natolik vážném stavu, že by monitoring vitálních funkcí mohl zdravotní stav zhoršit. Tyto problémy by mohly nastat, pokud má pacient například rozsáhlé popáleniny, či příliš mnoho otevřených ran v místech, kam by se klasické elektrody umisťovaly.

Nemocnice a další zdravotnická zařízení však nejsou jediná místa, kde je monitoringu vitálních funkcí zapotřebí. Senioři s vážnými zdravotními riziky bez neustálého zdravotnického dohledu, stále mnohdy potřebují kontinuálně sledovat VF, jako srdeční tep a dýchání. Jedna z metod pozorování je Holterův monitor, který po dobu 24 hodin měří VF pomocí elektrod připojených k hrudníku pacienta. Další metodou jsou přístroje na jednorázové změření jako oxymetr. Oxymetr je sice primárně určený pro měření kyslíku v krvi, mnohé z nich však ukazují i srdeční tep. Oxymetr se ve většině případů nasazuje na prst, může se však použít i na ušní boltce. Princip je ve vysílání infračerveného záření, které prosvítí krevní řečiště a na základě průsvitnosti paprsků, které zachytí senzor na druhé straně, se vypočítá okysličení krve a srdeční tep. U takovýchto zařízení je první nevýhodou jejich nutnost mít je u sebe, a to buď po kapsách, či přímo nasazené na těle. Pakliže jej tedy pacient nezapomene, může si jej také špatně nainstalovat a tím snížit jeho přesnost. Dalším rizikem degradace hodnot je také možné spadnutí zařízení z míst, kam bylo umístěno.

Pokud subjekt nosí wearables, jako jsou kupříkladu chytré hodinky, dochází mnohdy ke zkreslení informací, jelikož samotné měření není tak přesné a co víc, zařízení nemusí být pevně přitisknuto k tělu, a může tedy výsledek měření o to více znehodnotit. Další nevýhodou takových nástrojů pro měření vitálních funkcí, je jejich závislost na výdrži baterie.

(11)

Další nevýhodou aktuálních zařízení pro měření VF je absence automatizace. Vezměme v potaz subjekt, který je sám v domácnosti a potřebuje neustálý monitoring. Kromě faktu, že mnohá zařízení ani nejsou ze zdravotních důvodů doporučována pro dlouhodobé měření (například u oxymetrů může vzniknout z dlouhodobého nošení bolest v nervových zakončeních), ne všechna jsou připojena k síti, či mobilním zařízením, aby v případě potřeby zavolala lékařskou pomoc. A i v případě, že propojení k síti nabízí (ať už přes Bluetooth, Wifi či jinou bezdrátovou technologii), má to zásadní vliv na baterii zařízení a připojení nemusí být stabilní.

Tyto problémy by mohlo řešit zařízení připojené k síti přes ethernet, které by v případě vypozorované dysfunkce (např. arytmie) upozornilo uživatele odesláním zprávy do mobilního zařízení či počítače a v kritickém případě (zástava, infarkt myokardu, …) by odeslalo zprávu na patřičné řídící středisko, lékařskou pohotovost, praktickému lékaři či blízké osobě.

Dalším krokem ve sledování vitálních funkcí by mohla být jejich analýza a na základě výkyvů hodnot určení emocí sledovaného subjektu. Zde však již může dojít ke komplikacím. Pokud nepočítáme anomálie jako arytmii srdce, tak k vychýleným hodnotám srdečního tepu a dýchání nemusí dojít pouze kvůli zdravotním potížím. K neobvyklým hodnotám může dojít i při zvýšené fyzické aktivitě, či aktuálnímu emočnímu rozpoložení. Zařízení by tak mohlo vyvolávat falešný poplach při záchvatech euforie či vzteku sledované osoby. Mnohá výzkumná centra a univerzity tento algoritmus na rozpoznávání emocí mají sestavený jak pro kontaktní, tak bezkontaktní měření vitálních funkcí, například tým profesorky Diny Katabi, jejíž projekt začal monitorováním pohyb napříč zdmi[1] pomocí vlastnoručně sestaveného FMCW radaru. Projekt pokračoval monitoringem vitálních funkcí za pomocí stejného zařízení[2] a byl završen implementací machine learningového algoritmu na rozpoznávání emocí. Tento algoritmus se během osmi cyklů pozorování srdečního tepu a dýchání naučil vzorec pozorovaného subjektu a podle výkyvů z tohoto vzorce pak radarový systém vyhodnotil 4 základní emoce: radost, vztek, smutek a klidný stav[3]

Cílem této práce je sestavit v domácím prostředí zařízení, které by bylo schopné monitorovat srdeční tep a frekvenci dýchání, a dále ověřit poznatky již provedených výzkumů z univerzit a výzkumných center. Aby měl experiment povahu domácího projektu, bude prováděn pomocí již vyrobeného radarového systému a malého levného počítačového zařízení, které bude data zpracovávat. Byl k tomu vybrán 24GHz radar s kontinuálním vlněním OPS242-A a pro spouštění algoritmu na zpracování dat z radaru byl vybrán mini počítač Raspberry Pi 4 Model B.

(12)

1 Radar

Radar, z anglického akronymu pro Radio Detection and Ranging, je zařízení, pracující na principu vyhodnocování elektromagnetického záření. Zařízení vysílá a zároveň přijímá radiové vlny (tj. spektrum elektromagnetického záření o vlnové délce od 1 milimetru až po řády tisíců kilometrů) a na základě přijaté odražené vlny následně určuje polohu, rychlost, pohyb či pouze přítomnost objektu v určité oblasti. První velký vývoj radarových systémů se prováděl od 20. let minulého století a během druhé Světové války, kdy sloužil pouze pro detekci kovových objektů v přibližné vzdálenosti. Od té doby se radarové systémy posunuli mnohem dál a díky této technologii, dnes můžeme sledovat i rychlost, nadmořskou výšku, směr pohybu, nebo dokonce i vykreslit nebo identifikovat daný objekt.

1.1 Princip

Jak již bylo řečeno, radar vysílá do prostoru elektromagnetické vlnění o určité frekvenci. Na základě vlnové délky vysílaného vlnění, se vlna od objektů s různou hustotou buď odrazí, nebo jimi projde (čím kratší je vlnová délka, tím je odrazivost vlny vyšší). I u vln, které objektem z velké části projdou, se část energie odrazí. Odražená vlna následně dorazí k přijímači radaru, který předá informaci o zachycení ke zpracování. Elektromagnetické vlny se ve volném prostoru pohybují rychlostí světla, což nám umožňuje, na základě rozdílu času vyslání pulzu a přijetí jeho odrazu určit vzdálenost objektu. Pokud potřebuje změřit rychlost pohybujícího objektu, potřebujeme mít radar nastavený na měření frekvence přijaté vlny. Rychlost se pak určuje na základě rozdílu frekvence vyslané a přijaté vlny.

Pomocí síly přijatého signálu lze následně určovat velikost, tvar a složení sledovaného objektu. Obrovskou výhodou radiových a mikrovlnných radarových systémů, je nejen možnost sledování objektu skrze mlhu, mraky a prach, ale také skrze zdi a jiné pevné objekty. [4]

1.2 Proces

Radar se většinou skládá z vysílače, antény, přijímače a jednotky na zpracování signálu, procesoru. Vysílač vygeneruje elektromagnetickou vlnu a zesílí ji na potřebný energetický výkon. Směrová anténa koncentruje vlnu určitým směrem a zároveň umožňuje určení směru objektu. Přijímač převede zachycený signál z vyslané frekvence na mezifrekvenci či mezipásmo (angl. intermediate frequency nebo intermediate baseband – pojem referuje o mezikroku před zpracováním přijatého signálu). Přijímač dále oddělí získaný signál od hluku a rušivých frekvencí/signálů a zesílí signál na takovou úroveň, aby jej bylo možné převést do digitální podoby. Po digitalizaci dochází ke zpracování signálu, kdy procesor odstraní další rušivé signály a hluk. Hlukem je v této práci myšleno nadměrné množství rušivého signálu vzniklého přijímáním i jiných vln, než námi vyslaných a na zachycených po odrazu. Po očištění získaného signálu je z něj vytažena informace o objektu.[4]

(13)

V zásadě může radar operovat na jakékoli frekvenci, avšak volba velikosti, rozmístění a počtu antén, výkonu vysílače, vzdálenosti objektu a citlivosti radaru v reálných podmínkách určuje a omezuje výslednou frekvenci. Radiové frekvenční pásmo je většinou definováno v rozmezí od 3 MHz do 300 GHz.[4]

1.3 Dopplerův jev

Dopplerův jev byl představen roku 1842 rakouským matematikem a fyzikem Christianem Dopplerem, který princip objevil a vysvětlil, během svého života v Praze, ve své práci O barevném světle dvojhvězd a některých dalších hvězd. Dopplerův jev popisuje změnu frekvence a vlnové délky přijímaného vlnění vůči pozorovateli při relativním pohybu buďto k nebo od pozorovatele. Vezměme v potaz dva objekty: zdroj a pozorovatele. Oba objekty průběžně vysílají vlnění o konstantní frekvenci. Pokud jsou relativně vůči sobě v klidné poloze, přijímají stejný počet vln od protějšího objektu, pak nedochází ke posunu frekvence, jelikož pozorovatel přijímá stejný počet vln za sekundu, jako zdroj vysílá. Toho lze dosáhnout buď nulovou rychlostí obou objektů, nebo pohybem stejnou rychlostí ve stejném směru. Pokud se objekty budou vůči sobě přibližovat, pak pozorovatel přijímá více vln za sekundu, než zdroj vysílá, tedy pozoruje vyšší frekvenci. V opačném případě, kdy se objekty od sebe vzdalují, přijímá pozorovatel méně vln za sekundu, než zdroj vysílá, a proto je přijímaná frekvence nižší. Tento jev se dá aplikovat na jakékoli vlnění, tedy například zvuk, světlo, nebo elektromagnetické vlnění.[4] V praxi lze jev pozorovat například u projíždějících automobilů kdy, pokud stojíme u silnice, tak po dobu, kdy se automobily pohybují směrem k nám, má zvuk vysílaný motorem a pohybem po vozovce zvyšující tón a ve chvíli, kdy nás mine a vzdaluje se, tón se náhle snižuje. Dopplerův jev se používá i v astronomii pro pozorování vesmírných těles. Pokud se těleso od Země vzdaluje, dochází opět ke snížení pozorované frekvence a u viditelného světla se tak barva spektra mění směrem k červené, tomuto jevu se říká Rudý posuv. V opačném případě je pozorovaná frekvence vyšší a barevné spektrum se posouvá k modrým barvám, zde se jedná o Modrý posuv.

1.4 Typy vlnění Dopplerových radarů

1.4.1 Kontinuální vlnění (CW – Continuous Wave)

Radiové systémy využívající kontinuální vlnění neustále vysílá a přijímá přímé signální pásmo. Transceiver (síťový prvek, který slouží zároveň jako vysílač i přijímač) má poměrně jednoduchou topologii. Skládá se ze zdroje signálu, který zároveň přijímá i vysílá elektromagnetické vlnění a buďto homodynním nebo heterodynním přijímačem. První přijímač detekuje vlny o stejné frekvenci jako vysílané, druhý o jiné frekvenci, avšak s přesně definovaným vztahem. Systém buď používá anténu s duplexní jednotkou či okruhem pro oddělení vysílaných a přijímaných vln, nebo používá více oddělených antén, určených jednotlivě pro přijímání či vysílání vlnění. Díky své jednoduchosti a velmi úzkému frekvenčnímu pásmu vlnění, lze poměrně přímočaře určit posun frekvence Dopplerova jevu, a díky tomu určit jakoukoli rychlost objektu v libovolné vzdálenosti.

(14)

Hlavní nevýhodou těchto radarů je únik vysílaných vln způsobený neustálým vysíláním a přijímáním vlnění. Vlny z vysílače se vměšují do přijímačů a vytváří informační šum z vln, které se neodrazily od žádného objektu. Radarový systém s kontinuálním vlněním a jednostranným přijímačem nedokáže rozlišit přibližující se nebo oddalující objekty, jelikož se přijímané vlnění, tedy aktuálně vysílané a odražené, začne skládat do širšího frekvenčního pásma. Tomu se dá zabránit koherentním heterodynním nebo homodynním kvadratickým přijímačem. [5]

1.4.2 Frekvenčně-modulovatelné kontinuální vlnění (FMCW – Frequency Modulated Continuous Wave)

CW radar dokáže rozlišit rychlost a směr pohybu zdroje (od pozorovatele nebo k pozorovateli) díky posunu frekvence detekovaného vlnění. Pro určení vzdálenosti objektu od radaru, je potřeba u každé vyslané vlny vytvořit časovou značku a sledovat v jakém čase je přijata vlna odražená. FMCW radar využívá napětím řízený oscilátor, který, pomocí cyklické (sinusoidní) změny napětí, generuje cyklickou (opět sinusoidní) výšku frekvence, potažmo dané frekvenční pásmo vlnění. Tempo modulace frekvence určuje maximální vzdálenost, kterou je možné jednoznačně určit. Vysílaný signál se vrátí s určitým časovým zpožděním a vzdálenost R můžeme následně určit podle vzorce, kde T je změna času a c rychlost světla:

𝑇 =2𝑅 𝑐

Rozsah měřitelné vzdálenosti se pak dá určit pomocí vzorce:

𝛥𝑅 = 𝑐 2𝛥𝑓 , kde Δf odpovídá vysílanému frekvenčnímu pásmu.[5]

1.4.3 Další typy vlnění

Vitální funkce mění směr svého pohybu s vysokou frekvencí a pohyb je vykonáván v malých vzdálenostech. Z tohoto důvodu je pro měření vitálních funkcí vhodné používat právě radary s kontinuálním vlněním. Pro tuto práci nejsou další typy vlnění stěžejní, a proto zde budou uvedeny pouze krátce.

Pulzní Dopplerův Radar

Pulzní radar je nejčastěji používaným typem radarového systému. Pulzní radar vysílá přímé impulzy v pravidelných intervalech a následně analyzuje přijaté ozvěny odražené od sledovaných objektů. Pulzní radar má tu výhodu, že může využívat Dopplerova jevu pro sledování rychlosti objektu a zároveň určovat i jeho vzdálenost. Díky časovým úsekům mezi jednotlivými vyslanými impulzy je možné pozorovat dobu, za kterou se vrátí ozvěna.

Vzhledem k tomu, že radiové vlny se pohybují rychlostí světla 3 × 108 m/s, pak čas, za který se impulz vrátí, se rovná:

(15)

𝜏 =2𝑅 𝑐

, kde R je vzdálenost objektu od pozorovatele a τ odpovídá uraženému času. Další výhodou oproti CW a FMCW radarům je ta, že díky časovým rozmezím mezi jednotlivými impulzy, lze jednoduše oddělit silné právě vyslané impulzy od slabších odražených a eliminovat tak většinu rušivého signálu. [5]

(16)

2 Vitální funkce

Vitálními funkcemi jsou v této práci myšleny dýchání a srdeční tep subjektu. Respirační systém je sice založen na výměně vzduchu mezi plícemi a atmosférou, avšak aby k této výměně došlo, dochází k vypínání a stahování hrudního koše. Pokud tedy umístíme radar před hrudní koš, lze sledovat cyklický pohyb směrem k radaru a zpět. Stejný princip lze určit i u srdečního tepu, kde je možné na základě citlivosti radaru měřit buď kontrakce srdečního svalu, nebo mikro chvěvy zachycené na povrchu celého těla vzniklé šířením zvukové vlny z excitace srdečního svalu.

2.1 Dýchací soustava

Hlavní funkcí dýchací soustavy je výměna plynů. Mimo to také slouží k udržování acidobazické rovnováhy v těle, je ovládána centrální nervovou soustavou, středovými a periferními chemoreceptory a plicními receptory. Plicní ventilace je závislá na arteriálních parciálních tlacích kyslíku a oxidu uhličitého, ty jsou ovlivněny přísunem kyslíku, jeho absorpcí, prokrvením plic, přenosem kyslíku vaskulární soustavou a mnoho dalšími faktory.

Kvůli tak rozsáhlému množství ovlivňujících faktorů, může být funkce dýchací soustavy upravena změnami různých soustav, a to včetně kardiovaskulární, nervové, dýchací a vylučovací. Z tohoto důvodu je dechová frekvence, rytmus, pravidelnost, hloubka a objem velmi rozsáhlým indikátorem nerovnováhy těchto soustav, a samozřejmě také poruch dýchání. Dechová frekvence je klíčovým vitálním znakem pro domácí monitoring vývoje onemocnění a pro nemocniční monitoring k zabránění krizových situací. Trendy v dechové frekvenci mohou indikovat průběh kardiopulmonálních onemocnění, jako jsou akutní dechové tísně, plicní embolie, pneumonie, nebo chronické obstrukční plicní nemoci. Výkyvy v dechové frekvenci mohou indikovat také poruchy vylučovací soustavy, nízký objem krve nebo i poruchy nervové soustavy včetně neurogenního šoku nebo nitrolebního tlaku.[4]

2.1.1 Respirační pohyb

Jak již bylo zmíněno výše, hlavní funkcí dýchací soustavy, je výměna oxidu uhličitého za kyslík v plicích. Aby k výměně plynů došlo, je nejdříve potřeba vypustit oxid uhličitý, a teprve poté vtáhnout vzduch s molekulami kyslíku do plic. Při dýchání se stahují svaly, aby změnily objem hrudníku, což vytváří tlakový rozdíl mezi hrudním košem a vnějším prostředím. Tento proces vede k pohybu vzduchu dovnitř hrudníku a z něj vždy z prostředí s vyšším tlakem do prostředí s nižším. Pohyby hrudníku a břicha způsobují značné posuny povrchu kůže měřitelné Dopplerovým Radarem, a tedy umožňující bezkontaktní měření dechové frekvence.[4]

Při stahování bránice klesá její kopule do dutiny břišní, což způsobuje prodloužení hrudníku a zvýšení jeho objemu. Dále to způsobuje také vytlačení břišních vnitřních orgánů proti břišní stěně. Při normálním nádechu poklesne bránice o 1-2 cm do břišní dutiny, při

(17)

hlubokém však může sestoupit až o 10 cm. Při napětí bránice a nemožnosti vtlačit ji dále do břišní dutiny, způsobuje pokračující kontrakce bránice elevaci dolních žeber, což ještě více sníží hrudní tlak. Vnější mezižeberní svaly se při nádechu stahují současně s bránicí. Pokud by se bránice stahovala sama, pokles tlaku by táhl hrudní koš dolů a dovnitř, čímž by se snížilo množství vzduchu vtahovaného do plic. Kontrakce vnějších mezižeberních svalů táhne žebra nahoru a ven, čímž dále zvětšuje objem hrudníku a zabraňuje kolapsu hrudního koše. Pokud by se zevní mezižeberní svaly stahovaly samy, pokles pleurálního tlaku by způsobil, že by se ochablá bránice posunula do hrudníku, místo aby vedla k vdechu. Pro nádech je nutná společná činnost zevních mezižeberních svalů a bránice.[4]

V [6] byly získány dechové parametry 65 zdravých testovaných osob. Průměrná dechová frekvence byla 16,6 ± 2,8 dechů/min, dechový objem 383 ± 91 ml a minutový objem 6,01 ± 1,39 l/min. Inspirační čas 1,62 ± 0,31 s byl kratší než exspirační čas. Typické dechové vzorce u mladých dospělých byly velmi pravidelné, bez vzdechů. Starší dospělí měli tendenci mít méně pravidelné dýchání. U některých starších dospělých se vyskytovaly výrazné odchylky v dechových objemech a krátké centrální apnoe neboli zástavy dechu. U všech subjektů se hrudní koš a břišní oddíly pohybovaly synchronně. Existovaly značné rozdíly v tom, zda k posunu primárně přispíval hrudní koš nebo břicho. V [6] nebylo zjištěno, že by věk ovlivňoval dechovou frekvenci.[4]

2.1.2 Pohyb hrudní stěny spojený s dýcháním

Pohyb hrudníku spojený s dýcháním je kombinací pohybu břicha a hrudního koše. Wilson a kolektiv [7] uvádí data, která ukazují, že úhel pohybu rukojeti pumpy (viz. obr.) se pohybuje od 20° do 30° na třetím žebru a od 30° do 37° na sedmém žebru. Tento pohyb způsobil, že poloměr žebra se u třetího žebra měnil od 10,6 do 10,8 mm a u sedmého žebra od 13,7 do 14,2 mm. DeGroote a kolektiv měřili pohyb hrudníku ve směru vpřed/vzad, vlevo/vpravo a nahoru/dolů ve 36 bodech. Největší pohyby vykazovala hrudní kost, která se při vdechu posunula dopředu o 4,3 mm, a pupek, který se při vdechu posunul dopředu o 4,03 mm[4]. Kondo a spol. [8] měřili vztah mezi dechovým objemem a lineárním posunem břišní stěny pomocí laserového měřiče posunu. Zjistili, že břicho se při vdechu 400 ml roztáhlo o 4 mm a při vdechu 1100 ml o 11 mm. U jiného subjektu rovněž prokázali posun břicha o 12 mm během spontánního dýchání. Celkově dochází během dýchání k radiální expanzi hrudníku o 4-12 mm v závislosti na individuální fyziologii a množství vdechovaného vzduchu.

Obrázek 1 Pohyb horních, středních a spodních žeber.[4]

(18)

2.2 Oběhová soustava

Srdce rozvádí krev do plic a do tělního oběhu. Když se srdce stahuje k vytvoření tlaku, který rozvádí krevní oběh, naráží při tomto pohybu do hrudní stěny, čímž vytváří měřitelné posuny (mikro záchvěvy) na povrchu kůže. Když srdce bije a rozvádí krev do tepen, otáčí se a mění svou velikost, což způsobuje pohyb hrudní stěny, detekovatelný na povrchu kůže.

K největšímu pohybu dochází ve čtvrtém a pátém mezižebří, kdy levá komora naráží do hrudní stěny. K pozvolnějším pohybům dochází kvůli naplňování srdce v levé parasternální oblasti. Maximální pohyb zjištěný pomocí snímačů má průměrnou hodnotu 0,6 mm a očekává se, že tato hodnota se bude v populaci značně lišit v důsledku rozdílů ve fyziologii, zdravotním stavu, kondici a věku. Tento průměrný pohyb je však dostatečný pro detekci pomocí Dopplerova Radaru.[5]

2.2.1 Umístění a hrubá anatomie srdce

Srdce je ve středu hrudníku, mezi plícemi a částečně je jimi překryto. Hrudní kost kryje přední část srdce stejně jako chrupavky třetího, čtvrtého a pátého žebra. Dvě třetiny srdce se nacházejí vlevo od středu hrudníku. Srdce spočívá na bránici, nakloněné dopředu a doleva, takže hrot je před zbytkem srdce. Pohyb hrotu lze nahmatat ve čtvrtém nebo pátém mezižeberním prostoru. Levá strana srdce pumpuje krev do orgánů a tkání, zatímco pravá strana srdce pumpuje krev do plic. [5]

Dutá žíla, která přivádí krev z periferních tkání, vstupuje v pravé horní části srdce do pravé síně. Krev z pravé síně vstupuje do pravé komory přímo pod hrudní kostí, když se otevře trojcípá chlopeň. Když se pravá komora stáhne, otevře se plicní chlopeň a krev vystupuje z horní části pravé komory v přední části srdce do plicní tepny, která odvádí krev do plic, kde se výměnou plynů odstraňuje z krve oxid uhličitý a přivádí do ní kyslík. Krev z plic se vrací do srdce dvěma plicními žilami, které vstupují do levé síně v horní a zadní části srdce, podél střední čáry hrudníku. Když je mitrální chlopeň otevřená, krev z levé síně vstupuje do levé komory. Když se levá komora stáhne, otevře se aortální chlopeň a krev odejde z horní části srdce do aorty, která začíná systém tepen, které přivádějí krev do tkání těla, kde dodává tkáním živiny a kyslík a odvádí z nich odpadní látky.[5]

2.2.2 Elektrické a mechanické aktivity srdce

Tlukot srdce je synchronizován elektrickými impulzy, které vznikají jako depolarizace kardiostimulačních buněk v pravé síni. Vodivý systém srdce přenáší elektrické impulsy tak, že se obě síně stahují přibližně ve stejnou dobu a po nich následují obě komory.

Elektrokardiogram neboli EKG, využívá elektrody na hrudníku a končetinách k měření elektrického proudu, který vzniká v extracelulární tekutině při změnách membránového potenciálu mnoha buněk srdce.[4]

Elektrokardiogram neboli EKG využívá elektrody na hrudníku a končetinách k měření elektrického proudu, který vzniká v extracelulární tekutině při změnách membránového potenciálu mnoha buněk srdce. Zobrazuje vlnění generované síněmi a komorami. Vlna P ukazuje tok proudu během depolarizace síní, která spouští kontrakci síní. Komplex QRS

(19)

zobrazuje komorovou depolarizaci, která spouští kontrakci komor. Vlna T ukazuje repolarizaci komor. Repolarizace síní probíhá současně s komplexem QRS, takže na EKG není vidět. Použití více kombinací míst záznamu na končetinách a hrudníku poskytuje informace, o různých oblastech srdce, o tvaru a velikosti vln P a T a o srdečním rytmu. QRS komplex se liší podle umístění elektrod. Depolarizací srdce začíná cyklus stahů síní a komor, které způsobují pohyb hrudní stěny, jenž je měřitelný pomocí snímačů pohybu, jako je Dopplerův radar. V systole, když se komory zpočátku stahují, je tlak v komorách ještě nižší než v ten v aortě, takže aortální chlopeň je uzavřena a komora si udržuje konstantní objem při izovolumetrické kontrakci komor. Jakmile je tlak v komorách vyšší než tlak v aortě, aortální chlopeň se otevře a začne komorová ejekce. Když se komory přestanou stahovat, udržují si konstantní objem, zatímco tlak v síních je nižší než tlak v komorách při izovolumetrické komorové relaxaci. Jakmile se otevřou atrioventrikulární (AV) chlopně, začnou se komory plnit krví. Toto počáteční plnění je pasivní, přičemž síně se plní krví z příslušných předsíní. Poté se spustí kontrakce síní a plní komory, dokud není komorový tlak vyšší než tlak v síních, a pak se AV chlopně uzavřou.[4]

(20)

3 Raspberry-Pi

Raspberry Pi je malý nízkonákladový počítač, vynalezený ve Spojeném království společností Raspberry Pi Foundation. Bylo vytvořeno za účelem levného, dostupného a snadného učení programování a počítačových věd ve školách. Raspberry je velmi univerzální a jeho možnosti využití jsou omezeny pouze lidskou představivostí. Postupem let a každou další verzí tohoto minipočítače (v době psaní bakalářské práce je nejvýkonnější model 4) se zvyšuje i jeho výpočetní výkon, dočasná paměť i výkon grafického čipu. Díky tomu, že je Raspberry po hardwarové i softwarové stránce open-source projektem, vytváří jeho komunita neustále nové projekty, hardwarové pomůcky a rozšíření, které rozšiřují možnosti využití počítače.[9]

3.1 Specifikace Raspberry Pi 4 Model B

Procesor

o Broadcom BCM2711

o 1.5 GHz quad-core ARM Cortex-A72 o ARM v8

o 64-bit SoC

Paměť

o LPDDR4

o 2 GB / 4 GB / 8 GB

Konektivita

o 2,4GHz a 5GHz IEEE 802.11.b/g/n/ac Wi-Fi o Bluetooth 5.0 (BLE)

o Gigabit Ethernet (1000 Mbit/s) o 2 × USB 2.0 konektor

o 2 × USB 3.0 konektor

GPIO

o Standardní GPIO header se 40 piny (zpětně kompatibilní s předchozími modely)

Video & Zvuk

o 2 × microHDMI 2.0 konektor (až 4K, 60fps) o MIPI DSI konektor pro připojení displeje o MIPI CSI konektor pro připojení kamery

o čtyřpólový 3,5mm jack – výstup zvuku a kompozitního videa (PAL a NTSC)

Multimédia

o H.265 (4Kp60 dekódování)

o H.264 (1080p60 dekódování, 1080p30 kódování) o OpenGL ES, 3.0 grafika

Napájení

o 5 V DC přes USB-C konektor (minimálně 3 A) o 5 V DC přes GPIO header (minimálně 3 A)

o PoE – napájení přes ethernet (vyžaduje přídavný modul PoE HAT)[5]

(21)

3.1.1 System on a chip

Raspberry Pi má svoji řídící jednotku v jediném čipu, kde se nachází centrální procesní jednotka (CPU), grafická procesní jednotka (GPU), digitální signální procesor a paměť s náhodným přístupem (RAM).[10]

3.2 Operační systém

V základu se operační systém instaluje na mikroSD kartu (u starších modelů na SD kartu).

Ta však nebývá tak spolehlivá, rychleji se opotřebovává a má pomalejší rychlost čtení a zápisu. Existuje možnost po prvotní instalaci OS přeinstalovat na pevný disk, ale pro to je nutné dokoupit patřičný rozšiřující modul.

V dnešní době je již dostupné poměrně velké množství operačních systémů podporovaných Raspberry Pi, včetně 64bitových jako například Ubuntu 21.04 (je nutné dodat, že tyto robustnější operační systémy potřebují ve většině případů 4 GB RAM a více). Výběr operačního systému závisí na výsledném využití počítače. V příštích několika odstavcích je představeno několik operačních systémů, které lze nainstalovat pomocí oficiálního softwaru Raspberry Pi Imager, podle jejich využití. Pokud je OS kompatibilní, pak lze nainstalovat i jakýkoli, ke kterému máme instalační soubor.

3.2.1 Stolní počítač

Raspberry Pi OS

Oficiálně podporovaný operační systém pro Raspberry Pi a zároveň nejpoužívanější pro instalaci desktopu na tento počítač. Historicky však nebyl vytvořen společností Raspberry Pi Foundation. Byl vyvinut komunitou vývojářů a nadšenců do Raspberry Pi. První optimalizovaná sestava Raspberry Pi OS (v té době nazývaný Raspbian) obsahovala přes 35000 instalačních balíčků a byla dokončena v roce 2012. Od té doby se operační systém i nadále vyvíjí a v roce 2015 byl převzat společností Raspberry Pi Foundation. Následně byl přejmenován na Raspberry Pi OS.[11]

Operační systém je založen na Debianu (v době psaní práce na verzi 10 – Buster), open source operačním systému, hojně používaných pro chod serverů. Je lehký na chod a je nejoptimalizovanější pro toto zařízení. Raspberry Pi OS má na výběr 3 instalační balíčky:

• Raspberry Pi OS Lite

• Raspberry Pi OS

• Raspberry Pi OS Full

Raspberry Pi OS Lite je nejlehčí a nejmenší verze a neobsahuje desktopové prostředí, což ve reálu znamená, že lze používat pouze terminál. Tento operační systém je vhodný například pro servery, jelikož není zatěžován zbytečnými programy.

(22)

Raspberry Pi OS již má tzv. Pixel Desktop Environment, což je klasické prostředí, na jaké jsme zvyklí například u operačních systémů jako je Windows, MacOS či Ubuntu.

Raspberry Pi OS Full je doplněný o předem nainstalovaný software. Jedná se o nejčastěji využívaný software pro produktivní využití desktopového počítače. Obsahuje všechny produkty Libre Office, několik her, programovací prostředí a IDE jako BlueJ, Wolfram Mathematica, Scratch, Sonic Pi, Python 2 a 3, Sense HAT Emulator a další.[12]

Další OS jako stolní PC

Většina dostupných operačních systémů kompatibilních s Raspberry Pi je 32bitových, avšak jak již bylo řečeno, v posledních letech byl přidán i 64bitový OS Ubuntu. Raspberry Pi Imager pak nabízí také operační systémy Manjaro ARM Linux a RISC OS Pi.

3.2.2 Server

Výše již byly zmíněny dva operační systémy, které jsou vhodné pro použití jako servery, tedy Raspberry Pi OS Lite a Debian. Za zmínku stojí také Ubuntu Server, který je dostupný jak v 32bitové verzi, tak v 64bitové. Obecně se však hodí pro použití Raspberry Pi jako serveru jakýkoli kompatibilní a výpočetně nenáročný operační systém.

3.2.3 Zábava a jiné

Poslední operační systémy, o kterých bych zde chtěl hovořit jsou ty, které mají úzce specifické využití a mnohdy se k nim pojí i nákup dalšího hardware, většinou HATs.

Operační systém LibreELEC slouží k využívání Raspberry Pi jako mediálního centra. Dále existují OS, které jsou optimalizované na předělání Raspberry Pi do staromódního herního zařízení – RetroPie a Recalbox. OctoPi slouží pro využití na 3D tiskárnách a Homebridge je OS sloužící pro přeměny Raspberry Pi na řídící středisko chytré domácnosti.

Obrázek 2 Složení Raspberry Pi [9]

(23)

3.3 Upgrade hardware a vylepšení výkonu

3.3.1 HAT

Mezi nejrozšířenější způsob, jak rozšířit funkčnost Raspberry patří tzv. „HATs“ (z angl.

Hardware Attached on Top), což jsou moduly, které se propojí pomocí nasazení na GPIO piny a většinou se navíc upevní pomocí propojení montážních otvorů (označeny žlutým proužkem). Mezi nejznámější moduly patří například TV HAT, který slouží jako přijímač televizního vysílání, AMP/DAC HATs, které slouží jako zvukové převodníky digitálních vstupů na analogové a jako zesilovače zvuku, nebo moduly na propojování specializovaných displejů, například e-Ink nebo LED maticových displejů.

3.3.2 Pouzdra a kryty

Rozšířil se také prodej pouzder a krytů na Raspberry Pi, které obsahují další rozšiřující moduly umožňujících připojení NVMe, nebo M.2 SATA SSD disků. Pokud je OS systém převeden na SSD disk, získá Raspberry Pi dostatečný výkon na to, aby mohl pomalu soupeřit s pomalejšími stolními počítači. Další pouzdra mají v sobě integrované displeje, větráčky, různé doplňující porty, tlačítka a vypínače.

3.3.3 Clustery

Dalším způsobem, jak zvýšit výkon Raspberry Pi jsou tzv. clustery. Jedná se o systémy, které umožňují stohování většinou libovolného množství Raspberry počítačů a sjednotit jejich napájení, chlazení, síťové připojení, a hlavně výpočetní výkon. Díky tomu lze využívat několik Raspberry jako serverovou nebo těžební farmu (ačkoli těžit kryptoměny by bylo na Raspberry značně neefektivní), nebo jako super počítač pro náročné projekty. Poměrně často se používá také cluster složený z jednoho Raspberry Pi 4 a několika Raspberry Pi Zero, které je sice méně výkonné, avšak oproti klasickému Raspberry Pi také velmi levné (v době psaní práce 157 Kč).

3.3.4 Taktování a chlazení

Poslední vylepšení výkonu, o kterém zde budu mluvit je taktování procesoru Raspberry Pi a následného chlazení. Procesor má takt z výroby 1,5 GHz. To se dá navýšit bez rizika poškození procesoru až na 2 GHz. Bezpečné a jednoduché taktování lze provádět pomocí programu Commander Pi (program doporučuje přetaktovat procesor maximálně na 2,147 GHz). Tím si značně zvýší výkon Raspberry Pi, avšak vyšší takty vždy vedou v rychlejšímu zahřívání čipu. Při vyšších teplotách od cca 70 °C se již může projevovat degradace výkonu zařízení. Je proto nutné procesor nějakým způsobem chladit. Variantou číslo jedna by mohly být celokovová pouzdra, která jsou v místě procesoru prohloubena tak, aby se dotýkala procesní jednotky. Dodávají se k nim chladící podložky a celý kryt pak slouží jako chladič. Druhá varianta jsou ventilátory, které se propojují v první řadě na druhém a třetím pinu GPIO konektorů. Poslední variantou, o které se zde zmíním jsou chladící věže. Pokud bychom chtěli mít kryté Raspberry, bylo by zde již potřeba většího pouzdra. Chladící věž je

(24)

k Raspberry Pi přišroubována do montážních otvorů, na procesoru sedí tuby a pasivní chladič. K tomu je následně připojen ventilátor, který vtahuje do pasivního chladiče studený vzduch.

(25)

4 Omnipresense

Obrázek 3 Topologie modulu OPS242-A[13]

4.1 OPS242-A

Zařízení použité v této práci pro měření srdečního tepu a dýchaní, je CW radar určený na krátké vzdálenosti od společnosti Omnipresense. Je schopný detekovat objekty až ve vzdálenosti 25 metrů. Veškeré zpracování signálu je prováděno již přímo v modulu a pomocí integrovaného API lze ovládat jeho nastavení a snímání. Data lze předávat k dalšímu zpracování buď přes USB nebo UART.[13]

Obrázek 4 Modul OPS242-A (Foto autor)

(26)

4.1.1 Technické specifikace

Jak již bylo řečeno, radar má rozsah vzdálenosti 1-25 m, zvládne detekovat rychlosti o až 1 118 km/h a výrobce uvádí přesnost měření okolo ± 0,5 %. Modul zvládne reportovat směr pohybu (tedy přibližující a oddalující se) a vysílá vlnění v rozsahu 76° (viz. obr.). Radar operuje ve výchozím nastavení 24,125 GHz a výrobce uvádí možnost změny vysílané frekvence od 24GHz po 24,25 GHz.[13]

Obrázek 5 Rozsah vysílaného vlnění[13]

4.1.2 API

Radar lze připojit, jak pomocí microUSB-USB A (2.0) kabelu, tak přes UART piny. Pokud je připojen pomocí USB, modul automaticky vypne UART rozhraní. V obou případech začne předávat data pomocí sériové komunikace (Serial Communication) defaultně rychlostí 57 600 bps (z angl. bits per second – bity za sekundu) s možností rychlost změnit na hodnoty 9 600-115 200. Data jsou odesílána v paketech po 8 bitech s 1 závěrným bitem (z angl. stop bit).

Komunikace probíhá pomocí sériových portů, a pro pracování s API lze využívat programy jako minicom (Linux), Tera Term (Windows) nebo Putty (Windows i Linux). Jelikož příkazy na změnu konfigurace probíhají pomocí jednoduchých příkazů, lze je odesílat do modulu i pomocí algoritmů v programovacích jazycích, jako je Python a JavaScript.

Jednou z možností, jak ovlivnit výstup dat, je nastavení minimální a maximální detekované rychlosti. Rychlost lze omezit pomocí příkazů „R>n“ a „R<n“ (za n dosadíme libovolné číslo). Díky tomu můžeme využít Dopplerova jevu upravovat rychlosti tak, abych získávali pouze frekvence, které potřebujeme. Potřebnou frekvenci tak vypočítáme pomocí vzorce:

𝜟𝒇 =𝟐𝜟𝒗 𝒄 𝒇𝟎

, kde f0 je frekvence vysí lana radarem, c rychlost sve tla, a v rychlost, kterou chceme omezit. Je du lez ite pr ipomenout, z e hodnoty se zada vají vz dy kladne , jelikoz omezujeme absolutní

(27)

hodnotu rychlosti. Hodnoty se za porny m zname nkem znamenají pohyb od radaru, zatí mco kladna pohyb sme rem k radaru. Pokud bychom chte li zaznamena vat rychlost pohybu pouze v jednom sme ru, lze tak nastavit pomocí pr í kazu „R+“ nebo „R-“ s moz ností restartova ní nastavení zpe t na oba sme ry pr í kazem „R|“. Dals í du lez itou informací je, z e rychlosti budou vz dy omezova ny v aktua lne nastaveny ch me rny ch jednotka ch. Pokud zme ní me me rne jednotky z metru za sekundu na centimetry za sekundu, je nutne pr enastavit i omezení hla s eny ch rychlostí .[13]

Maximální zaznamenaná rychlost je ovlivněna frekvencí vzorkování. Čím nižší je vzorkovací frekvence, tím pomalejší objekty můžeme sledovat, ale o to vyšší preciznost měření získáme.

Následující tabulka uvádí možná nastavení vzorkovací frekvence (Sample Frequency):

Vzorkovací

frekvence Příkaz pro API Maximální

rychlost (m/s) Rozlišení (m/s) *

1 000 SI 3,1 0,006

5 000 SV 15,5 0,030

10 000 SX 31,1 0,061

20 000 S2 62,2 0,121

50 000 SL 155,4 0,304

100 000 SC 310,8 0,608

Tabulka 1 Tabulka vzorkovacích frekvencí. *Hodnoty odpovídají velikosti bufferu 1024. Velikost bufferu 512 zvýší hodnoty dvojnásobně, 256 čtyřnásobně a 128 osminásobně

Velikost bufferu (vyrovnávací paměti) ovlivňuje tempo hlášených rychlostí (hodnot) a rozlišení. Jak je uvedeno v tabulce, nižší velikosti bufferu snižují rozlišení radaru, ale na druhou stranu zvyšují frekvenci hlášení dat. Hodnoty velikosti bufferu odpovídají počtu vzorků nasbíraných modulem před jejich zpracováním. Velikost bufferu začíná na 128 vzorcích před zpracováním a končí po násobcích 2 na 1 024 vzorcích před zpracováním.

Obrázek ukazuje vliv frekvence vzorkování na přesnost měření u jednotlivých velikostí bufferu.[13]

(28)

Obrázek 6 Závislost přesnosti měření na rychlosti vzorkování u jednotlivých velikostí bufferu[13]

(29)

5 Implementace

Pro práci s radarem byl zvolen operační systém Raspberry Pi OS, jelikož není tak robustní jako jiné Linuxové operační systémy a nebude tedy tolik zatěžovat výkon počítače. Pro instalaci OS byl použit program na zápis OS na microSD karty Raspberry Pi Imager.

Instalace byla jednoduchá a po zvolení vybraného OS a microSD karty stačilo spustit zápis OS na kartu.

Obrázek 7 Raspberry Pi Imager (Foto: autor)

Po instalaci OS jsem již nainstaloval jen potřebný software a mohl začít sestavovat

algoritmus. Pro psaní algoritmu na rozpoznání srdečního tepu a frekvence dýchání jsem se rozhodl použít jazyk Python pro jeho univerzálnost a spoustu balíčků připravených na sériovou komunikaci. Jazyk jsem se učil používat z internetových fór a příručky Hello Python![14]

5.1 Nastavení CW Radaru

Pro testování nastavení radaru jsem se rozhodl používat program minicom. Pro správnou funkčnost je potřeba nastavit sériový port a rychlost čtení bitů v nastavení minicomu:

sudo minicom -s

(30)

Obrázek 8 Nastavení programu Minicom (Foto: autor)

Pro operační systémy Windows se cesta k portu píše ve tvaru „/dev/ttySn“ (n nahradíme číslem portu). Pro dohledání, který konkrétní port radar používá, je vhodný také software Tera Term, který sériové porty vybírá automaticky. Pro Linuxové systémy typu Ubuntu se port nachází ve většině případech na cestě „/dev/ttyUSB0“ a u Raspberry Pi OS na

„/dev/ttyACM0“ nebo „/dev/ttyAMA0“. U linuxových systémů lze dohledat použité porty pomocí příkazu v terminálu:

sudo lsusb nebo

sudo ls /dev/ttyA*

API radaru OPS242-A má několik možností, jak získávat data. Kromě hex formátu a číselného ASCII formátu lze zápis nastavit také na JSON formát, a díky tomu číst přehledně potřebné informace, i pokud čteme větší množství dat. Následně byla přidána ke každému výstupu časová značka a jednotky převedeny na centimetry za sekundu. Podle vzorce na výpočet rychlosti Dopplerova jevu byl zvolen maximální posuv frekvence 12,84 Hz, tedy hodnota pro měření rychlosti na 8 cm/s. Tyto hodnoty byly zvoleny s ohledem na předchozí výzkumy a s jistou tolerancí.

Další nastavení souvisí s citlivostí radaru a rychlostí vzorkování. Čím pomalejší je rychlost vzorkování, tím větší přesnosti, respektive citlivosti radaru dosáhneme. Zvolil jsem proto nejnižší možnou rychlost, tedy 1 000 vzorků za sekundu. Nižší rychlost vzorkování však zároveň způsobí i nižší počet vzorků, kterých potřebujeme co nejvíce, aby nám neunikla potřebná data. Z tohoto důvodu je také nutné snížit počet vzorků shromážděných před zpracováním. Volba počtu vzorků ovlivní rychlost reportu rychlostí, ale zároveň opět přesnost výpočtů. Čím méně vzorků nasbíráme před výpočtem rychlosti, tím nepřesnější měření bude, což se bude o to více projevovat u vyšších vzorkovacích frekvencí. Vzhledem ke zvolené nejnižší vzorkovací rychlosti si můžeme dovolit zvolit i nejnižší možnou velikost bufferu bez velkého rizika znehodnocení výstupu, tedy 128. Následné nastavení rozlišení vzdálenosti a rychlosti souvisí s velikostí Fast Fourierovy Transformace. Velikost je možné nastavit na hodnoty 2048, 1024, 512 a 128 s tím, že hodnota 2048 nám poskytne při daném nastavení nejvyšší rozlišení, tedy 0,06 m/s a 0,08 m.

(31)

Poslední nastavení je vysílaná frekvence. Čím vyšší frekvenci nastavíme, tím kratší vlnovou délku vlnění získáme. To je potřeba, jelikož čím kratší je vlnová délka, tím vyšší je odrazivost vlnění, což se u měkkých tkání hodí. A nakonec se všechna předchozí zadaná nastavení uloží příkazem „A!“, aby se nemusela opět zadávat při příštím použití radaru.

Příkaz Význam

OJ Výstup v JSON formátu

OT Přidat výstup časové značky

C=0 Nastavit časovou značku na 0 s

UC Převést jednotky na cm/s

R<8 Omezit rychlost shora na 8 cm/s

F4 Výstup číselných hodnot se 4 desetinnými místy

S( Shromažďovat 128 vzorků před zpracováním

SI Rychlost 1000 vzorků za vteřinu

X8 Velikost FFT 2048, rozlišení rychlosti 0.06 m/s,

vzdálenosti 0,08 m

T=2 Zvýšit vysílanou frekvenci na 24,159 GHz

A! Uložit dočasné nastavení do trvalé paměti

Tabulka 2 Použité příkazy do API modulu OPS242-A

5.1.1 Aktualizace firmware

Abych mohl provést nastavení velikosti FFT, bylo nutné buď zakoupit novější verzi radaru, nebo ten stávající aktualizovat. Po zvolení druhé možnosti, jsem použil JTAG programátor od firmy Segger. Model se nazývá J-Link EDU MINI a k jeho použití bylo nutné nainstalovat si patřičné J-Link ovladače a Software. Firma Omnipresense mi na mou žádost poslala aktualizační soubor, který jsem pomocí J-Link softwaru nahrál do modulu. Ke správné aktualizaci software je nutné propojit pin konektory J8 ve správném směru. U radaru OPS242-A je směr propojení J8 pin konektoru naznačen výřezem a ani jej díky tomu nelze zapojit opačně. U J-Link programátoru je kabel propojen správně, pokud se v aplikaci J- Link objeví smysluplné informace o radaru. MicroUSB konektor slouží k propojení programátoru s počítačem. K aktualizaci firmware radaru je nutné mít propojený J-Link jak s radarem, tak s počítačem, který nahrává potřebnou aktualizaci do radaru. Balíček s aktualizací je v hex formátu.

(32)

Obrázek 9 JTAG programátor (Foto: autor)

5.2 Algoritmus

Jak již bylo řečeno výše, jako programovací jazyk byl zvolen Python 3. V následujících podkapitolách budou vysvětleny jednotlivé funkce s částmi kódu. Celý algoritmus se pak nachází v přílohách. Pro srovnání výsledků měření byl použit pulzní oxymetr CMS-50E.

5.2.1 main

Hlavní funkce, která se spouští se spuštěním algoritmu. Jsou zde nastaveny základní hodnoty jako sériový port, na kterém poběží komunikace s radarem. Ve funkci se zakládá třída SerialPlot, která při prvním zavolání nastaví počáteční proměnné, pole, otevře textový soubor pro zápis logu a pokusí se spustit sériovou komunikaci pomocí funkce __init__.

Pokud je spojení úspěšné, spustí se funkce background_thread, která nastaví hodnoty radaru a následně čte za neustálého chodu na pozadí data. Ve funkci main() je také spuštěn balíček na vykreslování grafů od matplotlib, animation.FuncAnimation(), který každou milisekundu volá funkci get_serial_data() a její výstup vykresluje do grafu. Po ukončení programu se všechna reportovaná data uloží do textového souboru.

def main():

if operatingSystem == 'Windows':

port_name = 'COM7' # for windows users else:

port_name = '/dev/ttyUSB0' # for linux users baud_rate = 19200

max_plot_length = 20

data_num_bytes = 8 # number of bytes of 1 data point

s = SerialPlot(port_name, baud_rate, max_plot_length, data_num_bytes) # initializes all required variables

s.read_serial_start() # starts background thread

(33)

# plotting starts below

plt_interval = 1 # Period at which the plot animation updates [ms]

xmin = 0

xmax = max_plot_length ymin = -20

ymax = 20

fig = plt.figure()

ax = plt.axes(xlim=(xmin, xmax), ylim=(ymin, ymax)) ax.set_title('OPS242-A Radar')

ax.set_xlabel("Time") ax.set_ylabel("Velocity") line_label = 'Speed Value'

heart_rate_text = ax.text(0.28, 0.895, '', transform=ax.transAxes) line, = ax.plot([], [], label="Heart")

line2, = ax.plot([], [], label="Respiration")

line_value_text = ax.text(0.65, 0.94, '', transform=ax.transAxes)

anim = animation.FuncAnimation(fig, s.get_serial_data, fargs=(line, line_value_text, line_label, heart_rate_text, ax, line2),

interval=plt_interval, frames=60) # fargs has to be a tuple

plt.legend(loc="upper left") plt.minorticks_on()

plt.show() s.close()

5.2.2 background_thread

Funkce background_thread je volána funkcí read_serial_start(). Nejdříve pošle radaru příkazy na změnu nastavení a následně spustí nekonečnou smyčku na čtení dat z radaru.

Čtení probíhá po řádcích a je dekódováno z binárního vstupu na ASCII znaky. Cyklus běží do ukončení programu.

def background_thread(self): # retrieve data self.serialConnection.reset_input_buffer() # Reset all settings

self.serialConnection.write(b'AX\r') # Get all information about current settings self.serialConnection.write(b'??\r') # Add time data at position [0]

self.serialConnection.write(b'OT\r') # Set timeStamp to 0

self.serialConnection.write(b'C=0\r')

(34)

# Set units (C=centimeters, M=meters) per second self.serialConnection.write(b'UC\r')

self.serialConnection.write(b'R<8\r') #self.serialConnection.write(b'R>0.3125\r') self.serialConnection.write(b'F4\r')

self.serialConnection.write(b'OJ\r')

# Sample Rate (SI = 1000 samples/s, SV = 5000 samples/s, SX = 10 000 samples/s, ...)

self.serialConnection.write(b'SI\r')

# Buffer Size (S( = 128, S[ = 256, S< = 512, S>=1024) self.serialConnection.write(b'S(\r')

#Speed/Range Resolution Control (X4 = 0.06 m/s & 0.16 m), viz. readme self.serialConnection.write(b'X8\r')

self.serialConnection.write(b'T=2\r') self.serialConnection.write(b'?F\r') #Save the settings

self.serialConnection.write(b'A!\r')

while self.isRun:

self.rawData = json.loads(self.serialConnection.readline(500).decode('ascii')) if not "speed" in self.rawData:

self.newMessage = self.rawData

if self.newMessage != self.oldMessage:

self.oldMessage = self.rawData print(self.rawData)

self.isReceiving = True

5.2.3 get_serial_data

Funkce get_serial_data() slouží ke zpracování přečtených dat. Ta jsou předávána v podobě stringu, ale se strukturou JSON formátu. Je proto snadné data převést na JSON formát a vytáhnout si informaci o rychlosti a s ní spojené časové značce. Hodnoty jsou vkládány do jednorozměrných polí a při dosažení vyššího počtu dat v poli, jsou nejstarší hodnoty průběžně mazány. Před odesláním hodnot do grafu je ještě spouštěna funkce heart_rate_calculator.

def get_serial_data(self, frame, line, line_value_text, line_label, heart_rate_text, ax, line2):

# use 'h' for a 2 byte integer is_data = "speed" in self.rawData if not is_data:

pass else:

velocity = self.rawData["speed"] #.replace("-","") timestamp = str(self.rawData["time"])

(35)

line_value_text.set_text('[' + line_label + '] = ' + velocity)

self.add_to_array(velocity, timestamp) self.heart_rate_calculator()

heart_rate_text.set_text('Heart Rate = ' + str(self.heart_rate) + ' bpm\n' + 'Breath Rate = ' + str(self.breath) + ' bpm')

line.set_data(self.timestamp_data, self.velocity_data) line2.set_data(self.timestamp_data2, self.velocity_data2) if len(self.timestamp_data) > 2:

xmin = np.min(self.timestamp_data) xmax = np.max(self.timestamp_data) ax.set_xlim(xmin, xmax)

return line, line_value_text, line2

5.2.4 heart_rate_calculator

Funkce slouží k propočtu dechové a srdeční frekvence. Vzhledem k omezení reportovaných rychlostí shora, stačí u srdečního tepu nastavit jen spodní hranici, tedy 4 cm/s. Hodnoty nižší než 4 by měly již souviset pouze s respiračním pohybem. Reportované hodnoty jsou jak záporné, tak kladné. Vzhledem k tomu, že pro výpočet tlukotu srdce nám stačí hodnoty pouze jednoho směru pohybu, rozhodl jsem se záporné hodnoty ignorovat. Rozdělené hodnoty na tlukot srdce a respirační pohyb vydělím rozdílem časových značek v daném poli.

Tím získám počet úderů za vteřinu. Tento údaj vynásobím 60, vložím do pole hodnot vypočteného srdečního tepu a frekvence dýchání a tyto hodnoty zprůměruji. Po určitém naplnění pole obměňuji staré hodnoty za nové.

def heart_rate_calculator(self):

beat = 0 breath = 0

if len(self.heart_rate_array) == 200:

self.heart_rate_array.pop(0) self.breath_array.pop(0) for x in self.velocity_data:

if x > 4:

beat += 1 elif x > 0:

breath += 1

if(len(self.timestamp_data) > 2):

time = self.timestamp_data[-1] - self.timestamp_data[0]

current_heart = beat/time * 60 current_breath = breath/time * 60

self.heart_rate_array.append(current_heart) self.breath_array.append(current_breath)

(36)

self.heart_rate = int(sum(self.heart_rate_array)/len(self.heart_rate_array)) self.breath = int(sum(self.breath_array)/len(self.breath_array))

return self.heart_rate, self.breath

(37)

6 Výsledky

Algoritmus funguje do té míry, že reportuje měřenou rychlost, avšak výsledky tohoto algoritmu bohužel nejsou uspokojivé. Hodnoty příliš často a ve velké míře kolísají a neodpovídají reálným hodnotám. Pro zjištění, zda lze měření, nějakým způsobem zpřesnit, jsem postupně vyzkoušel všechny varianty velikosti bufferu, frekvence vzorkování a velikosti Fast Fourierovy Transformace měřitelné pod rychlostí 10 cm/s, což odpovídá posuvu frekvence 16 Hz. Po diskusi s technickou podporou společnosti Omnipresense jsem došel k závěru, že radar OPS242-A neumožňuje nastavit dostatečnou citlivost měření tak, aby bylo možné získat stabilní hodnoty srdečního tepu a frekvence dýchání.

Obrázek 10 Graf srdečního tepu s průměrnými hodnotami srdečního tepu a dýchání (Foto: autor)

(38)

7 Závěr

Cílem této práce bylo sestavit v domácím prostředí zařízení, které by bylo schopné monitorovat srdeční tep a frekvenci dýchání. Řešení, která se v odborných pracích nejčastěji vyskytují, vytváří radarové systémy, kde výzkumníci vyrábí a sestavují vlastní antény, propojují je s transceivery a dalšími součástkami radarových systémů. To má tu výhodu, že systém je tak precizní, jak jej autor navrhne a specificky navržený pro účely monitoringu vitálních funkcí. Pokud by se experiment podařil, znamenalo by to z mého pohledu značný posun této technologie blíže domácnostem, které by tak mohly relativně jednoduše sledovat zdraví svých blízkých.

Nezdar tohoto konkrétního experimentu však neznamená, že není možné takový systém v domácích podmínkách připravit. Existuje několik řešení, které by mohly experiment převrátit v úspěšný projekt. Jedním z nich by bylo zakoupení zařízení s mnohem vyšší frekvencí vysílání vlnění, zhruba kolem 70 GHz. Vlnění o takové frekvenci bude mít mnohem kratší vlnovou délku, tudíž i mnohem větší odrazivost od měkkých tkání. To by umožnilo registrovat mnohem jemnější pohyby a bylo by možné pozorovat i mikro záchvěvy na povrchu kůže. Můj experiment se spíše snažil zachytit pohyb hrudníku a přímý tlukot srdce.

Další variantou je získání opět radaru s vysílací frekvencí 24 GHz, ale se silnější procesní jednotkou, aby nejen zvládla, ale měla vůbec možnost zvýšit velikost bufferu na více než 128 vzorků při velikosti FFT 2048 a rychlosti vzorkování 5000 vzorků za sekundu. Což by vedlo k více reportovaným rychlostem, vyššímu rozlišení, a tedy i možnosti zpřesnit nepravidelná data.

Bezkontaktní měření vitálních funkcí, ale i následné určování emocí z nich, má velkou budoucnost. Jak již bylo řečeno, pomohlo by to pacientům v nemocnicích, kteří jsou v tak závažném stavu, že je pro ně nevhodné, nebo až nebezpečné upevňování kontaktních měřících přístrojů. Vývoj této technologie by pomohl při monitoringu vitálních funkcí ve spánku, kdy hrozí, že si pacient zařízení ze sebe strhne. V rámci měření emocí by mohl pomoci při výslechu u policejních jednotek, nebo jako anonymní ukazatel spokojenosti zákazníků v obchodech. FMCW radary mají například tu výhodu, že dokážou efektivně oddělit a monitorovat více subjektů najednou. Bezkontaktní monitoring je neinvazivní a věřím, že se v příštích několika letech bude společně s technologiemi IoT rapidně rozvíjet.

Odkazy

Související dokumenty

Společně s kolegy jsme na správě serverů měli na starosti převážně webhostingové servery, ale také DNS servery, emailový server, proxy server, samba server, server

Jako zaměstnanec na výše uvedené pozici jsem měl na starosti hostingové servery, proxy server, DNS servery, interní servery, mail server, firemní kamerový systém,

Popisuji zde také operační systém, který jsem během praxe zpravidla používal, a to operační systém Windows Server 2008 R2.. Zde popisuji blíže hlavní funkce

Níže v této kapitole jsou popsány operační systémy a důležité nástroje, které byly během praxe používány.. 3.1

 Zavádí se do paměti počítače při startu a zůstává v činnosti po celou dobu běhu OS..

• Je základní programové vybavení počítače, které umožňuje běh programu a ovlivňuje, jak bude počítačový systém komunikovat s uživatelem.. • Operační

 Serverové operační systémy jsou konstruovány k provozu programů pro více uživatelů, kritické podnikové aplikace s mnoha přístupy nebo všestranné

Výsledkem práce je funkční základní osvětlení pro domácnost, zejména pak ale povědomí o možnostech Raspberry Pi, které je možné uplatnit při rozšiřování