INHOUDSOPGAWE:

Hoe om hartklop op die STONE LCD met Ar te wys: 31 stappe
Hoe om hartklop op die STONE LCD met Ar te wys: 31 stappe

Video: Hoe om hartklop op die STONE LCD met Ar te wys: 31 stappe

Video: Hoe om hartklop op die STONE LCD met Ar te wys: 31 stappe
Video: 3 BIGGEST Weaknesses of the Human Body 2024, November
Anonim
Hoe om hartklop op die STONE LCD met Ar
Hoe om hartklop op die STONE LCD met Ar

kort inleiding

'N Tydjie gelede het ek 'n hartklopsensormodule MAX30100 gevind terwyl ek aanlyn inkopies gedoen het. Hierdie module kan bloedsuurstof- en hartklopdata van gebruikers versamel, wat ook eenvoudig en gerieflik is om te gebruik. Volgens die data het ek gevind dat daar biblioteke van MAX30100 in die Arduino -biblioteeklêers is. Dit wil sê, as ek die kommunikasie tussen Arduino en MAX30100 gebruik, kan ek die Arduino -biblioteeklêers direk bel sonder om die bestuurderslêers te herskryf. Dit is 'n goeie ding, so ek het die module van MAX30100 gekoop.

Stap 1: Ek het besluit om Arduino te gebruik om die funksie van die hartklop en bloedsuurstofversameling van MAX30100 te verifieer

Ek het besluit om Arduino te gebruik om die funksie van die hartklop en bloed suurstofversameling van MAX30100 te verifieer
Ek het besluit om Arduino te gebruik om die funksie van die hartklop en bloed suurstofversameling van MAX30100 te verifieer

Let wel: hierdie module is standaard slegs met MCU -kommunikasie op 3,3 V -vlak, omdat dit standaard die IIC -penweerstand van 4,7 K tot 1,8 V gebruik, dus is daar standaard geen kommunikasie met die Arduino as u met die Arduino wil kommunikeer nie. en benodig u 4,7 K van die IIC-pen-optrekweerstand wat aan die VIN-pen gekoppel is, word hierdie inhoud agter in die hoofstuk bekendgestel.

Stap 2: Funksionele opdragte

Voordat ek met hierdie projek begin, het ek aan enkele eenvoudige funksies gedink:

  • Hartklopdata en bloedsuurstofdata is ingesamel
  • Hartklop- en suurstofdata word deur 'n LCD -skerm vertoon

Dit is die enigste twee funksies, maar as ons dit wil implementeer, moet ons meer nadink:

  • Watter hoof MCU word gebruik?
  • Watter soort LCD -vertoonskerm?

Soos ons vroeër genoem het, gebruik ons Arduino vir die MCU, maar dit is 'n Arduino LCD -skermprojek, daarom moet ons die geskikte LCD -skermmodule kies. Ek is van plan om die LCD -skerm met seriële poort te gebruik. Ek het 'n STONE STVI070WT-01 vertoon hier, maar as Arduino daarmee moet kommunikeer, is MAX3232 nodig om die vlak om te skakel. Dan word die basiese elektroniese materiaal soos volg bepaal:

1. Arduino Mini Pro ontwikkelingsbord

2. MAX30100 hartklop en bloed suurstof sensor module

3. STONE STVI070WT-01 LCD seriële poort vertoon module

4. MAX3232 module

Stap 3: Inleiding tot hardeware

MAX30100

Die MAX30100 is 'n geïntegreerde oplossing vir polsoksimetrie en hartklopmonitor. Dit kombineer twee LED's, die fotodetektor, geoptimaliseerde optika en analoog seinverwerking met 'n lae geraas om polsoksimetrie en hartklopseine op te spoor.

Die MAX30100 werk van 1,8V en 3,3V kragtoevoer en kan deur sagteware met 'n verwaarloosbare bystandstroom afgeskakel word, sodat die kragtoevoer te alle tye verbind kan bly.

Stap 4: Aansoeke

● Drabare toestelle

● Fiksheidsassistent -toestelle

● Mediese moniteringstoestelle

Stap 5: Voordele en funksies

1, volledige polsoksimeter en hartklop sensoroplossing vereenvoudig ontwerp

  • Geïntegreerde LED's, fotosensor en hoëprestasie analoog voorkant
  • Klein 5.6mm x 2.8mm x 1.2mm 14-pins opties verbeterde stelsel-in-pakket

2, Ultra-lae-krag-werking Verleng die batterylewe vir draagbare toestelle

  • Programmeerbare monstertempo en LED -stroom vir kragbesparing
  • Ultra-lae afsluitstroom (0,7µA, typ)

3, Gevorderde funksionaliteit Verbeter meetprestasie

  • Hoë SNR bied sterk weerstand teen bewegingsartefakte
  • Geïntegreerde kansellasie van omringende lig
  • Hoë monster tarief
  • Vinnige data -uitsetvermoë

Stap 6: Opsporingsbeginsel

Opsporingsbeginsel
Opsporingsbeginsel

Druk net u vinger teen die sensor om die suurstofversadiging van die pols (SpO2) en die pols (gelykstaande aan die hartklop) te bepaal.

Die polsoksimeter (oksimeter) is 'n minispektrometer wat die beginsels van verskillende rooi selabsorpsiespektra gebruik om die suurstofversadiging van die bloed te ontleed. Hierdie intydse en vinnige metingsmetode word ook wyd gebruik in baie kliniese verwysings. Ek sal die MAX30100 nie te veel bekendstel nie, want hierdie materiaal is op die internet beskikbaar. Belangstellende vriende kan die inligting van hierdie hartklop -toetsmodule op die internet opsoek en 'n dieper begrip hê van die opsporingsbeginsel daarvan.

Stap 7: STONE STVI070WT-01

STEEN STVI070WT-01
STEEN STVI070WT-01

Inleiding tot die vertoner

In hierdie projek sal ek STONE STVI070WT-01 gebruik om die hartklop en bloedsuurstofdata te wys. Die bestuurderskyfie is geïntegreer in die skerm, en daar is sagteware wat gebruikers kan gebruik. Gebruikers hoef slegs knoppies, teksblokkies en ander logika by te voeg deur die ontwerpte UI -foto's, en dan konfigurasie lêers te genereer en af te laai na die skerm om dit te laat loop. Die vertoning van STVI070WT-01 kommunikeer met MCU via uart-rs232-sein, wat beteken dat ons 'n MAX3232-chip moet byvoeg om die RS232-sein in TTL-sein om te skakel, sodat ons met Arduino MCU kan kommunikeer.

Stap 8: Raadpleeg die volgende foto's as u nie seker is hoe u die MAX3232 moet gebruik nie:

As u nie seker is hoe u die MAX3232 moet gebruik nie, raadpleeg die volgende foto's
As u nie seker is hoe u die MAX3232 moet gebruik nie, raadpleeg die volgende foto's

As u dink dat die vlakomskakeling te lastig is, kan u ander soorte STONE-vertoners kies, waarvan sommige uart-ttl-sein direk kan lewer.

Die amptelike webwerf bevat gedetailleerde inligting en inleiding:

Stap 9: As u video -tutoriale en tutoriale benodig, kan u dit ook op die amptelike webwerf vind

As u videotutoriale en tutoriale nodig het, kan u dit ook op die amptelike webwerf vind
As u videotutoriale en tutoriale nodig het, kan u dit ook op die amptelike webwerf vind

Stap 10: Ontwikkelingsstappe

Drie stappe van die ontwikkeling van STONE -skerms:

  • Ontwerp die skermlogika en knoppie -logika met STONE TOOL -sagteware en laai die ontwerplêer af na die vertoonmodule.
  • MCU kommunikeer met die STONE LCD -skermmodule deur die seriële poort.
  • Met die data wat in stap 2 verkry is, doen die MCU ander aksies.

Stap 11: Installering van sagteware vir klipgereedskap

STONE TOOL sagteware installasie
STONE TOOL sagteware installasie

Laai die nuutste weergawe van die STONE TOOL -sagteware (tans TOOL2019) van die webwerf af en installeer dit.

Nadat die sagteware geïnstalleer is, word die volgende koppelvlak oopgemaak:

Klik op die "File" -knoppie in die linker boonste hoek om 'n nuwe projek te skep wat ons later sal bespreek.

Stap 12: Arduino

Arduino is 'n oop bron elektroniese prototipe platform wat maklik is om te gebruik en maklik om te gebruik. Dit bevat die hardeware -deel (verskillende ontwikkelingsborde wat voldoen aan die Arduino -spesifikasie) en die sagtewaregedeelte (Arduino IDE en verwante ontwikkelingsstelle).

Die hardeware -deel (of ontwikkelingsbord) bestaan uit 'n mikrobeheerder (MCU), flitsgeheue (flits) en 'n stel universele invoer/uitvoer -koppelvlakke (GPIO), waaraan u kan dink as 'n mikrorekenaar -moederbord. Die sagtewaregedeelte bestaan hoofsaaklik uit Arduino IDE op 'n rekenaar, 'n verwante raadsvlakondersteuningspakket (BSP) en 'n ryk funksiebiblioteek van derde partye. Met die Arduino IDE kan u die BSP wat met u ontwikkelingsbord en die biblioteke benodig word, maklik aflaai om u programme te skryf. Arduino is 'n open source platform. Tot dusver was daar baie modelle en baie afgeleide beheerders, insluitend Arduino Uno, Arduino Nano, ArduinoYun ensovoorts. Boonop ondersteun die Arduino IDE nou nie net die ontwikkelingsborde van die Arduino -reeks nie, maar ook ondersteuning vir gewilde ontwikkelingsborde soos as Intel Galileo en NodeMCU deur BSP bekend te stel.

Arduino kan die omgewing aanvoel deur 'n verskeidenheid sensors, die bestuur van ligte, motors en ander toestelle om die omgewing terug te voer en die omgewing te beïnvloed. vir Arduino word geïmplementeer met die Arduino-programmeertaal (gebaseer op bedrading) en die Arduino-ontwikkelingsomgewing (gebaseer op verwerking). Arduino-gebaseerde projekte kan slegs Arduino bevat, sowel as Arduino en ander sagteware wat op 'n rekenaar werk, en hulle kommunikeer met elke ander (soos Flash, Processing, MaxMSP).

Stap 13: Ontwikkelingsomgewing

Ontwikkelingsomgewing
Ontwikkelingsomgewing

Die Arduino -ontwikkelingsomgewing is die Arduino IDE, wat van die internet afgelaai kan word.

Meld aan by die amptelike webwerf van Arduino en laai die sagteware af https://www.arduino.cc/en/Main/Software?setlang=c… Nadat u die Arduino IDE geïnstalleer het, verskyn die volgende koppelvlak wanneer u die sagteware oopmaak:

Die Arduino IDE skep standaard twee funksies: die opstelfunksie en die lusfunksie. Daar is baie Arduino -inleidings op die internet. As u iets nie verstaan nie, kan u na die internet gaan om dit te vind.

Stap 14: Arduino LCD -projek -implementeringsproses

Arduino LCD -projek -implementeringsproses
Arduino LCD -projek -implementeringsproses

hardeware verbinding

Om te verseker dat die volgende stap in die skryf van kode glad verloop, moet ons eers die betroubaarheid van die hardewareverbinding bepaal.

Slegs vier stukke hardeware is in hierdie projek gebruik:

1. Arduino Mini pro ontwikkelingsbord

2. STONE STVI070WT-01 tft-lcd-skerm

3. MAX30100 hartklop en bloed suurstof sensor

4. MAX3232 (rs232-> TTL) Die Arduino Mini Pro-ontwikkelbord en STVI070WT-01 TFT-LCD-skerm word verbind via UART, wat vlakomskakeling deur MAX3232 vereis, en dan word die Arduino Mini Pro-ontwikkelbord en MAX30100-module verbind deur IIC -koppelvlak. Nadat ons duidelik gedink het, kan ons die volgende bedrading prentjie teken:

Stap 15:

Beeld
Beeld

Maak seker dat daar geen foute in die hardewareverbinding is nie en gaan voort met die volgende stap.

Stap 16: TFT LCD -gebruikerskoppelvlakontwerp

TFT LCD -gebruikerskoppelvlakontwerp
TFT LCD -gebruikerskoppelvlakontwerp

Eerstens moet ons 'n UI -vertoonbeeld ontwerp, wat ontwerp kan word deur PhotoShop of ander beeldontwerpinstrumente. Stoor die prent in-j.webp

Maak die sagteware STONE TOOL2019 oop en skep 'n nuwe projek:

Stap 17: Verwyder die standaardbeeld wat in die nuwe projek gelaai is, en voeg die UI -prent by wat ons ontwerp het

Verwyder die prent wat standaard in die nuwe projek gelaai is, en voeg die UI -prent by wat ons ontwerp het
Verwyder die prent wat standaard in die nuwe projek gelaai is, en voeg die UI -prent by wat ons ontwerp het

Stap 18: Voeg die teksvertoningskomponent by

Voeg die teksvertoningskomponent by
Voeg die teksvertoningskomponent by

Voeg die teksvertoningskomponent by, ontwerp die vertoningsyfer en desimale punt, kry die stoorplek van die teksvertoningskomponent in die vertoonvenster.

Die effek is soos volg:

Stap 19:

Teks vertoon komponent adres:

  • Verbindingsstatus: 0x0008
  • Hartklop: 0x0001

Bloedsuurstof: 0x0005 Die belangrikste inhoud van die UI -koppelvlak is soos volg:

  • Verbindingstatus
  • Hartslag vertoning
  • Bloed suurstof het gewys

Stap 20: Genereer konfigurasie lêer

Genereer konfigurasie lêer
Genereer konfigurasie lêer

Sodra die UI-ontwerp voltooi is, kan die konfigurasielêer gegenereer en afgelaai word na die STVI070WT-01 displaye.

Voer eers stap 1 uit, plaas dan die usb -flitsstuur in die rekenaar, en die skyfsimbool sal verskyn. Klik dan op "Laai af na u-skyf" om die konfigurasielêer af te laai na die usb-flash drive, en plaas dan die usb flash drive in STVI070WT-01 om die opgradering te voltooi.

Stap 21: MAX30100

MAX30100
MAX30100

MAX30100 kommunikeer via IIC. Sy werkbeginsel is dat die ADC -waarde van hartklop verkry kan word deur infrarooi geleide bestraling. Die MAX30100 -register kan in vyf kategorieë verdeel word: staatsregister, EIEU, kontroleregister, temperatuurregister en ID -register. Die temperatuurregister lees die temperatuurwaarde van die chip om die afwyking wat deur die temperatuur veroorsaak word, reg te stel. Die ID -register kan die chip se ID -nommer lees.

MAX30100 is verbind met die Arduino Mini Pro -ontwikkelbord deur die IIC -kommunikasie -koppelvlak. Omdat daar klaargemaakte MAX30100-biblioteeklêers in die Arduino IDE is, kan ons die hartklop- en bloedsuurstofdata lees sonder om die registers van MAX30100 te bestudeer. Raadpleeg die MAX30100-datablad vir diegene wat belangstel om die MAX30100-register te ondersoek.

Stap 22: Verander die MAX30100 IIC optrekweerstand

Verander die MAX30100 IIC optrekweerstand
Verander die MAX30100 IIC optrekweerstand

Daar moet op gelet word dat die 4.7k optrekweerstand van die IIC-pen van die MAX30100-module gekoppel is aan 1.8v, wat in teorie nie 'n probleem is nie. Die kommunikasie -logika -vlak van die Arduino IIC -pen is egter 5V, dus kan dit nie met Arduino kommunikeer sonder om die hardeware van die MAX30100 -module te verander nie. Direkte kommunikasie is moontlik as die MCU STM32 of 'n ander 3.3v logiese vlak MCU is.

Daarom moet die volgende veranderinge aangebring word:

Verwyder die drie 4,7k -weerstande wat op die foto gemerk is met 'n elektriese soldeerbout, en sweis dan twee weerstande van 4,7k by die penne van SDA en SCL na VIN, sodat ons met Arduino kan kommunikeer.

Stap 23: Arduino

Arduino
Arduino

Maak die Arduino IDE oop en vind die volgende knoppies:

Stap 24: Soek na "MAX30100" om twee biblioteke vir MAX30100 te vind, klik dan op Laai af en installeer

Soek vir
Soek vir

Stap 25: Na die installasie kan u die demo van MAX30100 vind in die LIB -biblioteekmap van Arduino:

Na die installasie kan u die demo van MAX30100 vind in die LIB -biblioteekmap van Arduino
Na die installasie kan u die demo van MAX30100 vind in die LIB -biblioteekmap van Arduino

Stap 26: Dubbelklik op die lêer om dit oop te maak

Dubbelklik op die lêer om dit oop te maak
Dubbelklik op die lêer om dit oop te maak

Stap 27: Die volledige kode is soos volg:

Hierdie demo kan direk getoets word. As die hardewareverbinding goed is, kan u die samestelling van die kode aflaai na die Arduibo -ontwikkelingsbord en die data van MAX30100 in die seriële ontfoutingshulpmiddel sien.

Die volledige kode is soos volg:

/* Arduino-MAX30100 oksimetrie /hartklop geïntegreerde sensorbiblioteek Kopiereg (C) 2016 OXullo Intersecans Hierdie program is gratis sagteware: u kan dit herversprei en /of verander onder die voorwaardes van die GNU General Public License soos gepubliseer deur die Free Software Foundation, óf weergawe 3 van die lisensie, óf (na u keuse) enige latere weergawe. Hierdie program word versprei in die hoop dat dit nuttig sal wees, maar SONDER ENIGE GARANTIE; sonder selfs die geïmpliseerde waarborg van VERKOOPBAARHEID of GESKIKTHEID VIR 'N BESONDERE DOEL. Sien die GNU General Public License vir meer besonderhede. U moes 'n afskrif van die GNU General Public License saam met hierdie program ontvang het. Indien nie, kyk. ***) berekening PulseOximeter pokke; uint32_t tsLastReport = 0; // Terugbel (hieronder geregistreer) geskiet wanneer 'n pols leegte opBeatDetected () {Serial.println ("Beat!") Opgespoor word; } ongeldige opstelling () {Serial.begin (115200); Serial.print ("Initialiseer polsoksimeter.."); // Initialiseer die PulseOximeter -instansie // Mislukkings is oor die algemeen te wyte aan 'n onbehoorlike I2C -bedrading, 'n ontbrekende kragtoevoer // of 'n verkeerde doelskyfie as (! Pox.begin ()) {Serial.println ("FAILED"); vir (;;); } anders {Serial.println ("SUCCESS"); } // Die standaardstroom vir die IR -LED is 50mA en dit kan verander word // deur die volgende reël nie te reageer nie. Gaan na MAX30100_Registers.h vir al die // beskikbare opsies. // pox.setIRLedCurrent (MAX30100_LED_CURR_7_6MA); // Registreer 'n terugbel vir die maatopsporing pox.setOnBeatDetectedCallback (onBeatDetected); } void loop () {// Maak seker dat u die opdatering so vinnig as moontlik bel. pox.update (); // Laai asynchroon die hartklop- en oksidasievlakke na die reeks // Vir beide beteken 'n waarde van 0 "ongeldig" as (millis () - tsLastReport> REPORTING_PERIOD_MS) {Serial.print ("Hartklop:"); Serial.print (pox.getHeartRate ()); Serial.print ("bpm / SpO2:"); Serial.print (pox.getSpO2 ()); Serial.println ("%"); tsLastReport = millis (); }}

Stap 28:

Beeld
Beeld

Hierdie kode is baie eenvoudig, ek glo dat u dit in 'n oogopslag kan verstaan. Ek moet sê dat die modulêre programmering van Arduino baie gerieflik is, en ek hoef nie eens te verstaan hoe die bestuurskode van Uart en IIC geïmplementeer word nie.

Bogenoemde kode is natuurlik 'n amptelike demonstrasie, en ek moet nog 'n paar veranderinge aanbring om die data aan die STONE -vertoonder te vertoon.

Stap 29: Gee data aan die STONE Displayer deur Arduino

Eerstens moet ons die adres van die komponent wat die hartklop- en bloedsuurstofdata in die STONE -skerm vertoon, kry:

In my projek is die adres soos volg: adres van die hartklopskermkomponent: 0x0001 Adres van bloed suurstof -vertoonmodule: 0x0005 Adres van die sensorverbindingstatus: 0x0008 As u die skerminhoud in die ooreenstemmende ruimte moet verander, kan u die skerminhoud verander deur data na die ooreenstemmende adres van die skerm te stuur deur die seriële poort van Arduino.

Stap 30: Die gewysigde kode is soos volg:

/* Arduino-MAX30100 oksimetrie /hartklop geïntegreerde sensorbiblioteek Kopiereg (C) 2016 OXullo Intersecans Hierdie program is gratis sagteware: u kan dit herversprei en /of verander onder die voorwaardes van die GNU General Public License soos gepubliseer deur die Free Software Foundation, óf weergawe 3 van die lisensie, óf (na u keuse) enige latere weergawe. Hierdie program word versprei in die hoop dat dit nuttig sal wees, maar SONDER ENIGE GARANTIE; sonder selfs die geïmpliseerde waarborg van VERKOOPBAARHEID of GESKIKTHEID VIR 'N BESONDERE DOEL. Sien die GNU General Public License vir meer besonderhede. U moes 'n afskrif van die GNU General Public License saam met hierdie program ontvang het. Indien nie, kyk. *** 0x00}; ongetekende char Sop2_send [8] = {0xA5, 0x5A, 0x05, 0x82, 0x00, / Sop2_dis_addr, 0x00, 0x00}; ongetekende char connect_sta_send [8] = {0xA5, 0x5A, 0x05, 0x82, 0x00, / connect_sta_addr, 0x00, 0x00}; // PulseOximeter is die koppelvlak op die hoër vlak na die sensor // dit bied: // * verslae oor slaagspeuring // * hartklopberekening // * SpO2 (oksidasievlak) berekening PulseOximeter pokke; uint32_t tsLastReport = 0; // Terugbel (hieronder geregistreer) geskiet wanneer 'n pols leegte opBeatDetected () {// Serial.println ("Beat!") Opgespoor word; } ongeldige opstelling () {Serial.begin (115200); // Serial.print ("Initialiseer pulsoksimeter.."); // Initialiseer die PulseOximeter -instansie // Mislukkings is oor die algemeen te wyte aan 'n onbehoorlike I2C -bedrading, 'n ontbrekende kragtoevoer // of 'n verkeerde doelskyfie as (! Pox.begin ()) {// Serial.println ("FAILED"); // connect_sta_send [7] = 0x00; // Serial.write (connect_sta_send, 8); vir (;;); } anders {connect_sta_send [7] = 0x01; Serial.write (connect_sta_send, 8); // Serial.println ("SUKSES"); } // Die standaardstroom vir die IR -LED is 50mA en dit kan verander word // deur die volgende reël nie te reageer nie. Gaan na MAX30100_Registers.h vir al die // beskikbare opsies.pox.setIRLedCurrent (MAX30100_LED_CURR_7_6MA); // Registreer 'n terugbel vir die maatopsporing pox.setOnBeatDetectedCallback (onBeatDetected); } void loop () {// Maak seker dat u die opdatering so vinnig as moontlik bel. pox.update (); // Laai asynchroon die hartklop- en oksidasievlakke na die reeks // Vir beide beteken 'n waarde van 0 "ongeldig" as (millis () - tsLastReport> REPORTING_PERIOD_MS) {// Serial.print ("Hartklop:"); // Serial.print (pox.getHeartRate ()); // Serial.print ("bpm / SpO2:"); // Serial.print (pox.getSpO2 ()); // Serial.println ("%"); heart_rate_send [7] = (uint32_t) pox.getHeartRate (); Serial.write (hartklop_send, 8); Sop2_send [7] = pox.getSpO2 (); Serial.write (Sop2_send, 8); tsLastReport = millis (); }}

Stap 31: Wys hartklop op die LCD met Arduino

Wys hartklop op die LCD met Arduino
Wys hartklop op die LCD met Arduino

Stel die kode saam, laai dit af op die Arduino -ontwikkelingsbord, en u is gereed om te begin toets.

Ons kan sien dat wanneer die vingers die MAX30100 verlaat, die hartklop en suurstof in die bloed vertoon 0. Plaas u vinger op die MAX30100-versamelaar om u hartklop en suurstofvlakke in real-time te sien.

Die effek kan gesien word in die volgende prentjie:

Aanbeveel: