Arduino raamatukogu pulssoksümeetriga südame löögisageduse jälgimiseks

Arduino raamatukogu pulssoksümeetriga südame löögisageduse jälgimiseks

Arduino raamatukogu pulssoksümeetriga südame löögisageduse jälgimiseks

Üks minu unehaldusprojektis jälgitud parameetritest

See on pulss. seda mõõta Töötasin välja seadme, mis põhineb hemoglobiini ja oksühemoglobiini käitumisel valguse erinevatel lainepikkustel. Põhimõtteliselt on see mõõtmine, kui palju teatud tüüpi valgust suudab läbida või peegelduda hästi niisutatud kehapiirkonnas. Selle nähtuse täieliku tsükli toimumise sagedus võimaldab mõõta pulso.

Sisukord

    Projekteerimise ja katsetamise etapis impulsi mõõtmise seade Töötasin välja mõned väikesed programmid, mis aitavad mul kontrollida, kas kokkupanek oli õige. Kõigepealt kirjutasin alla koodi, mis võttis aeg-ajalt mõõdetud väärtused (vähemalt iga MAXIMUM_MEASUREMENT_TIME ja kõige rohkem igaüks MINIMUM_MEASUREMENT_TIME), kui need varieerusid miinimumi ühe ja eelmise vahel (väärtus, mis vastab MINIMUM_SIZE) ja jälgitakse Pythoni rakendusega arvutist et saaks neid hiljem analüüsida.

    Kui väärtused olid korrigeeritud (alustades väga tihedatest mõõtmistest), sain ma väärtuste kogumi impulssoksümeeter aja jooksul, et saaksin arvutustabeli abil graafiku koostada, LibreOffice'i arvutus de LibreOffice, konkreetne.

    pulssoksümeetri mõõtmiste graafik koos

    Kogutud andmetega, nagu on kujutatud ülaltoodud pildil, oli järgmiseks toiminguks kindlaks teha, kas väärtuste tihedus võimaldas meil usaldusväärsel, kuid "ökonoomsel" viisil (mitte võtta rohkem kui vajalikke andmeid) arvutada pulso; Nagu allolevalt graafikult näha, näis, et võetud meetmed aitavad saavutada tulemusi, mida on mõistlik oodata.

    .

    oksühemoglobiini olemasolu mõõtmine aja jooksul pulssoksümeetriga

    Järgmiseks oli andmete valimitest saadud teabe põhjal vaja välja töötada algoritm, mis mõõdaks pulsisagedust. Pidades kinni graafikust, eeldatakse lihtsuse huvides, et see esindab paigutust, mis sarnaneb QRS kompleks, tundub kõige lihtsam olevat mõõta kõige silmatorkavamate osade vahelisi aegu kõrgemate väärtustega (mis vastab vatsakeste depolarisatsiooni qRs tsoonile), jättes kõrvale lamedama ja "mürarikkama" tsooni, mis on seetõttu keerulisem. mõõta. Vastuvõetud lahendus, mis vastab allolevale testkoodile, töötab vastavalt järgmisele protseduurile:

    • Tuvastage igal juhul mõõdetav ala, et jälgida ainult väärtuste tippe qRs ja viska orgu minema. Selleks võib mõõta teatud konstandist suuremaid väärtusi, kuid on oht, et indiviid ja/või asjaolud võivad, kuigi proportsionaalselt, väärtusi tõsta või langetada. Selle vältimiseks loetakse piirkonna väärtus suuremaks kui see, mis ületab teatud koefitsiendi võrra keskmist väärtust. Nii on mõõtmine tundlikult isekalibreeritud ja seda saaks koefitsiendi peenhäälestusega veelgi reguleerida, mille olen enda puhul katsete käigus katseliselt saavutanud.

      Valige mõõtmiseks kahaneva tsooni väärtused (Rs) tipust qRs, võimalikult lähedal kõvera maksimumile. Et teada saada, et tõusev tsoon on hüljatud, piisab, kui kontrollida, et uus väärtus on eelmisest väiksem, ja veenduda, et otsitavat väärtust pole veel leitud, kuna üldiselt on kahanevas tsoonis mitu väärtust tsoon qRs sõltuvalt proovivõtu tihedusest. Impulsi ajastamiseks salvestatakse hetke väärtus, mil punkt leiti (millisekundid, mille millis ()) ja võrdleb seda järgmisega.

      Tagamaks, et mõõdetud väärtus on kõrgeima kõvera kahanevas tsoonis suurim, kasutatakse muutujat tõeväärtus (mõõta_pulss selles näites ja aktiivne_impulsi_mõõtmine teegis), mis aktiveeritakse põhikõvera tõusvasse tsooni sisenemisel ja deaktiveeritakse, kui leitakse esimene kahanev väärtus, mis on ajastatud väärtus.

      Kuna tavaliselt esitatakse impulsi kestust löökidena minutis (ppm), korrigeeritakse saadud impulsside vahelise aja väärtust, jagades esituse koguaja (üks minut, 60000 XNUMX millisekundit) intervalliga, mis saadakse lahutades praegused millisekundid (praegusest väärtusest) varem ajastatud ajast.

      Vale mõõtmise vältimiseks (näiteks vaakumis mõõtev seade) kontrollitakse, et tulemus oleks maksimaalse ja minimaalse väärtuse vahel, enne kui seda enesestmõistetavaks pidada. Kuigi keskmiseks loetakse, et terve täiskasvanu puhkeolekus on normaalne väärtus vahemikus 60–100 ppm, on lubatud väärtused allpool, on kerge leida puhkeolekus sportlasel 40 ppm, kuni 200 ppm. intensiivne treening ja rohkem. 100 ppm istuvatel inimestel erutusseisundis, just unehaldusprojekti jaoks huvitav tegur mis sunnib mind seda arendama impulsi mõõtmise seade. Sel põhjusel on soovitatav neid väärtusi palju lõdvestada, et ei läheks kaduma äärmused, mis võiksid täpselt näidata asjakohaseid aspekte.

      Uus keskmine väärtus arvutatakse, vähendades praeguse keskmise asjakohasust valimite arvu põhjal ja lisatakse viimane väärtus, mis on samuti kaalutud koefitsiendiga, mis vähendab seda veelgi, mida rohkem väärtusi on seni mõõdetud. .

    Lõpuks, kasutades eelnevalt kirjeldatud algoritmi, töötasin välja raamatukogu impulsi arvutamiseks, tuvastades selle olemasolu hemoglobiin o la oksühemoglobiin (olenevalt kasutatud valguse lainepikkusest) allolevast koodist.

    Teek eeldab, et diskreetimisfunktsiooni kutsutakse perioodiliselt välja monitor_pulse() pulsi arvutamiseks, mida saab funktsiooniga vaadata viimane_pulss() või funktsiooniga keskmine_pulss() keskmine pulss. Lisaks sellele, et ressurss oli piiratud, välistasin katkestuste kasutamise, sest ma ei vajanud vahetuid väärtusi, vaid pigem aja jooksul püsivaid väärtusi, et jälgida pulso minu unehaldusprojektis

    . Minu tehtud testide põhjal ei tundu see igal juhul vajalik; kas seadme või käitumise tõttu pulso, teatud sagedusega diskreetimine pakub piisavalt infot ja seda suurendades ei saa palju rohkem (asjakohast), samuti pole võimalik seda palju vähendada ilma arvutuse jaoks olulisi andmeid kaotamata; koodi varajastes versioonides, et jälgida koodi lugemist impulssoksümeeter Avastasin, et maksimaalsest mõõtmisajast ei ole vaja kinni pidada, sest kui järjestikuste väärtuste kõikumisi õigesti arvestada, oli see minimaalsele väga lähedal.

    Järgmine näidisprogramm näitab, kuidas kasutada eelmist teeki mõõtmiseks pulso ühe impulssoksümeeter. Lisaks klassi instantseerimisele Pulso taseme jälgimine oksühemoglobiin/hemoglobiin ja väiksema perioodilisusega väärtus pulso arvutatud ja keskmine.

    Mõõtmiste asjakohasuse tagamiseks programmeeritakse enne mis tahes väärtuse kuvamist ooteaeg. Kuna väärtus võib olla vale (näiteks kui kasutaja eemaldab seadme), kuvatakse väärtused ainult siis, kui need jäävad kehtivaks peetavate väärtuste vahemikku.

    Postita kommentaar

    Võib-olla jäite vahele