Sadržaj:

Kako prikazati broj otkucaja srca na KAMENOM LCD -u s Ar: 31 korak
Kako prikazati broj otkucaja srca na KAMENOM LCD -u s Ar: 31 korak

Video: Kako prikazati broj otkucaja srca na KAMENOM LCD -u s Ar: 31 korak

Video: Kako prikazati broj otkucaja srca na KAMENOM LCD -u s Ar: 31 korak
Video: Умные часы Mafam MX5: что нужно знать // Часы с телефонными звонками по Bluetooth 2024, Studeni
Anonim
Kako prikazati broj otkucaja srca na KAMENOM LCD -u s ar
Kako prikazati broj otkucaja srca na KAMENOM LCD -u s ar

kratak uvod

Prije nekog vremena pronašao sam modul senzora otkucaja srca MAX30100 u internetskoj kupovini. Ovaj modul može prikupljati podatke o kisiku u krvi i broj otkucaja srca korisnika, što je također jednostavno i prikladno za upotrebu. Prema podacima, otkrio sam da u datotekama knjižnice Arduino postoje knjižnice MAX30100. To jest, ako koristim komunikaciju između Arduina i MAX30100, mogu izravno pozvati datoteke knjižnice Arduino bez potrebe za prepisivanjem datoteka upravljačkog programa. To je dobra stvar, pa sam kupio modul MAX30100.

Korak 1: Odlučio sam koristiti Arduino za provjeru funkcije otkucaja srca i prikupljanja kisika u krvi MAX30100

Odlučio sam koristiti Arduino za provjeru funkcije otkucaja srca i prikupljanja kisika u krvi MAX30100
Odlučio sam koristiti Arduino za provjeru funkcije otkucaja srca i prikupljanja kisika u krvi MAX30100

Napomena: ovaj modul prema zadanim postavkama samo s MCU komunikacijama razine 3,3 V, jer prema zadanim postavkama koristi otpor IIC pin pull -a od 4,7 K do 1,8 V, tako da prema zadanim postavkama nema komunikacije s Arduinom, ako želite komunicirati s Arduinom i potrebna su dva 4,7 K otpornika za izvlačenje IIC pina koji su spojeni na VIN pin, ovi će sadržaji biti objavljeni na poleđini poglavlja.

Korak 2: Funkcionalne dodjele

Prije nego što sam započeo ovaj projekt, razmišljao sam o nekim jednostavnim značajkama:

  • Prikupljeni su podaci o broju otkucaja srca i kisiku u krvi
  • Podaci o broju otkucaja srca i kisiku u krvi prikazuju se putem LCD zaslona

Ovo su jedine dvije značajke, ali ako želimo to implementirati, moramo više razmisliti:

  • Koji se master MCU koristi?
  • Kakav LCD ekran?

Kao što smo ranije spomenuli, koristimo Arduino za MCU, ali ovo je Arduino LCD zaslon, pa moramo izabrati odgovarajući modul LCD zaslona. Planiram koristiti LCD zaslon sa serijskim portom. Ovdje imam prikaz STONE STVI070WT-01, ali ako Arduino mora komunicirati s njim, za pretvorbu razine potreban je MAX3232. Tada se osnovni elektronički materijali određuju na sljedeći način:

1. Arduino Mini Pro razvojna ploča

2. MAX30100 modul osjetnika brzine otkucaja srca i kisika u krvi

3. KAMENI STVI070WT-01 Modul za prikaz LCD serijskog porta

4. MAX3232 modul

Korak 3: Uvod u hardver

MAX30100

MAX30100 je integrirana otopina senzora za mjerenje pulsa i oksimetrije. Kombinira dvije LED diode, fotodetektor, optimiziranu optiku i tihu analognu obradu signala za otkrivanje pulsne oksimetrije i signala otkucaja srca.

MAX30100 radi s izvorima napajanja od 1,8 V i 3,3 V i može se isključiti putem softvera s zanemarivom strujom u stanju mirovanja, dopuštajući da napajanje ostane stalno povezano.

Korak 4: Aplikacije

● Nosivi uređaji

● Uređaji za pomoć u fitnesu

● Medicinski nadzorni uređaji

Korak 5: Prednosti i značajke

1 、 Kompletno rješenje za pulsni oksimetar i senzor otkucaja srca pojednostavljuje dizajn

  • Integrirane LED diode, foto senzor i analogni prednji kraj visokih performansi -kraj
  • Mali 5,6 mm x 2,8 mm x 1,2 mm 14-pinski optički poboljšani sustav u paketu

2 peration Rad s iznimno niskom potrošnjom energije produljuje vijek trajanja baterije za prijenosne uređaje

  • Programabilna brzina uzorkovanja i LED struja za uštedu energije
  • Izuzetno niska struja isključivanja (0,7 μA, tip)

3, Napredna funkcionalnost poboljšava mjerne performanse

  • Visoki SNR pruža robusnu otpornost na artefakte pri kretanju
  • Integrirano poništavanje ambijentalnog svjetla
  • Visoka mogućnost uzorkovanja
  • Mogućnost brzog izlaza podataka

Korak 6: Načelo otkrivanja

Načelo otkrivanja
Načelo otkrivanja

Samo prstom pritisnite senzor da procijenite pulsnu zasićenost kisikom (SpO2) i puls (ekvivalent otkucaja srca).

Pulsni oksimetar (oksimetar) je mini-spektrometar koji KORISTI principe različitih apsorpcijskih spektra crvenih krvnih stanica za analizu zasićenja krvi kisikom. Ova metoda mjerenja u stvarnom vremenu i brzo se također široko koristi u mnogim kliničkim referencama. Neću previše predstavljati MAX30100 jer su ti materijali dostupni na internetu. Zainteresirani prijatelji mogu potražiti informacije o ovom modulu za mjerenje otkucaja srca na Internetu i dublje razumjeti njegovo načelo otkrivanja.

Korak 7: KAMENI STVI070WT-01

KAMENI STVI070WT-01
KAMENI STVI070WT-01

Uvod u prikaz

U ovom projektu ću koristiti STONE STVI070WT-01 za prikaz otkucaja srca i podataka o kisiku u krvi. Upravljački čip integriran je unutar zaslona, a korisnicima je na raspolaganju softver. Korisnici samo trebaju dodati gumbe, okvire za tekst i drugu logiku kroz dizajnirane slike korisničkog sučelja, a zatim generirati konfiguracijske datoteke i preuzeti ih na zaslon za pokretanje. Zaslon STVI070WT-01 komunicira s MCU-om putem uart-rs232 signala, što znači da moramo dodati čip MAX3232 za pretvaranje RS232 signala u TTL signal, tako da možemo komunicirati s Arduino MCU.

Korak 8: Ako niste sigurni kako koristiti MAX3232, pogledajte sljedeće slike:

Ako niste sigurni kako koristiti MAX3232, pogledajte sljedeće slike
Ako niste sigurni kako koristiti MAX3232, pogledajte sljedeće slike

Ako mislite da je pretvaranje razine previše problematično, možete odabrati druge vrste zaslona STONE, od kojih neki mogu izravno izlaziti uart-ttl signal.

Službena web stranica ima detaljne informacije i uvod:

Korak 9: Ako vam trebaju video vodiči i vodiči za korištenje, možete ih pronaći i na službenoj web stranici

Ako su vam potrebni video vodiči i vodiči za korištenje, možete ih pronaći i na službenoj web stranici
Ako su vam potrebni video vodiči i vodiči za korištenje, možete ih pronaći i na službenoj web stranici

Korak 10: Koraci razvoja

Tri koraka razvoja STONE zaslona:

  • Dizajnirajte logiku zaslona i logiku gumba pomoću softvera STONE TOOL i preuzmite datoteku dizajna u modul zaslona.
  • MCU komunicira sa STONE LCD zaslonskim modulom preko serijskog porta.
  • S podacima dobivenim u koraku 2, MCU čini druge radnje.

Korak 11: Instalacija softvera STONE TOOL

Instalacija softvera STONE TOOL
Instalacija softvera STONE TOOL

Preuzmite najnoviju verziju softvera STONE TOOL (trenutno TOOL2019) sa web stranice i instalirajte je.

Nakon instaliranja softvera otvorit će se sljedeće sučelje:

Pritisnite gumb "Datoteka" u gornjem lijevom kutu za stvaranje novog projekta, o čemu ćemo kasnije govoriti.

Korak 12: Arduino

Arduino je elektronička prototipna platforma otvorenog koda koja je jednostavna za korištenje i laka za korištenje. Uključuje hardverski dio (razne razvojne ploče koje su u skladu sa Arduino specifikacijama) i softverski dio (Arduino IDE i povezani razvojni kompleti).

Hardverski dio (ili razvojna ploča) sastoji se od mikrokontrolera (MCU), Flash memorije (Flash) i skupa univerzalnih ulazno/izlaznih sučelja (GPIO), koje možete zamisliti kao matičnu ploču mikroračunala. Softverski dio uglavnom se sastoji od Arduino IDE-a na računalu, srodnog paketa podrške na razini ploče (BSP) i bogate biblioteke funkcija trećih strana. Uz Arduino IDE možete jednostavno preuzeti BSP povezan s vašom razvojnom pločom i potrebnim knjižnicama. da napišete svoje programe. Arduino je platforma otvorenog koda. Do sada je bilo mnogo modela i mnogo izvedenih kontrolera, uključujući Arduino Uno, Arduino Nano, ArduinoYun i tako dalje. Osim toga, Arduino IDE sada ne podržava samo razvojne ploče serije Arduino, već dodaje i podršku za popularne razvojne ploče poput kao Intel Galileo i NodeMCU uvođenjem BSP -a.

Arduino osjeća okoliš kroz razne senzore, upravljačka svjetla, motore i druge uređaje kako bi povratno djelovao i utjecao na okoliš. Mikrokontroler na ploči može se programirati s programskim jezikom Arduino, sastaviti u binarne datoteke i snimiti u mikrokontroler. za Arduino je implementiran s programskim jezikom Arduino (na temelju ožičenja) i razvojnim okruženjem Arduino (na temelju obrade). Projekti zasnovani na Arduinu mogu sadržavati samo Arduino, kao i Arduino i drugi softver koji radi na računalu, te komuniciraju sa svakim druge (poput Flash, Processing, MaxMSP).

Korak 13: Razvojno okruženje

Razvojno okruženje
Razvojno okruženje

Arduino razvojno okruženje je Arduino IDE, koji se može preuzeti s Interneta.

Prijavite se na službenu web stranicu Arduina i preuzmite softver https://www.arduino.cc/en/Main/Software?setlang=c… Nakon instaliranja Arduino IDE -a, nakon otvaranja softvera pojavit će se sljedeće sučelje:

Arduino IDE prema zadanim postavkama stvara dvije funkcije: funkciju postavljanja i funkciju petlje. Na Internetu postoji mnogo Arduino predstavljanja. Ako nešto ne razumijete, idite na Internet da biste to pronašli.

Korak 14: Proces implementacije Arduino LCD projekta

Proces implementacije Arduino LCD projekta
Proces implementacije Arduino LCD projekta

hardverska veza

Kako bismo sljedeći korak u pisanju koda prošli bez problema, prvo moramo utvrditi pouzdanost hardverske veze.

U ovom su projektu korištena samo četiri komada hardvera:

1. Arduino Mini pro razvojna ploča

2. KAMENI STVI070WT-01 tft-lcd zaslon

3. MAX30100 senzor brzine otkucaja srca i kisika u krvi

4. MAX3232 (rs232-> TTL) Razvojna ploča Arduino Mini Pro i zaslon sa zaslonom TVI-STVI070WT-01 spojeni su putem UART-a, što zahtijeva pretvaranje razine kroz MAX3232, a zatim se razvojna ploča Arduino Mini Pro i modul MAX30100 povezuju putem IIC sučelje. Nakon što smo jasno razmislili, možemo nacrtati sljedeću sliku ožičenja:

Korak 15:

Slika
Slika

Provjerite nema li pogrešaka u hardverskoj vezi i prijeđite na sljedeći korak.

Korak 16: Dizajn korisničkog sučelja TFT LCD -a

Dizajn korisničkog sučelja TFT LCD
Dizajn korisničkog sučelja TFT LCD

Prije svega, moramo dizajnirati sliku prikaza korisničkog sučelja koju može dizajnirati PhotoShop ili drugi alati za oblikovanje slike. Nakon dizajniranja slike prikaza korisničkog sučelja, spremite sliku u-j.webp

Otvorite softver STONE TOOL2019 i izradite novi projekt:

Korak 17: Uklonite sliku koja je zadano učitana u novi projekt i dodajte sliku korisničkog sučelja koju smo dizajnirali

Uklonite sliku koja je zadano učitana u novi projekt i dodajte sliku korisničkog sučelja koju smo dizajnirali
Uklonite sliku koja je zadano učitana u novi projekt i dodajte sliku korisničkog sučelja koju smo dizajnirali

Korak 18: Dodajte komponentu za prikaz teksta

Dodajte komponentu prikaza teksta
Dodajte komponentu prikaza teksta

Dodajte komponentu za prikaz teksta, dizajnirajte prikaznu znamenku i decimalnu točku, nabavite mjesto pohrane komponente za prikaz teksta u zaslonu.

Učinak je sljedeći:

Korak 19:

Adresa komponente prikaza teksta:

  • Priključak sta: 0x0008
  • Broj otkucaja srca: 0x0001

Kiseonik u krvi: 0x0005 Glavni sadržaj sučelja korisničkog sučelja je sljedeći:

  • Status veze
  • Prikaz pulsa
  • Kiseonik u krvi pokazao

Korak 20: Generirajte konfiguracijsku datoteku

Generirajte konfiguracijsku datoteku
Generirajte konfiguracijsku datoteku

Nakon što je dizajn korisničkog sučelja dovršen, konfiguracijska datoteka se može generirati i preuzeti na zaslon STVI070WT-01.

Prvo izvedite korak 1, zatim umetnite USB memorijski pogon u računalo i prikazat će se simbol diska. Zatim kliknite "Preuzmi na u-disk" za preuzimanje konfiguracijske datoteke na USB fleš disk, a zatim umetnite USB fleš disk u STVI070WT-01 da biste dovršili nadogradnju.

Korak 21: MAX30100

MAX30100
MAX30100

MAX30100 komunicira putem IIC -a. Njegov princip rada je da se ADC vrijednost otkucaja srca može dobiti putem infracrvenog LED zračenja. Registar MAX30100 može se podijeliti u pet kategorija: državni registar, FIFO, kontrolni registar, temperaturni registar i registar ID -a. čita temperaturnu vrijednost čipa radi ispravljanja odstupanja uzrokovanog temperaturom. ID registar može pročitati ID broj čipa.

MAX30100 je povezan s razvojnom pločom Arduino Mini Pro putem IIC komunikacijskog sučelja. Budući da u Arduino IDE-u postoje gotove datoteke knjižnice MAX30100, možemo čitati podatke o broju otkucaja srca i kisiku u krvi bez proučavanja registara MAX30100. Za one koji su zainteresirani za istraživanje registra MAX30100, pogledajte podatkovnu tablicu MAX30100.

Korak 22: Izmijenite vučni otpornik MAX30100 IIC

Izmijenite vučni otpornik MAX30100 IIC
Izmijenite vučni otpornik MAX30100 IIC

Valja napomenuti da je otpor pri podizanju IIC pina modula MAX30100 od 4,7 k spojen na 1,8 v, što u teoriji nije problem. Međutim, razina komunikacijske logike pina Arduino IIC je 5 V, pa ne može komunicirati s Arduinom bez promjene hardvera modula MAX30100. Izravna komunikacija je moguća ako je MCU STM32 ili drugi MCU razine logičke razine 3,3 V.

Stoga je potrebno izvršiti sljedeće promjene:

Uklonite tri 4,7 k otpornika označena na slici električnim lemilicom. Zatim zavarite dva otpornika od 4,7 k na pinove SDA i SCL na VIN, kako bismo mogli komunicirati s Arduinom.

Korak 23: Arduino

Arduino
Arduino

Otvorite Arduino IDE i pronađite sljedeće gumbe:

Korak 24: Potražite "MAX30100" da biste pronašli dvije knjižnice za MAX30100, a zatim kliknite Preuzmi i instaliraj

Traziti
Traziti

Korak 25: Nakon instalacije, demonstraciju MAX30100 možete pronaći u mapi biblioteke LIB u Arduinu:

Nakon instalacije, demonstraciju MAX30100 možete pronaći u mapi biblioteke LIB u Arduinu
Nakon instalacije, demonstraciju MAX30100 možete pronaći u mapi biblioteke LIB u Arduinu

Korak 26: Dvaput kliknite datoteku da biste je otvorili

Dvaput kliknite datoteku da biste je otvorili
Dvaput kliknite datoteku da biste je otvorili

Korak 27: Cijeli kôd slijedi:

Ovaj se Demo može izravno testirati. Ako je hardverska veza u redu, možete preuzeti kompilaciju koda na razvojnu ploču Arduibo i vidjeti podatke MAX30100 u alatu za serijsko otklanjanje pogrešaka.

Kompletan kod je sljedeći:

/* Arduino-MAX30100 biblioteka integriranih senzora oksimetrije /otkucaja srca Copyright (C) 2016 OXullo Intersecans Ovaj program je besplatan softver: možete ga redistribuirati i /ili izmijeniti pod uvjetima GNU Opće javne licence koju je objavila Zaklada za slobodni softver, bilo verzija 3 licence, ili (po vašem izboru) bilo koja kasnija verzija. Ovaj se program distribuira u nadi da će biti koristan, ali BEZ BILO KAKVOG JAMSTVA; čak i bez impliciranog jamstva TRGOVINSKE SPOSOBNOSTI ili FITNESA ZA POSEBNU SVRHU. Za više pojedinosti pogledajte Opću javnu licencu GNU -a. Uz ovaj ste program trebali dobiti kopiju Opće javne licence GNU -a. Ako ne, vidi. */ #include #include "MAX30100_PulseOximeter.h" #define REPORTING_PERIOD_MS 1000 // PulseOximeter je sučelje više razine sa senzorom // nudi: // * izvješćivanje o otkrivanju otkucaja // * izračun brzine otkucaja srca srca * * SpO2 (razina oksidacije) proračun PulseOximeter boginja; uint32_t tsLastReport = 0; // Povratni poziv (dolje registriran) aktiviran kada se otkrije impuls void onBeatDetected () {Serial.println ("Beat!"); } void setup () {Serial.begin (115200); Serial.print ("Inicijalizacija pulsnog oksimetra.."); // Inicijalizacija instance PulseOximetra // Kvarovi su općenito posljedica nepravilnog ožičenja I2C, nedostatka napajanja // ili pogrešnog ciljnog čipa if (! Pox.begin ()) {Serial.println ("FAILED"); za(;;); } else {Serial.println ("USPJEH"); } // Zadana struja za IR LED je 50mA i može se promijeniti // raskomentiranjem sljedećeg retka. Provjerite MAX30100_Registers.h za sve // dostupne opcije. // pox.setIRLedCurrent (MAX30100_LED_CURR_7_6MA); // Registrirajte povratni poziv za pox.setOnBeatDetectedCallback za otkrivanje otkucaja (onBeatDetected); } void loop () {// Svakako pozovite update što je brže moguće pox.update (); // Asinkrono iscrpljivanje otkucaja srca i razine oksidacije u serijski broj // Za oboje, vrijednost 0 znači "nevažeće" if (millis () - tsLastReport> REPORTING_PERIOD_MS) {Serial.print ("Brzina otkucaja srca:"); Serial.print (pox.getHeartRate ()); Serial.print ("bpm / SpO2:"); Serijski.ispis (pox.getSpO2 ()); Serial.println ("%"); tsLastReport = millis (); }}

Korak 28:

Slika
Slika

Ovaj je kod vrlo jednostavan, vjerujem da ga možete razumjeti na prvi pogled. Moram reći da je modularno programiranje Arduina vrlo zgodno, a ne moram ni razumjeti kako se implementira upravljački kod Uarta i IIC -a.

Naravno, gornji kôd je službeni Demo i još moram napraviti neke izmjene za prikaz podataka na STONE -ovom zaslonu.

Korak 29: Prikažite podatke na STONE displeju putem Arduina

Prvo moramo dobiti adresu komponente koja prikazuje podatke o broju otkucaja srca i kisiku u krvi na zaslonu STONE:

U mom projektu adresa je sljedeća: Adresa komponente prikaza pulsa: 0x0001 Adresa modula za prikaz kisika u krvi: 0x0005 Adresa statusa veze senzora: 0x0008 Ako trebate promijeniti sadržaj prikaza u odgovarajućem prostoru, možete promijeniti sadržaj prikaza slanjem podataka na odgovarajuću adresu ekrana preko serijskog porta Arduino.

Korak 30: Izmijenjeni kôd slijedi:

/* Arduino-MAX30100 biblioteka integriranih senzora oksimetrije /otkucaja srca Copyright (C) 2016 OXullo Intersecans Ovaj program je besplatan softver: možete ga redistribuirati i /ili izmijeniti pod uvjetima GNU Opće javne licence koju je objavila Zaklada za slobodni softver, bilo verzija 3 licence, ili (po vašem izboru) bilo koja kasnija verzija. Ovaj se program distribuira u nadi da će biti koristan, ali BEZ BILO KAKVOG JAMSTVA; čak i bez podrazumijevanog jamstva TRGOVINSKE SPOSOBNOSTI ili SPOSOBNOSTI ZA POSEBNU SVRHU. Za više pojedinosti pogledajte GNU Opću javnu licencu. Uz ovaj ste program trebali dobiti kopiju Opće javne licence GNU -a. Ako ne, vidi. */ #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 srčani_sred_xx 0x00}; nepotpisani znak 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 je sučelje više razine sa senzorom // nudi: // * izvješćivanje o otkrivanju otkucaja // * izračun srčanog ritma // * SpO2 (razina oksidacije) izračun PulseOximeter boginje; uint32_t tsLastReport = 0; // Povratni poziv (dolje registriran) aktiviran kada se otkrije impuls void onBeatDetected () {// Serial.println ("Beat!"); } void setup () {Serial.begin (115200); // Serial.print ("Inicijalizacija pulsnog oksimetra.."); // Inicijalizacija instance PulseOximetra // Kvarovi su općenito posljedica nepravilnog ožičenja I2C, nedostatka napajanja // ili pogrešnog ciljnog čipa if (! Pox.begin ()) {// Serial.println ("FAILED"); // connect_sta_send [7] = 0x00; // Serial.write (connect_sta_send, 8); za(;;); } else {connect_sta_send [7] = 0x01; Serial.write (connect_sta_send, 8); // Serial.println ("USPJEH"); } // Zadana struja za IR LED je 50mA i može se promijeniti // raskomentiranjem sljedećeg retka. Provjerite MAX30100_Registers.h za sve // dostupne opcije.pox.setIRLedCurrent (MAX30100_LED_CURR_7_6MA); // Registrirajte povratni poziv za pox.setOnBeatDetectedCallback za otkrivanje otkucaja (onBeatDetected); } void loop () {// Svakako pozovite update što je brže moguće pox.update (); // Asinhrono izbacivanje otkucaja srca i razine oksidacije u serijski // Za oboje vrijednost 0 znači "nevažeće" if (millis () - tsLastReport> REPORTING_PERIOD_MS) {// Serial.print ("Brzina otkucaja srca:"); // Serial.print (pox.getHeartRate ()); // Serial.print ("bpm / SpO2:"); // Serial.print (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 = millis (); }}

Korak 31: Prikažite otkucaje srca na LCD -u pomoću Arduina

Prikažite otkucaje srca na LCD -u pomoću Arduina
Prikažite otkucaje srca na LCD -u pomoću Arduina

Sastavite kôd, preuzmite ga na Arduino razvojnu ploču i spremni ste za početak testiranja.

Možemo vidjeti da kada prsti napuste MAX30100, otkucaji srca i kisik u krvi prikazuju 0. Postavite prst na sakupljač MAX30100 da biste u stvarnom vremenu vidjeli otkucaje srca i razinu kisika u krvi.

Učinak se može vidjeti na sljedećoj slici:

Preporučeni: