Sadržaj:

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

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

Video: Kako prikazati broj otkucaja srca na KAMENOM LCD -u sa Ar: 31 korak
Video: Умные часы Mafam MX5: что нужно знать // Часы с телефонными звонками по Bluetooth 2024, Juli
Anonim
Kako prikazati broj otkucaja srca na KAMENOM LCD -u sa Ar
Kako prikazati broj otkucaja srca na KAMENOM LCD -u sa 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 zgodno za upotrebu. Prema podacima, otkrio sam da u datotekama biblioteke Arduino postoje biblioteke MAX30100. To jest, ako koristim komunikaciju između Arduina i MAX30100, mogu izravno pozvati datoteke Arduino biblioteke 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 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 ima samo MCU komunikaciju na nivou 3,3 V, jer prema zadanim postavkama koristi IIC pin pull pull otpor 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 spojenih na VIN pin, ovi sadržaji bit će predstavljeni na kraju 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 pulsu i kiseoniku u krvi prikazuju se putem LCD ekrana

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 ekran, pa moramo izabrati odgovarajući LCD monitor. Planiram koristiti LCD ekran sa serijskim portom. Ovdje imam prikaz STONE STVI070WT-01, ali ako Arduino mora komunicirati s njim, MAX3232 je potreban za konverziju nivoa. Tada se osnovni elektronički materijali određuju na sljedeći način:

1. Arduino Mini Pro razvojna ploča

2. MAX30100 modul senzora brzine otkucaja srca i kiseonika u krvi

3. KAMENI STVI070WT-01 LCD monitor sa serijskim portom

4. MAX3232 modul

Korak 3: Uvod u hardver

MAX30100

MAX30100 je integrirano rješenje senzora pulsne oksimetrije i monitora otkucaja srca. Kombinira dvije LED diode, fotodetektor, optimiziranu optiku i tihu analognu obradu signala za otkrivanje pulsne oksimetrije i signala otkucaja srca.

MAX30100 radi na izvorima napajanja od 1,8 V i 3,3 V i može se isključiti putem softvera sa zanemarivom strujom pripravnosti, omogućavajući da napajanje ostane povezano u svakom trenutku.

Korak 4: Aplikacije

● Nosivi uređaji

● Uređaji za pomoć u fitnesu

● Uređaji za medicinsko praćenje

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 sistem u paketu

2 peration Rad s izuzetno niskom potrošnjom energije produžuje 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 performanse mjerenja

  • Visoki SNR pruža čvrstu otpornost na artefakte pri kretanju
  • Integrirano poništavanje ambijentalnog svjetla
  • Mogućnost velike brzine uzorkovanja
  • Mogućnost brzog izlaza podataka

Korak 6: Princip otkrivanja

Princip otkrivanja
Princip 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 spektra apsorpcije crvenih krvnih zrnaca 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. Zainteresovani prijatelji mogu potražiti informacije o ovom modulu za mjerenje otkucaja srca na Internetu i dublje razumjeti princip otkrivanja.

Korak 7: KAMENI STVI070WT-01

KAMENA STVI070WT-01
KAMENA 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 je integriran unutar ekrana, a postoji i softver koji korisnici mogu koristiti. Korisnici samo trebaju dodati tipke, okvire za tekst i drugu logiku kroz dizajnirane slike korisničkog sučelja, a zatim generirati konfiguracijske datoteke i preuzeti ih na ekran 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 nivoa previše problematično, možete odabrati druge vrste ekrana STONE, od kojih neki mogu direktno emitirati uart-ttl signal.

Službena web stranica ima detaljne informacije i uvod:

Korak 9: 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
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 ekrana STONE display:

  • Dizajnirajte logiku prikaza i logiku tipki pomoću softvera STONE TOOL i preuzmite datoteku dizajna u modul zaslona.
  • MCU komunicira sa STONE LCD ekranskim modulom preko serijskog porta.
  • S podacima dobivenim u koraku 2, MCU vrši 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:

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

Korak 12: Arduino

Arduino je elektronička prototipna platforma otvorenog koda koja je jednostavna za upotrebu i laka za korištenje. Uključuje hardverski dio (različite razvojne ploče koje su u skladu sa Arduino specifikacijama) i softverski dio (Arduino IDE i srodni 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 za mikroračunalo. Softverski dio uglavnom se sastoji od Arduino IDE-a na računaru, srodnog paketa podrške na nivou ploče (BSP) i bogate biblioteke funkcija trećih strana. Pomoću Arduino IDE-a možete jednostavno preuzeti BSP povezan sa vašom razvojnom pločom i bibliotekama koje su vam potrebne. da piš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 samo da podržava 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 različite 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 pomoću programskog jezika Arduino, sastaviti u binarne datoteke i snimiti u mikrokontroler. za Arduino je implementiran sa programskim jezikom Arduino (zasnovano na ožičenju) i razvojnim okruženjem Arduino (zasnovano na obradi). Projekti zasnovani na Arduinu mogu sadržavati samo Arduino, kao i Arduino i drugi softver koji radi na računaru, te komuniciraju sa svakim druge (kao što su Flash, Processing, MaxMSP).

Korak 13: Razvojno okruženje

Razvojno okruženje
Razvojno okruženje

Arduino razvojno okruženje je Arduino IDE, koje 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 pojavit će se sljedeće sučelje kada otvorite softver:

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

Korak 14: Proces implementacije Arduino LCD projekta

Proces implementacije Arduino LCD projekta
Proces implementacije Arduino LCD projekta

hardverska veza

Kako bismo osigurali da sljedeći korak u pisanju koda ide glatko, prvo moramo utvrditi pouzdanost hardverske veze.

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

1. Arduino Mini pro razvojna ploča

2. KAMENI STVI070WT-01 tft-LCD ekran

3. MAX30100 senzor brzine otkucaja srca i kisika u krvi

4. MAX3232 (rs232-> TTL) Arduino Mini Pro razvojna ploča i STVI070WT-01 TFT-LCD ekran povezani su putem UART-a, što zahtijeva konverziju nivoa putem MAX3232, a zatim se razvojna ploča Arduino Mini Pro i modul MAX30100 povezuju putem IIC interfejs. Nakon što smo jasno razmislili, možemo nacrtati sljedeću sliku ožičenja:

Korak 15:

Image
Image

Uvjerite se da nema grešaka u hardverskoj vezi i prijeđite na sljedeći korak.

Korak 16: Dizajn TFT LCD korisničkog interfejsa

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 kreirajte 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 za prikaz teksta
Dodajte komponentu za prikaz teksta

Dodajte komponentu za prikaz teksta, dizajnirajte prikaznu znamenku i decimalnu tačku, nabavite lokaciju za skladištenje komponente za prikaz teksta u ekranu.

Efekat je sljedeći:

Korak 19:

Adresa komponente za prikaz teksta:

  • Priključak sta: 0x0008
  • Otkucaji srca: 0x0001

Kiseonik u krvi: 0x0005 Glavni sadržaj interfejsa korisničkog interfejsa je sledeć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 prikaz STVI070WT-01.

Prvo izvedite korak 1, zatim umetnite USB fleš disk u računar i prikazat će se simbol diska. Zatim kliknite "Preuzmi na u-disk" za preuzimanje konfiguracijske datoteke na USB fleš uređaj, 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, registar upravljanja, registar temperature 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 bibliotečke datoteke 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 tehnički list MAX30100.

Korak 22: Izmijenite vučni otpornik MAX30100 IIC

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

Treba napomenuti da je otpornost na potezanje IIC pina modula MAX30100 od 4,7 k spojena na 1,8 v, što u teoriji nije problem. Međutim, komunikacijska logička razina Arduino IIC pina je 5V, tako da ne može komunicirati s Arduinom bez promjene hardvera modula MAX30100. Direktna komunikacija je moguća ako je MCU STM32 ili druga MCU logičkog nivoa 3.3v.

Stoga je potrebno izvršiti sljedeće promjene:

Uklonite tri 4,7k otpornika označena na slici električnim lemilicom. Zatim zavarite dva otpornika od 4,7k na igle 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 biblioteke za MAX30100, a zatim kliknite Preuzmi i instaliraj

Search for
Search for

Korak 25: Nakon instalacije, demonstraciju MAX30100 možete pronaći u mapi biblioteke LIB na 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 na datoteku da biste je otvorili

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

Korak 27: Potpuni kod slijedi:

Ovaj demo se može direktno 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 greš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 uslovima GNU Opće javne licence koju je objavila Fondacija za slobodni softver, bilo verzija 3 licence, ili (po vašem izboru) bilo koja kasnija verzija. Ovaj program se distribuira u nadi da će biti koristan, ali BEZ BILO KAKVE GARANCIJE; čak i bez implicitne garancije MERCENTALNOSTI ili FITNESA ZA POSEBNE SVRHE. Za više detalja pogledajte Opću javnu licencu GNU -a. Trebali ste primiti kopiju GNU Opće javne licence zajedno s ovim programom. Ako ne, pogledajte. */ #include #include "MAX30100_PulseOximeter.h" #define REPORTING_PERIOD_MS 1000 // PulseOximeter je sučelje višeg nivoa sa senzorom // nudi: // * izvještavanje o otkrivanju otkucaja // * izračunavanje brzine otkucaja srca srca * * SpO2 (nivo oksidacije) proračun PulseOximeter boginja; uint32_t tsLastReport = 0; // Povratni poziv (dole registrovan) 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će linije. Provjerite MAX30100_Registers.h za sve // dostupne opcije. // pox.setIRLedCurrent (MAX30100_LED_CURR_7_6MA); // Registrirajte povratni poziv za detekciju otkucaja pox.setOnBeatDetectedCallback (onBeatDetected); } void loop () {// Obavezno pozovite update što je brže moguće pox.update (); // Asinhrono izbacivanje otkucaja srca i nivoa oksidacije u serijski broj // Za oboje, vrijednost 0 znači "nevažeće" if (millis () - tsLastReport> REPORTING_PERIOD_MS) {Serial.print ("Srčani ritam:"); Serial.print (pox.getHeartRate ()); Serial.print ("bpm / SpO2:"); Serial.print (pox.getSpO2 ()); Serial.println ("%"); tsLastReport = millis (); }}

Korak 28:

Image
Image

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

Naravno, gornji kôd je službeni Demo i još uvijek moram napraviti neke izmjene kako bih prikazao podatke na STONE displeju.

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

Prvo moramo dobiti adresu komponente koja prikazuje podatke o brzini otkucaja srca i podacima o kisiku u krvi na ekranu STONE -a:

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 kod 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 uslovima GNU Opće javne licence koju je objavila Fondacija za slobodni softver, bilo verzija 3 licence, ili (po vašem izboru) bilo koja kasnija verzija. Ovaj program se distribuira u nadi da će biti koristan, ali BEZ BILO KAKVE GARANCIJE; čak i bez implicitne garancije MERCENTALNOSTI ili FITNESA ZA POSEBNE SVRHE. Za više detalja pogledajte Opću javnu licencu GNU -a. Trebali ste primiti kopiju GNU Opće javne licence zajedno s ovim programom. Ako ne, pogledajte. */ #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, 0x5, 0x5, 0 0x00}; nepotpisani znak Sop2_send [8] = {0xA5, 0x5A, 0x05, 0x82, 0x00, / Sop2_dis_addr, 0x00, 0x00}; nepotpisani char connect_sta_send [8] = {0xA5, 0x5A, 0x05, 0x82, 0x00, / connect_sta_addr, 0x00, 0x00}; // PulseOximeter je sučelje višeg nivoa sa senzorom // nudi: // * izvještavanje o otkrivanju otkucaja // * izračunavanje otkucaja srca * * izračunavanje SpO2 (nivo oksidacije) PulseOximeter boginje; uint32_t tsLastReport = 0; // Povratni poziv (dole registrovan) 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 uglavnom 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će linije. Provjerite MAX30100_Registers.h za sve // dostupne opcije.pox.setIRLedCurrent (MAX30100_LED_CURR_7_6MA); // Registrirajte povratni poziv za detekciju otkucaja pox.setOnBeatDetectedCallback (onBeatDetected); } void loop () {// Obavezno pozovite update što je brže moguće pox.update (); // Asinhrono izbacivanje otkucaja srca i nivoa 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:"); // 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 kiseonik u krvi prikazuju 0. Postavite prst na sakupljač MAX30100 da vidite svoj otkucaj srca i nivo kiseonika u krvi u realnom vremenu.

Efekat se može vidjeti na sljedećoj slici:

Preporučuje se: