Turinys:

Kaip rodyti širdies ritmą akmenų skystųjų kristalų ekrane naudojant Ar: 31 veiksmas
Kaip rodyti širdies ritmą akmenų skystųjų kristalų ekrane naudojant Ar: 31 veiksmas

Video: Kaip rodyti širdies ritmą akmenų skystųjų kristalų ekrane naudojant Ar: 31 veiksmas

Video: Kaip rodyti širdies ritmą akmenų skystųjų kristalų ekrane naudojant Ar: 31 veiksmas
Video: Part 4 - Tess of the d'Urbervilles Audiobook by Thomas Hardy (Chs 24-31) 2024, Liepa
Anonim
Kaip rodyti širdies ritmą akmenų skystųjų kristalų ekrane naudojant Ar
Kaip rodyti širdies ritmą akmenų skystųjų kristalų ekrane naudojant Ar

trumpas pristatymas

Prieš kurį laiką pirkdamas internete radau širdies ritmo jutiklio modulį MAX30100. Šis modulis gali rinkti vartotojų deguonies ir širdies ritmo duomenis, kuriuos taip pat paprasta ir patogu naudoti. Remiantis duomenimis, radau, kad „Arduino“bibliotekos failuose yra MAX30100 bibliotekų. Tai yra, jei naudojuosi ryšiu tarp „Arduino“ir „MAX30100“, galiu tiesiogiai paskambinti „Arduino“bibliotekos failams, neperrašydamas tvarkyklės failų. Tai geras dalykas, todėl nusipirkau MAX30100 modulį.

1 žingsnis: nusprendžiau naudoti „Arduino“, kad patikrintų MAX30100 širdies ritmą ir kraujo deguonies surinkimo funkciją

Aš nusprendžiau naudoti „Arduino“, kad patikrintų MAX30100 širdies ritmą ir kraujo deguonies surinkimo funkciją
Aš nusprendžiau naudoti „Arduino“, kad patikrintų MAX30100 širdies ritmą ir kraujo deguonies surinkimo funkciją

Pastaba: šis modulis pagal numatytuosius nustatymus yra tik su 3,3 V lygio MCU ryšiais, nes pagal numatytuosius nustatymus naudojamas IIC kaiščio traukos atsparumas nuo 4,7 K iki 1,8 V, todėl pagal numatytuosius nustatymus nėra ryšio su „Arduino“, jei norite bendrauti su „Arduino“ir reikia dviejų 4,7 K IIC kaiščio traukimo rezistoriaus, prijungto prie VIN kaiščio, šis turinys bus pateiktas skyriaus gale.

2 žingsnis: funkcinės užduotys

Prieš pradėdamas šį projektą pagalvojau apie keletą paprastų funkcijų:

  • Buvo renkami širdies ritmo duomenys ir kraujo deguonies duomenys
  • Širdies ritmo ir kraujo deguonies duomenys rodomi per LCD ekraną

Tai tik dvi funkcijos, tačiau jei norime tai įgyvendinti, turime daugiau galvoti:

  • Koks pagrindinis MCU naudojamas?
  • Kokio tipo LCD ekranas?

Kaip minėjome anksčiau, MCU naudojame „Arduino“, tačiau tai yra „Arduino“LCD ekrano projektas, todėl turime pasirinkti tinkamą LCD ekrano modulį. Planuoju naudoti LCD ekrano ekraną su nuosekliu prievadu. Čia turiu „STONE STVI070WT-01“ekraną, bet jei „Arduino“reikia su juo bendrauti, norint atlikti lygio konvertavimą, reikia MAX3232. Tada pagrindinės elektroninės medžiagos nustatomos taip:

1. „Arduino Mini Pro“kūrimo lenta

2. MAX30100 širdies ritmo ir kraujo deguonies jutiklio modulis

3. STONE STVI070WT-01 LCD nuoseklaus prievado ekrano modulis

4. MAX3232 modulis

3 žingsnis: Įvadas į aparatūrą

MAX30100

„MAX30100“yra integruotas pulso oksimetrijos ir širdies ritmo monitoriaus jutiklių sprendimas. Jame yra du šviesos diodai, fotodetektorius, optimizuota optika ir mažo triukšmo analoginio signalo apdorojimas, kad būtų galima aptikti pulso oksimetriją ir širdies ritmo signalus.

„MAX30100“veikia iš 1,8 V ir 3,3 V maitinimo šaltinių ir gali būti išjungtas naudojant programinę įrangą, kurios laukimo režimo srovė yra nedidelė, todėl maitinimo šaltinis visada gali būti prijungtas.

4 žingsnis: programos

● Nešiojami prietaisai

● „Fitness Assistant Devices“

● Medicinos stebėjimo prietaisai

5 žingsnis: privalumai ir savybės

1 、 Pilnas pulso oksimetras ir širdies ritmo jutiklio sprendimas supaprastina dizainą

  • Integruoti šviesos diodai, foto jutiklis ir aukštos kokybės analoginis priekinis galas
  • Mažas 5,6 mm x 2,8 mm x 1,2 mm 14 kontaktų optiškai patobulintas sistemos paketas

2, ypač mažos galios veikimas padidina nešiojamų prietaisų baterijos veikimo laiką

  • Programuojamas mėginio dažnis ir LED srovė taupant energiją
  • Itin maža išjungimo srovė (0,7 µA, tipinė)

3, Išplėstinės funkcijos pagerina matavimo našumą

  • Didelis SNR užtikrina tvirtą judesio artefakto atsparumą
  • Integruotas aplinkos šviesos atšaukimas
  • Didelio mėginio dažnio galimybė
  • Greito duomenų išvesties galimybė

6 žingsnis: aptikimo principas

Aptikimo principas
Aptikimo principas

Tiesiog prispauskite pirštą prie jutiklio, kad įvertintumėte impulsų prisotinimą deguonimi (SpO2) ir pulsą (atitinka širdies plakimą).

Pulso oksimetras (oksimetras) yra mini spektrometras, kuris naudoja skirtingų raudonųjų kraujo kūnelių absorbcijos spektrų principus, kad analizuotų kraujo prisotinimą deguonimi. Šis realaus laiko ir greito matavimo metodas taip pat plačiai naudojamas daugelyje klinikinių nuorodų. MAX30100 per daug nepristatysiu, nes šios medžiagos galima rasti internete. Susidomėję draugai gali ieškoti informacijos apie šį širdies ritmo tikrinimo modulį internete ir geriau suprasti jo aptikimo principą.

7 žingsnis: STONE STVI070WT-01

AKMENS STVI070WT-01
AKMENS STVI070WT-01

Įvadas į ekraną

Šiame projekte aš naudosiu STONE STVI070WT-01, kad būtų rodomi širdies ritmo ir kraujo deguonies duomenys. Vairuotojo mikroschema buvo integruota į ekrano ekraną, o vartotojams yra programinė įranga. Vartotojams tereikia pridėti mygtukus, teksto laukelius ir kitą logiką per sukurtas vartotojo sąsajos nuotraukas, tada sugeneruoti konfigūracijos failus ir atsisiųsti juos į ekrano ekraną, kad jie būtų paleisti. STVI070WT-01 ekranas bendrauja su MCU per uart-rs232 signalą, o tai reiškia, kad turime pridėti MAX3232 mikroschemą, kad RS232 signalas būtų paverstas TTL signalu, kad galėtume bendrauti su „Arduino MCU“.

8 veiksmas: jei nesate tikri, kaip naudoti MAX3232, žiūrėkite šias nuotraukas:

Jei nesate tikri, kaip naudoti MAX3232, žiūrėkite šias nuotraukas
Jei nesate tikri, kaip naudoti MAX3232, žiūrėkite šias nuotraukas

Jei manote, kad lygio keitimas yra pernelyg varginantis, galite pasirinkti kitų tipų STONE ekranus, kai kurie iš jų gali tiesiogiai perduoti uart-ttl signalą.

Oficialioje svetainėje yra išsami informacija ir įvadas:

9 veiksmas: jei jums reikia vaizdo įrašų vadovėlių ir vadovėlių, juos taip pat galite rasti oficialioje svetainėje

Jei jums reikia vaizdo įrašų vadovėlių ir vadovėlių, juos taip pat galite rasti oficialioje svetainėje
Jei jums reikia vaizdo įrašų vadovėlių ir vadovėlių, juos taip pat galite rasti oficialioje svetainėje

10 žingsnis: kūrimo žingsniai

Trys STONE ekrano kūrimo žingsniai:

  • Sukurkite ekrano logiką ir mygtukų logiką naudodami programinę įrangą „STONE TOOL“ir atsisiųskite dizaino failą į ekrano modulį.
  • MCU palaiko ryšį su STONE LCD ekrano moduliu per nuoseklųjį prievadą.
  • Naudodamas 2 veiksme gautus duomenis, MCU atlieka kitus veiksmus.

11 veiksmas: „STONE TOOL“programinės įrangos diegimas

STONE TOOL Programinės įrangos diegimas
STONE TOOL Programinės įrangos diegimas

Atsisiųskite naujausią „STONE TOOL“programinės įrangos versiją (šiuo metu TOOL2019) ir įdiekite ją.

Įdiegus programinę įrangą, bus atidaryta ši sąsaja:

Viršutiniame kairiajame kampe spustelėkite mygtuką „Failas“, kad sukurtumėte naują projektą, kurį aptarsime vėliau.

12 žingsnis: „Arduino“

„Arduino“yra atviro kodo elektroninio prototipo platforma, kurią lengva naudoti ir paprasta naudoti. Jį sudaro techninė dalis (įvairios kūrimo plokštės, atitinkančios „Arduino“specifikaciją) ir programinė įranga („Arduino IDE“ir susiję kūrimo rinkiniai).

Techninės įrangos dalį (arba kūrimo plokštę) sudaro mikrovaldiklis (MCU), „Flash“atmintis („Flash“) ir universalių įvesties/išvesties sąsajų (GPIO) rinkinys, kurį galite įsivaizduoti kaip mikrokompiuterio pagrindinę plokštę. Programinės įrangos dalį daugiausia sudaro „Arduino IDE“kompiuteryje, susijęs valdybos lygio palaikymo paketas (BSP) ir turtinga trečiųjų šalių funkcijų biblioteka. Naudodami „Arduino IDE“galite lengvai atsisiųsti BSP, susietą su jūsų kūrimo lenta ir reikalingomis bibliotekomis. rašyti savo programas. „Arduino“yra atvirojo kodo platforma. Iki šiol buvo daug modelių ir daug išvestinių valdiklių, įskaitant „Arduino Uno“, „Arduino Nano“, „ArduinoYun“ir pan. Be to, „Arduino IDE“dabar ne tik palaiko „Arduino“serijos kūrimo plokštes, bet ir palaiko tokias populiarias kūrimo plokštes kaip „Intel Galileo“ir „NodeMCU“, pristatydami BSP.

„Arduino“jaučia aplinką per įvairius jutiklius, valdančius žibintus, variklius ir kitus prietaisus, kad galėtų grįžti atgal ir daryti įtaką aplinkai. Lentos mikrovaldiklį galima užprogramuoti naudojant „Arduino“programavimo kalbą, sudaryti į dvejetainius failus ir įrašyti į mikrovaldiklį. „Arduino“yra įdiegta naudojant „Arduino“programavimo kalbą (pagrįstą „Wiring“) ir „Arduino“kūrimo aplinką (pagrįstą apdorojimu). „Arduino“projektuose gali būti tik „Arduino“, taip pat „Arduino“ir kita programinė įranga, veikianti asmeniniame kompiuteryje, ir jie bendrauja su kiekvienu kiti (pvz., „Flash“, apdorojimas, „MaxMSP“).

13 veiksmas: kūrimo aplinka

Vystymosi aplinka
Vystymosi aplinka

„Arduino“kūrimo aplinka yra „Arduino IDE“, kurią galima atsisiųsti iš interneto.

Prisijunkite prie oficialios „Arduino“svetainės ir atsisiųskite programinę įrangą https://www.arduino.cc/en/Main/Software?setlang=c… Įdiegę „Arduino IDE“, atidarę programinę įrangą pasirodys ši sąsaja:

„Arduino IDE“pagal numatytuosius nustatymus sukuria dvi funkcijas: sąrankos funkciją ir ciklo funkciją. Internete yra daug „Arduino“įvadų. Jei kažko nesuprantate, galite eiti į internetą ir rasti tai.

14 žingsnis: „Arduino LCD“projekto įgyvendinimo procesas

„Arduino“LCD projekto įgyvendinimo procesas
„Arduino“LCD projekto įgyvendinimo procesas

aparatūros ryšys

Norėdami užtikrinti, kad kitas kodo rašymo žingsnis vyktų sklandžiai, pirmiausia turime nustatyti aparatūros ryšio patikimumą.

Šiame projekte buvo naudojamos tik keturios aparatūros dalys:

1. „Arduino Mini pro“kūrimo lenta

2. STONE STVI070WT-01 tft-lcd ekranas

3. MAX30100 širdies ritmo ir kraujo deguonies jutiklis

4. MAX3232 (rs232-> TTL) „Arduino Mini Pro“kūrimo plokštė ir STVI070WT-01 TFT-LCD ekranas yra prijungti per UART, todėl reikia keisti lygį per MAX3232, o tada „Arduino Mini Pro“kūrimo plokštė ir MAX30100 modulis. IIC sąsaja. Gerai pagalvoję galime nupiešti tokį laidų paveikslėlį:

15 žingsnis:

Vaizdas
Vaizdas

Įsitikinkite, kad aparatūros jungtyje nėra klaidų, ir pereikite prie kito veiksmo.

16 žingsnis: TFT LCD vartotojo sąsajos dizainas

TFT LCD vartotojo sąsajos dizainas
TFT LCD vartotojo sąsajos dizainas

Visų pirma, turime sukurti vartotojo sąsajos ekrano vaizdą, kurį galima sukurti naudojant „PhotoShop“ar kitus vaizdo dizaino įrankius. Sukūrę vartotojo sąsajos ekrano vaizdą, išsaugokite vaizdą-j.webp

Atidarykite programinę įrangą „STONE TOOL2019“ir sukurkite naują projektą:

17 veiksmas: pašalinkite vaizdą, kuris buvo įkeltas pagal numatytuosius nustatymus naujame projekte, ir pridėkite mūsų sukurtą vartotojo sąsajos vaizdą

Pašalinkite vaizdą, kuris buvo įkeltas pagal numatytuosius nustatymus naujame projekte, ir pridėkite mūsų sukurtą vartotojo sąsajos vaizdą
Pašalinkite vaizdą, kuris buvo įkeltas pagal numatytuosius nustatymus naujame projekte, ir pridėkite mūsų sukurtą vartotojo sąsajos vaizdą

18 veiksmas: pridėkite teksto rodymo komponentą

Pridėkite teksto rodymo komponentą
Pridėkite teksto rodymo komponentą

Pridėkite teksto rodymo komponentą, suprojektuokite ekrano skaitmenį ir dešimtainį tašką, gaukite teksto rodymo komponento saugojimo vietą ekrane.

Poveikis yra toks:

19 žingsnis:

Teksto rodymo komponento adresas:

  • Ryšys: 0x0008
  • Širdies ritmas: 0x0001

Kraujo deguonis: 0x0005 Pagrindinis UI sąsajos turinys yra toks:

  • Ryšio būsena
  • Širdies ritmo ekranas
  • Kraujo deguonis parodė

20 veiksmas: sukurkite konfigūracijos failą

Sukurti konfigūracijos failą
Sukurti konfigūracijos failą

Kai vartotojo sąsajos dizainas bus baigtas, konfigūracijos failą galima sugeneruoti ir atsisiųsti į ekraną STVI070WT-01.

Pirmiausia atlikite 1 veiksmą, tada įdėkite USB atmintinę į kompiuterį ir pasirodys disko simbolis. Tada spustelėkite „Atsisiųsti į„ u “diską“, kad atsisiųstumėte konfigūracijos failą į USB atmintinę, tada įdėkite USB atmintinę į STVI070WT-01, kad užbaigtumėte naujinimą.

21 žingsnis: MAX30100

MAX30100
MAX30100

MAX30100 palaiko ryšį per IIC. Jos veikimo principas yra tas, kad širdies ritmo ADC reikšmę galima gauti infraraudonųjų spindulių spinduliuote. MAX30100 registrą galima suskirstyti į penkias kategorijas: valstybinis registras, FIFO, valdymo registras, temperatūros registras ir ID registras. nuskaito lusto temperatūros vertę, kad ištaisytų temperatūros sukeltą nuokrypį. ID registras gali nuskaityti lusto ID numerį.

„MAX30100“yra prijungtas prie „Arduino Mini Pro“kūrimo plokštės per IIC ryšio sąsają. Kadangi „Arduino IDE“yra paruoštų MAX30100 bibliotekos failų, mes galime skaityti širdies ritmo ir deguonies kraujo duomenis, nesimokydami MAX30100 registrų. Tiems, kurie nori ištirti MAX30100 registrą, žr. MAX30100 duomenų lapą.

22 veiksmas: pakeiskite MAX30100 IIC ištraukiamąjį rezistorių

Pakeiskite traukimo rezistorių MAX30100 IIC
Pakeiskite traukimo rezistorių MAX30100 IIC

Reikėtų pažymėti, kad MAX30100 modulio IIC kaiščio atsparumas 4,7 k tempimui yra prijungtas prie 1,8 V, o tai teoriškai nėra problema. Tačiau „Arduino IIC“kaiščio ryšio logikos lygis yra 5 V, todėl jis negali bendrauti su „Arduino“nekeisdamas MAX30100 modulio aparatinės įrangos. Tiesioginis ryšys įmanomas, jei MCU yra STM32 arba kitas 3.3 V logikos lygio MCU.

Todėl reikia atlikti šiuos pakeitimus:

Elektriniu lituokliu nuimkite tris paveikslėlyje pažymėtus 4,7 k rezistorius. Tada suvirinkite du 4,7 k rezistorius prie SDA ir SCL kaiščių prie VIN, kad galėtume bendrauti su „Arduino“.

23 žingsnis: „Arduino“

Arduino
Arduino

Atidarykite „Arduino IDE“ir raskite šiuos mygtukus:

24 veiksmas: ieškokite „MAX30100“, kad surastumėte dvi „MAX30100“bibliotekas, tada spustelėkite Atsisiųsti ir įdiegti

Ieškoti
Ieškoti

25 žingsnis: Po diegimo „MAX30100“demonstracinę versiją galite rasti „Arduino“LIB bibliotekos aplanke:

Įdiegę „MAX30100“demonstraciją rasite „Arduino“LIB bibliotekos aplanke
Įdiegę „MAX30100“demonstraciją rasite „Arduino“LIB bibliotekos aplanke

26 veiksmas: dukart spustelėkite failą, kad jį atidarytumėte

Dukart spustelėkite failą, kad jį atidarytumėte
Dukart spustelėkite failą, kad jį atidarytumėte

27 žingsnis: Visas kodas yra toks:

Šią demonstraciją galima tiesiogiai išbandyti. Jei aparatinės įrangos ryšys yra tinkamas, galite atsisiųsti kodo kompiliaciją į „Arduibo“kūrimo plokštę ir pamatyti MAX30100 duomenis serijos derinimo įrankyje.

Visas kodas yra toks:

/* „Arduino-MAX30100“oksimetrija /širdies ritmo integruota jutiklių biblioteka Autorių teisės (C) 2016 „OXullo Intersecans“Ši programa yra nemokama programinė įranga: galite ją platinti ir (arba) modifikuoti pagal „Free Software Foundation“paskelbtas GNU bendrosios viešosios licencijos sąlygas., arba 3 licencijos versija, arba (jūsų pasirinkimu) bet kuri vėlesnė versija. Ši programa platinama tikintis, kad ji bus naudinga, tačiau BE JOKIOS GARANTIJOS; net ir numanomos PERKELiamUMO ar TINKAMUMO TIKSLAMS TIKSLO garantijos. Daugiau informacijos rasite GNU bendrojoje viešojoje licencijoje. Kartu su šia programa turėjote gauti GNU bendrosios viešosios licencijos kopiją. Jei ne, žr. */ #include #include "MAX30100_PulseOximeter.h" #define REPORTING_PERIOD_MS 1000 // „PulseOximeter“yra aukštesnio lygio jutiklio sąsaja // ji siūlo: // * smūgio aptikimo ataskaitas // * širdies ritmo apskaičiavimą // * SpO2 (oksidacijos lygis)) skaičiavimas PulseOximeter raupų; uint32_t tsLastReport = 0; // Atšaukimas (užregistruotas žemiau) suaktyvinamas, kai aptinkamas impulsas void onBeatDetected () {Serial.println ("Beat!"); } void setup () {Serial.begin (115200); Serial.print ("Inicijuojamas pulso oksimetras.."); // Inicijuoti „PulseOximeter“egzempliorių // Gedimai dažniausiai kyla dėl netinkamo I2C laidų, trūkstamo maitinimo šaltinio // arba netinkamo tikslinio lusto, jei (! Pox.begin ()) {Serial.println ("FAILED"); dėl(;;); } else {Serial.println ("Sėkmė"); } // Numatytoji infraraudonųjų spindulių šviesos diodo srovė yra 50 mA ir ją galima pakeisti // nekomentuojant šios eilutės. Patikrinkite MAX30100_Registers.h visas // galimas parinktis. // pox.setIRLedCurrent (MAX30100_LED_CURR_7_6MA); // Užregistruoti ritmo aptikimo pox.setOnBeatDetectedCallback (onBeatDetected); } void loop () {// Būtinai paskambinkite atnaujinimui kuo greičiau pox.update (); // Asinchroniškai išmesti širdies ritmą ir oksidacijos lygius į serijinius // Abiem atvejais 0 reikšmė reiškia „netinkamas“, jei (millis () - tsLastReport> REPORTING_PERIOD_MS) {Serial.print („Heart rate:“); Serial.print (pox.getHeartRate ()); Serial.print ("bpm / SpO2:"); Serijinis atspaudas (pox.getSpO2 ()); Serial.println ("%"); tsLastReport = milis (); }}

28 žingsnis:

Vaizdas
Vaizdas

Šis kodas yra labai paprastas, manau, kad jūs galite jį suprasti iš pirmo žvilgsnio. Turiu pasakyti, kad modulinis „Arduino“programavimas yra labai patogus, ir man net nereikia suprasti, kaip įdiegtas „Uart“ir „IIC“tvarkyklės kodas.

Žinoma, aukščiau pateiktas kodas yra oficiali demonstracinė versija, ir man vis tiek reikia atlikti tam tikrus pakeitimus, kad duomenys būtų rodomi STONE ekrane.

29 veiksmas: rodykite duomenis „STONE Displayer“per „Arduino“

Pirmiausia turime gauti komponento, rodančio širdies ritmą ir kraujo deguonies duomenis, adresą STONE ekrane:

Mano projekte adresas yra toks: Širdies ritmo rodymo komponento adresas: 0x0001 Kraujo deguonies rodymo modulio adresas: 0x0005 Jutiklio prijungimo būsenos adresas: 0x0008 Jei reikia pakeisti rodomą turinį atitinkamoje erdvėje, galite pakeisti ekrano turinį siunčiant duomenis atitinkamu ekrano adresu per „Arduino“nuoseklųjį prievadą.

30 veiksmas: pakeistas kodas yra toks:

/* „Arduino-MAX30100“oksimetrija /širdies ritmo integruota jutiklių biblioteka Autorių teisės (C) 2016 „OXullo Intersecans“Ši programa yra nemokama programinė įranga: galite ją platinti ir (arba) modifikuoti pagal „Free Software Foundation“paskelbtas GNU bendrosios viešosios licencijos sąlygas., arba 3 licencijos versija, arba (jūsų pasirinkimu) bet kuri vėlesnė versija. Ši programa platinama tikintis, kad ji bus naudinga, tačiau BE JOKIOS GARANTIJOS; net ir numanomos PERKELiamUMO ar TINKAMUMO TIKSLAMS TIKSLO garantijos. Daugiau informacijos rasite GNU bendrojoje viešojoje licencijoje. Kartu su šia programa turėjote gauti GNU bendrosios viešosios licencijos kopiją. Jei ne, žr. */ #include #include "MAX30100_PulseOximeter.h" #define REPORTING_PERIOD_MS 1000 #define Heart_dis_addr 0x01 #define Sop2_dis_addr 0x05 #define connect_sta_addr 0x08 nepasirašytas char heart_rate_xx0, 0], 0 = 0, 0 = 0, 0 0x00}; unsigned char Sop2_send [8] = {0xA5, 0x5A, 0x05, 0x82, 0x00, / Sop2_dis_addr, 0x00, 0x00}; unsigned char connect_sta_send [8] = {0xA5, 0x5A, 0x05, 0x82, 0x00, / connect_sta_addr, 0x00, 0x00}; // „PulseOximeter“yra aukštesnio lygio sąsaja su jutikliu // ji siūlo: // * pranešimus apie ritmo aptikimą // * širdies ritmo apskaičiavimą // * SpO2 (oksidacijos lygio) skaičiavimą PulseOximeter raupus; uint32_t tsLastReport = 0; // Atšaukimas (užregistruotas žemiau) suaktyvinamas, kai aptinkamas impulsas void onBeatDetected () {// Serial.println ("Beat!"); } void setup () {Serial.begin (115200); // Serial.print ("Inicijuojamas pulso oksimetras.."); // Inicijuoti „PulseOximeter“egzempliorių // Gedimai dažniausiai kyla dėl netinkamo I2C laido, trūkstamo maitinimo šaltinio // arba netinkamo tikslinio lusto, jei (! Pox.begin ()) {// Serial.println ("FAILED"); // connect_sta_send [7] = 0x00; // Serial.write (connect_sta_send, 8); dėl(;;); } else {connect_sta_send [7] = 0x01; Serial.write (connect_sta_send, 8); // Serial.println ("Sėkmė"); } // Numatytoji infraraudonųjų spindulių šviesos diodo srovė yra 50 mA ir ją galima pakeisti // nekomentuojant šios eilutės. Patikrinkite MAX30100_Registers.h visas // galimas parinktis.pox.setIRLedCurrent (MAX30100_LED_CURR_7_6MA); // Užregistruoti ritmo aptikimo pox.setOnBeatDetectedCallback (onBeatDetected); } void loop () {// Būtinai paskambinkite atnaujinimui kuo greičiau pox.update (); // Asinchroniškai išmesti širdies ritmą ir oksidacijos lygius į serijinius // Abiem atvejais reikšmė 0 reiškia „netinkamas“, jei (millis () - tsLastReport> REPORTING_PERIOD_MS) {// Serial.print ("Širdies ritmas:"); // Serial.print (pox.getHeartRate ()); // Serial.print ("bpm / SpO2:"); // Serijinis atspaudas (pox.getSpO2 ()); // Serial.println ("%"); heart_rate_send [7] = (uint32_t) pox.getHeartRate (); Serial.write (heart_rate_send, 8); Sop2_send [7] = pox.getSpO2 (); Serial.write („Sop2_send“, 8); tsLastReport = milis (); }}

31 žingsnis: rodykite širdies ritmą LCD ekrane naudodami „Arduino“

Rodykite širdies ritmą LCD ekrane naudodami „Arduino“
Rodykite širdies ritmą LCD ekrane naudodami „Arduino“

Sudarykite kodą, atsisiųskite jį į „Arduino“kūrimo lentą ir būsite pasiruošę pradėti testavimą.

Matome, kad kai pirštai palieka MAX30100, pulsas ir kraujo deguonis rodomi 0. Padėkite pirštą ant MAX30100 kolektoriaus, kad pamatytumėte savo širdies ritmą ir deguonies kiekį kraujyje realiu laiku.

Poveikį galima pamatyti šioje nuotraukoje:

Rekomenduojamas: