...

Arduino könyvtár pulzusméréshez pulzoximéterrel

Arduino könyvtár pulzusméréshez pulzoximéterrel

Arduino könyvtár pulzusméréshez pulzoximéterrel

Az egyik megfigyelt paraméter az alvásmenedzsment projektemben

Ez a pulzus. mérni azt A hemoglobin és az oxihemoglobin különböző hullámhosszú fényekkel szembeni viselkedésén alapuló készüléket fejlesztettem ki.. Alapvetően arról van szó, hogy megmérjük, mennyi fény tud áthaladni vagy visszaverődni egy jól öntözött testterületen. A jelenség teljes ciklusának gyakorisága lehetővé teszi a mérést impulzus.

Tartalomjegyzék

    A tervezési és tesztelési szakaszban a impulzusmérő készülék Kifejlesztettem néhány kis programot, amelyek segítenek ellenőrizni az összeszerelés helyességét. Először az alábbi kódot írtam le, amely időről időre (legalább minden alkalommal) vette a mért értékeket MAXIMUM_MEASUREMENT_TIME és legfeljebb mindegyik MINIMUM_MEASUREMENT_TIME). MINIMUM_SIZE) és a Python alkalmazással rendelkező számítógépről figyelhető hogy később elemezhessük őket.

    Az értékek beállítását követően (nagyon sűrű mérésekkel kezdve) kaptam egy értékgyűjteményt a pulzoximéter idővel, hogy grafikont készíthessek egy táblázat segítségével, LibreOffice Calc de LibreOffice, konkrét.

    gr%C3%A1fica-de-las-medidas-del-ox%C3%ADmetro-de-pulso-con-Calc-de-LibreOffice Librería Arduino para monitorización de la frecuencia cardíaca con oxímetro de pulso

    Az összegyűjtött adatokkal, amint az a fenti képen is látható, a következő művelet annak meghatározása volt, hogy az értékek sűrűsége lehetővé teszi-e, hogy megbízható, de "gazdaságos" módon (a szükségesnél nem több mintavétellel) kiszámítsuk a impulzus; Ahogy az alábbi grafikonon is látható, úgy tűnt, hogy a megtett intézkedések az ésszerűen elvárható eredmények elérését szolgálják.

    .

    medida-de-la-presencia-de-oxihemoglobina-a-lo-largo-del-tiempo-con-un-ox%C3%ADmetro-de-pulso Librería Arduino para monitorización de la frecuencia cardíaca con oxímetro de pulso

    Ezt követően az adatmintavételből származó információk alapján egy olyan algoritmust kellett kidolgozni, amely méri a pulzusszámot. Ragaszkodva a grafikonhoz, hogy az egyszerűség kedvéért feltételezzük, hogy a grafikonhoz hasonló elrendezést képvisel. QRS komplexum, a legegyszerűbb dolognak az tűnik, ha a legkiemelkedőbb részek közötti időt nagyobb értékekkel mérjük (ami a kamrák depolarizációs qRs zónájának felel meg), eldobva a laposabb és "zajosabb" zónát, ami ezért nehezebb. megmérni. Az elfogadott megoldás, amely megfelel az alábbi tesztkódnak, a következő eljárás szerint működik:

    • Határozza meg minden esetben a mért területet, hogy csak az értékcsúcsokat vegye figyelembe qRs és dobd el a völgyet. Ehhez egy bizonyos állandónál nagyobb értékeket is lehet mérni, de fennáll annak a veszélye, hogy az egyén és/vagy a körülmények arányosan ugyan, de növelhetik vagy csökkenthetik az értékeket. Ennek elkerülése érdekében a területen lévő értéket nagyobbnak tekintjük, mint azt, amely egy bizonyos együtthatóval meghaladja az átlagértéket. Ily módon a mérés érzékenyen önkalibrált, és az együttható finomhangolásával még tovább állítható, amit esetemben a tesztek során kísérletileg sikerült elérni.

      Válassza ki a csökkenő zóna értékeit a méréshez (Rs) a csúcs qRs, a lehető legközelebb a görbe maximumához. Ha tudni szeretné, hogy a növekvő zóna feladásra kerül, elegendő ellenőrizni, hogy egy új érték kisebb-e, mint az előző, és ellenőrizze, hogy a keresett érték még nem található-e, mivel általában több érték van a csökkenőben zónája qRs a mintavételi sűrűségtől függően. Az impulzus időzítéséhez annak a pillanatnak az értéke kerül tárolásra, amikor a pontot megtalálták (ez az ezredmásodperc, amelyet millisz ()), és összehasonlítja a következővel.

      Annak biztosítására, hogy a mért érték a legmagasabb görbe csökkenő zónájában legyen a legnagyobb, változót használnak logikai érték (mérés_impulzus ebben a példában és aktív_impulzusmérés a könyvtárban), amely a főgörbe emelkedő zónájába való belépéskor aktiválódik, és deaktiválódik, ha megtalálja az első csökkenő értéket, amely az időzített érték.

      Mivel az impulzus időtartamát ütés/perc-ben (ppm) szokás megadni, a kapott impulzusok közötti idő értékét úgy korrigálják, hogy az ábrázolás teljes idejét (60000 perc, XNUMX XNUMX ezredmásodperc) elosztják a kapott intervallummal. levonva az aktuális ezredmásodpercet (az aktuális értékből) a korábban időzítettekből.

      Para evitar medidas falsas (como el dispositivo midiendo en vacío, por ejemplo) se verifica que el resultado se encuentra entre unos valores máximos y mínimos antes de darlo por cierto. Aunque se considera como media que un valor normal para un adulto sano en reposo se encuentra entre 60 y 100 ppm, hay valores admisibles por debajo, es fácil encontrar 40 ppm en un atleta en reposo, hasta 200 ppm sometido a un ejercicio intenso y más de 100 ppm en adultos sedentarios en estados de excitación, precisamente un factor interesante para el proyecto de gestión del sueño que me lleva a desarrollar este impulzusmérő készülék. Emiatt ajánlatos ezeket az értékeket sokat lazítani, hogy ne vesszenek el a szélsőségek, amelyek pontosan mutathatnak releváns szempontokat.

      Az új átlagértéket úgy számítják ki, hogy a mintavételezett értékek száma alapján csökkentik az aktuális átlag relevanciáját, és hozzáadják az utolsó értéket, súlyozva egy együtthatóval, amely azt csökkenti, minél több eddig mért értéket mértek. .

    Végül a korábban ismertetett algoritmus felhasználásával kifejlesztettem a könyvtárat az impulzus kiszámításához a jelenlétének detektálásával hemoglobin vagy a oxihemoglobin (a használt fény hullámhosszától függően) az alábbi kódból.

    A könyvtár elvárja, hogy a mintavételi függvényt periodikusan hívják meg monitor_pulse() az impulzus kiszámításához, amely a függvénnyel lekérdezhető utolsó_impulzus() vagy a funkcióval átlagos_impulzus() az átlagos pulzus. Amellett, hogy korlátozott volt az erőforrás, kizártam a megszakítások alkalmazását, mert nem azonnali értékekre volt szükségem, hanem tartós értékekre az idő múlásával a impulzus az alváskezelési projektemben

    . Mindenesetre az általam elvégzett tesztek alapján nem tűnik szükségesnek; akár az eszköz, akár a viselkedése miatt impulzus, a mintavételezés egy bizonyos gyakorisággal elegendő információt kínál, és nem sokkal több (releváns) érhető el a növelésével, és nem is nagyon lehet csökkenteni anélkül, hogy a számításhoz lényeges adatokat ne veszítsen; a kód korai verzióiban, hogy figyelemmel kísérje a kód olvasását pulzoximéter Megállapítottam, hogy nem szükséges ragaszkodni a maximális mérési időhöz, hiszen ha az egymást követő értékek változásait helyesen vettük figyelembe, az nagyon közel volt a minimumhoz.

    A következő példaprogram bemutatja, hogyan használhatja az előző könyvtárat a impulzus egy pulzoximéter. Az osztály példányosítása mellett Pulso szintjének nyomon követése oxihemoglobin/hemoglobin és kisebb periodicitás mellett az értéke a impulzus számított és átlag.

    Annak érdekében, hogy a mérések relevánsak legyenek, a program egy várakozást programoz, mielőtt bármilyen érték megjelenik. Mivel az érték hibás lehet (például ha a felhasználó eltávolítja az eszközt), az értékek csak akkor jelennek meg, ha az érvényesnek tekintett tartományon belül vannak.

    Hozzászólás Comment

    Lehet, hogy lemaradtál

    Szerafinit gyorsítóSeraphinite Accelerator által optimalizálva
    Nagy sebességű webhelyet kapcsol be, hogy vonzó legyen az emberek és a keresőmotorok számára.