Innholdsfortegnelse:
- Trinn 1: Jeg bestemte meg for å bruke Arduino til å verifisere funksjonen for pulsmåling og blodoksygen for MAX30100
- Trinn 2: Funksjonelle oppgaver
- Trinn 3: Innføring i maskinvare
- Trinn 4: Søknader
- Trinn 5: Fordeler og funksjoner
- Trinn 6: Deteksjonsprinsipp
- Trinn 7: STONE STVI070WT-01
- Trinn 8: Hvis du ikke er sikker på hvordan du bruker MAX3232, vennligst se følgende bilder:
- Trinn 9: Hvis du trenger videoopplæringer og opplæringsprogrammer du kan bruke, kan du også finne den på det offisielle nettstedet
- Trinn 10: Utviklingstrinn
- Trinn 11: Installasjon av programvare for steinverktøy
- Trinn 12: Arduino
- Trinn 13: Utviklingsmiljø
- Trinn 14: Arduino LCD Project Implementation Process
- Trinn 15:
- Trinn 16: TFT LCD brukergrensesnittdesign
- Trinn 17: Fjern bildet som ble lastet som standard i det nye prosjektet, og legg til brukergrensesnittet som vi designet
- Trinn 18: Legg til tekstvisningskomponenten
- Trinn 19:
- Trinn 20: Generer konfigurasjonsfil
- Trinn 21: MAX30100
- Trinn 22: Endre MAX30100 IIC Pull-up Resistor
- Trinn 23: Arduino
- Trinn 24: Søk etter "MAX30100" for å finne to biblioteker for MAX30100, klikk deretter på Last ned og installer
- Trinn 25: Etter installasjonen kan du finne demonstrasjonen av MAX30100 i LIB -biblioteksmappen til Arduino:
- Trinn 26: Dobbeltklikk på filen for å åpne den
- Trinn 27: Den komplette koden er som følger:
- Trinn 28:
- Trinn 29: Vis data til STONE Displayer gjennom Arduino
- Trinn 30: Den endrede koden er som følger:
- Trinn 31: Vis puls på LCD -skjermen med Arduino
Video: Hvordan vise puls på STONE LCD -skjermen med Ar: 31 trinn
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:21
kort introduksjon
For en tid siden fant jeg en pulssensormodul MAX30100 i shopping på nettet. Denne modulen kan samle inn oksygen- og pulsdata fra brukere, som også er enkel og praktisk å bruke. I følge dataene fant jeg ut at det er biblioteker med MAX30100 i Arduino -biblioteksfilene. Det vil si at hvis jeg bruker kommunikasjonen mellom Arduino og MAX30100, kan jeg ringe Arduino -biblioteksfilene direkte uten å måtte omskrive driverfilene. Dette er bra, så jeg kjøpte modulen til MAX30100.
Trinn 1: Jeg bestemte meg for å bruke Arduino til å verifisere funksjonen for pulsmåling og blodoksygen for MAX30100
Merk: denne modulen er som standard bare med 3,3 V nivå MCU -kommunikasjon, fordi den som standard bruker IIC pin pull up -motstand på 4,7 K til 1,8 V, så det er ingen kommunikasjon med Arduino som standard hvis du vil kommunisere med Arduino og trenger to 4,7 K av IIC pin pull-up motstand koblet til VIN pin, vil dette innholdet bli introdusert på baksiden av kapitlet.
Trinn 2: Funksjonelle oppgaver
Før jeg startet dette prosjektet, tenkte jeg på noen enkle funksjoner:
- Pulsdata og oksygendata i blod ble samlet inn
- Puls og oksygendata i blodet vises via en LCD -skjerm
Dette er de to eneste funksjonene, men hvis vi ønsker å implementere det, må vi tenke mer:
- Hvilken master MCU brukes?
- Hva slags LCD -skjerm?
Som vi nevnte tidligere, bruker vi Arduino for MCU, men dette er et Arduino LCD -skjermprosjekt, så vi må velge riktig LCD -skjermmodul. Jeg planlegger å bruke LCD -skjermen med seriell port. Jeg har en STONE STVI070WT-01-skjerm her, men hvis Arduino trenger å kommunisere med den, er MAX3232 nødvendig for å gjøre nivåkonvertering. Deretter bestemmes de grunnleggende elektroniske materialene som følger:
1. Arduino Mini Pro utviklingstavle
2. MAX30100 hjertefrekvens og blod oksygen sensor modul
3. STONE STVI070WT-01 LCD seriell portvisningsmodul
4. MAX3232 -modul
Trinn 3: Innføring i maskinvare
MAX30100
MAX30100 er en integrert løsning for pulsoksymetri og pulsmåler. Den kombinerer to lysdioder, en fotodetektoren, optimalisert optikk og lydløs analog signalbehandling for å oppdage pulsoksymetri og pulssignaler.
MAX30100 driver fra 1.8V og 3.3V strømforsyninger og kan slås av via programvare med ubetydelig standby -strøm, slik at strømforsyningen kan forbli tilkoblet hele tiden.
Trinn 4: Søknader
● Bærbare enheter
● Fitness Assistant -enheter
● Medisinske overvåkingsenheter
Trinn 5: Fordeler og funksjoner
1 、 Komplett pulsoksymeter og hjertefrekvenssensor forenkler design
- Integrerte lysdioder, fotosensor og høyytende analog front -slutt
- Liten 5,6 mm x 2,8 mm x 1,2 mm 14-pinners optisk forbedret system-i-pakke
2 、 Ultra-Low-Power-drift Øker batterilevetiden for bærbare enheter
- Programmerbar prøvehastighet og LED -strøm for strømsparing
- Ultralav avstengningsstrøm (0,7µA, typ)
3, Avansert funksjonalitet Forbedrer måleytelsen
- Høy SNR gir robust motstand mot artefakter
- Integrert omgivelseslysavlysning
- Høy prøvehastighet
- Rask datautmatningsevne
Trinn 6: Deteksjonsprinsipp
Bare trykk fingeren mot sensoren for å estimere puls oksygenmetning (SpO2) og puls (tilsvarer hjerteslag).
Pulsoksymeteret (oksimeteret) er et minispektrometer som bruker prinsippene for forskjellige røde celleabsorpsjonsspektre for å analysere oksygenmetningen i blodet. Denne sanntids og hurtige målemetoden er også mye brukt i mange kliniske referanser. Jeg vil ikke introdusere MAX30100 for mye, fordi disse materialene er tilgjengelige på Internett. Interesserte venner kan slå opp informasjonen til denne pulsmålingsmodulen på Internett, og ha en dypere forståelse av deteksjonsprinsippet.
Trinn 7: STONE STVI070WT-01
Introduksjon til displayet
I dette prosjektet vil jeg bruke STONE STVI070WT-01 til å vise puls og blodets oksygendata. Driverchippen er integrert inne i skjermen, og det er programvare som brukerne kan bruke. Brukere trenger bare å legge til knapper, tekstbokser og annen logikk gjennom de designede brukergrensesnittbildene, og deretter generere konfigurasjonsfiler og laste dem ned til skjermbildet for å kjøre. Displayet til STVI070WT-01 kommuniserer med MCU gjennom uart-rs232 signal, noe som betyr at vi må legge til en MAX3232 chip for å konvertere RS232 signal til TTL signal, slik at vi kan kommunisere med Arduino MCU.
Trinn 8: Hvis du ikke er sikker på hvordan du bruker MAX3232, vennligst se følgende bilder:
Hvis du synes nivåkonverteringen er for plagsom, kan du velge andre typer displayere av STONE, hvorav noen kan sende uart-ttl-signal direkte.
Det offisielle nettstedet har detaljert informasjon og introduksjon:
Trinn 9: Hvis du trenger videoopplæringer og opplæringsprogrammer du kan bruke, kan du også finne den på det offisielle nettstedet
Trinn 10: Utviklingstrinn
Tre trinn i utviklingen av STONE -skjermbildet:
- Design skjermlogikken og knappelogikken med programvaren STONE TOOL, og last ned designfilen til skjermmodulen.
- MCU kommuniserer med STONE LCD -skjermmodul gjennom serieporten.
- Med dataene innhentet i trinn 2, gjør MCU andre handlinger.
Trinn 11: Installasjon av programvare for steinverktøy
Last ned den nyeste versjonen av STONE TOOL -programvaren (for tiden TOOL2019) fra nettstedet, og installer den.
Etter at programvaren er installert, åpnes følgende grensesnitt:
Klikk på "File" -knappen i øvre venstre hjørne for å lage et nytt prosjekt, som vi vil diskutere senere.
Trinn 12: Arduino
Arduino er en åpen kildekode elektronisk prototypeplattform som er enkel å bruke og enkel å bruke. Den inkluderer maskinvaredelen (forskjellige utviklingstavler som samsvarer med Arduino -spesifikasjonen) og programvaredelen (Arduino IDE og relaterte utviklingssett).
Maskinvaredelen (eller utviklingskortet) består av en mikrokontroller (MCU), Flash -minne (Flash) og et sett med universelle inngangs-/utgangsgrensesnitt (GPIO), som du kan tenke på som et mikrodatamaskin hovedkort. Programvaredelen består hovedsakelig av Arduino IDE på PC, relatert brettpakke (BSP) og et rikt tredjeparts funksjonsbibliotek. Med Arduino IDE kan du enkelt laste ned BSP knyttet til utviklingskortet og bibliotekene du trenger å skrive programmene dine. Arduino er en åpen kildekode -plattform. Så langt har det vært mange modeller og mange avledede kontrollere, inkludert Arduino Uno, Arduino Nano, ArduinoYun og så videre. I tillegg støtter Arduino IDE nå ikke bare utviklingskortene i Arduino -serien, men legger også til støtte for populære utviklingskort som som Intel Galileo og NodeMCU ved å introdusere BSP.
Arduino registrerer miljøet gjennom en rekke sensorer, kontrollerende lys, motorer og andre enheter for å mate tilbake og påvirke miljøet. Mikrokontrolleren på brettet kan programmeres med et Arduino -programmeringsspråk, samles i binære filer og brennes inn i mikrokontrolleren. Programmering for Arduino er implementert med Arduino programmeringsspråk (basert på ledninger) og Arduino utviklingsmiljø (basert på prosessering). Arduino-baserte prosjekter kan bare inneholde Arduino, så vel som Arduino og annen programvare som kjører på PC, og de kommuniserer med hver andre (for eksempel Flash, Processing, MaxMSP).
Trinn 13: Utviklingsmiljø
Arduino -utviklingsmiljøet er Arduino IDE, som kan lastes ned fra Internett.
Logg deg på det offisielle nettstedet til Arduino og last ned programvaren https://www.arduino.cc/en/Main/Software?setlang=c… Etter at du har installert Arduino IDE, vil følgende grensesnitt vises når du åpner programvaren:
Arduino IDE lager to funksjoner som standard: oppsettfunksjonen og sløyfefunksjonen. Det er mange Arduino -introduksjoner på Internett. Hvis du ikke forstår noe, kan du gå til Internett for å finne det.
Trinn 14: Arduino LCD Project Implementation Process
maskinvaretilkobling
For å sikre at det neste trinnet i å skrive kode går greit, må vi først bestemme påliteligheten til maskinvaretilkoblingen.
Bare fire stykker maskinvare ble brukt i dette prosjektet:
1. Arduino Mini pro utviklingstavle
2. STONE STVI070WT-01 tft-lcd-skjerm
3. MAX30100 hjertefrekvens- og oksygensensor i blodet
4. MAX3232 (rs232-> TTL) Arduino Mini Pro utviklingskort og STVI070WT-01 TFT-LCD-skjerm er tilkoblet via UART, noe som krever nivåkonvertering gjennom MAX3232, og deretter er Arduino Mini Pro utviklingskort og MAX30100 modul koblet gjennom IIC -grensesnitt. Etter å ha tenkt klart, kan vi tegne følgende ledningsbilde:
Trinn 15:
Sørg for at det ikke er noen feil i maskinvaretilkoblingen, og fortsett til neste trinn.
Trinn 16: TFT LCD brukergrensesnittdesign
Først og fremst må vi designe et UI -visningsbilde, som kan designes av PhotoShop eller andre bildedesignverktøy. Etter å ha designet UI -skjermbildet, lagre bildet i-j.webp
Åpne programvaren STONE TOOL2019 og lag et nytt prosjekt:
Trinn 17: Fjern bildet som ble lastet som standard i det nye prosjektet, og legg til brukergrensesnittet som vi designet
Trinn 18: Legg til tekstvisningskomponenten
Legg til tekstvisningskomponenten, design visningssifret og desimaltegnet, få lagringsstedet for tekstvisningskomponenten i displayet.
Effekten er som følger:
Trinn 19:
Tekstvisningskomponentadresse:
- Tilkoblingsstatus: 0x0008
- Puls: 0x0001
Blodoksygen: 0x0005 Hovedinnholdet i brukergrensesnittet er som følger:
- Tilkoblingsstatus
- Pulsvisning
- Blodoksygen viste seg
Trinn 20: Generer konfigurasjonsfil
Når UI-designen er fullført, kan konfigurasjonsfilen genereres og lastes ned til STVI070WT-01 displaye.
Utfør først trinn 1, sett deretter inn USB -flash -stasjonen i datamaskinen, og disksymbolet vises. Klikk deretter "Last ned til u-disk" for å laste ned konfigurasjonsfilen til USB-flash-stasjonen, og sett deretter inn USB-flash-stasjonen i STVI070WT-01 for å fullføre oppgraderingen.
Trinn 21: MAX30100
MAX30100 kommuniserer via IIC. Arbeidsprinsippet er at hjertefrekvensens ADC -verdi kan oppnås ved infrarød ledning. MAX30100 -registeret kan deles inn i fem kategorier: statlig register, FIFO, kontrollregister, temperaturregister og ID -register. Temperaturregisteret leser temperaturverdien til brikken for å korrigere avviket forårsaket av temperaturen. ID -registeret kan lese brikkens ID -nummer.
MAX30100 er koblet til Arduino Mini Pro utviklingskort gjennom IIC kommunikasjonsgrensesnitt. Fordi det er ferdige MAX30100 biblioteksfiler i Arduino IDE, kan vi lese hjertefrekvens og blodets oksygendata uten å studere registrene til MAX30100. For de som er interessert i å utforske MAX30100-registeret, se MAX30100-databladet.
Trinn 22: Endre MAX30100 IIC Pull-up Resistor
Det skal bemerkes at 4,7k pull-up-motstanden til IIC-pinnen på MAX30100-modulen er koblet til 1,8v, noe som ikke er et problem i teorien. Imidlertid er kommunikasjonslogikknivået til Arduino IIC -pinnen 5V, så den kan ikke kommunisere med Arduino uten å endre maskinvaren til MAX30100 -modulen. Direkte kommunikasjon er mulig hvis MCU er STM32 eller en annen 3.3v logisk nivå MCU.
Derfor må følgende endringer gjøres:
Fjern de tre 4,7k -motstandene som er merket på bildet med et elektrisk loddejern. Sveis deretter to motstander på 4,7k på pinnene på SDA og SCL til VIN, slik at vi kan kommunisere med Arduino.
Trinn 23: Arduino
Åpne Arduino IDE og finn følgende knapper:
Trinn 24: Søk etter "MAX30100" for å finne to biblioteker for MAX30100, klikk deretter på Last ned og installer
Trinn 25: Etter installasjonen kan du finne demonstrasjonen av MAX30100 i LIB -biblioteksmappen til Arduino:
Trinn 26: Dobbeltklikk på filen for å åpne den
Trinn 27: Den komplette koden er som følger:
Denne demoen kan testes direkte. Hvis maskinvaretilkoblingen er ok, kan du laste ned kodesamlingen til Arduibo -utviklingskortet og se dataene til MAX30100 i det serielle feilsøkingsverktøyet.
Den komplette koden er som følger:
/* Arduino-MAX30100 oksimetri /hjertefrekvens integrert sensorbibliotek Copyright (C) 2016 OXullo Intersecans Dette programmet er gratis programvare: du kan omfordele det og /eller endre det under vilkårene i GNU General Public License som utgitt av Free Software Foundation, enten versjon 3 av lisensen, eller (etter eget valg) en senere versjon. Dette programmet distribueres i håp om at det vil være nyttig, men UTEN NOEN GARANTI; uten engang den underforståtte garantien om SALGBARHET eller egnethet for et spesifikt formål. Se GNU General Public License for mer informasjon. Du burde ha mottatt en kopi av GNU General Public License sammen med dette programmet. Hvis ikke, se. ***) beregning PulseOximeter kopper; uint32_t tsLastReport = 0; // Tilbakeringing (registrert nedenfor) avfyres når en puls oppdages ugyldig onBeatDetected () {Serial.println ("Beat!"); } ugyldig oppsett () {Serial.begin (115200); Serial.print ("Initialiserer pulsoksymeter.."); // Initialiser PulseOximeter -forekomsten // Feil skyldes vanligvis feil I2C -ledninger, manglende strømforsyning // eller feil målbrikke hvis (! Pox.begin ()) {Serial.println ("FAILED"); til(;;); } annet {Serial.println ("SUCCESS"); } // Standardstrømmen for IR -lysdioden er 50mA, og den kan endres // ved å ikke kommentere følgende linje. Sjekk MAX30100_Registers.h for alle // tilgjengelige alternativer. // pox.setIRLedCurrent (MAX30100_LED_CURR_7_6MA); // Registrer en tilbakeringing for beatdeteksjonen pox.setOnBeatDetectedCallback (onBeatDetected); } void loop () {// Sørg for å ringe oppdateringen så raskt som mulig pox.update (); // Asynkront dump puls og oksidasjonsnivåer til serien // For begge betyr verdien 0 "ugyldig" if (millis () - tsLastReport> REPORTING_PERIOD_MS) {Serial.print ("Puls:"); Serial.print (pox.getHeartRate ()); Serial.print ("bpm / SpO2:"); Serial.print (pox.getSpO2 ()); Serial.println ("%"); tsLastReport = millis (); }}
Trinn 28:
Denne koden er veldig enkel, jeg tror du kan forstå den på et øyeblikk. Jeg må si at den modulære programmeringen av Arduino er veldig praktisk, og jeg trenger ikke engang å forstå hvordan driverkoden til Uart og IIC er implementert.
Selvfølgelig er koden ovenfor en offisiell demonstrasjon, og jeg må fortsatt gjøre noen endringer for å vise dataene til STONEs displayer.
Trinn 29: Vis data til STONE Displayer gjennom Arduino
Først må vi få adressen til komponenten som viser puls og oksygendata i blodet i STONEs displayer:
I prosjektet mitt er adressen som følger: Pulsvisningskomponentadresse: 0x0001 Adresse for oksygenvisningsmodul for blod: 0x0005 Status for adresse for sensortilkobling: 0x0008 Hvis du trenger å endre visningsinnholdet i det tilsvarende rommet, kan du endre visningsinnholdet ved å sende data til den tilsvarende adressen til skjermbildet gjennom den serielle porten på Arduino.
Trinn 30: Den endrede koden er som følger:
/* Arduino-MAX30100 oksimetri /hjertefrekvens integrert sensorbibliotek Copyright (C) 2016 OXullo Intersecans Dette programmet er gratis programvare: du kan omfordele det og /eller endre det under vilkårene i GNU General Public License som utgitt av Free Software Foundation, enten versjon 3 av lisensen, eller (etter eget valg) en senere versjon. Dette programmet distribueres i håp om at det vil være nyttig, men UTEN NOEN GARANTI; uten engang den underforståtte garantien om SALGBARHET eller egnethet for et spesifikt formål. Se GNU General Public License for mer informasjon. Du burde ha mottatt en kopi av GNU General Public License sammen med dette programmet. Hvis ikke, se. *** 0x00}; usignert char Sop2_send [8] = {0xA5, 0x5A, 0x05, 0x82, 0x00, / Sop2_dis_addr, 0x00, 0x00}; usignert char connect_sta_send [8] = {0xA5, 0x5A, 0x05, 0x82, 0x00, / connect_sta_addr, 0x00, 0x00}; // PulseOximeter er grensesnittet på det høyere nivået til sensoren // det tilbyr: // * beatdetection -rapportering // * pulsberegning // * SpO2 (oksidasjonsnivå) beregning PulseOximeter -pox; uint32_t tsLastReport = 0; // Tilbakeringing (registrert nedenfor) avfyres når en puls oppdages ugyldig onBeatDetected () {// Serial.println ("Beat!"); } ugyldig oppsett () {Serial.begin (115200); // Serial.print ("Initialiserer pulsoksymeter.."); // Initialiser PulseOximeter -forekomsten // Feil skyldes vanligvis feil I2C -ledninger, manglende strømforsyning // eller feil målbrikke hvis (! Pox.begin ()) {// Serial.println ("FAILED"); // connect_sta_send [7] = 0x00; // Serial.write (connect_sta_send, 8); til(;;); } annet {connect_sta_send [7] = 0x01; Serial.write (connect_sta_send, 8); // Serial.println ("SUCCESS"); } // Standardstrømmen for IR -lysdioden er 50mA, og den kan endres // ved å ikke kommentere følgende linje. Sjekk MAX30100_Registers.h for alle // tilgjengelige alternativer.pox.setIRLedCurrent (MAX30100_LED_CURR_7_6MA); // Registrer en tilbakeringing for beatdeteksjonen pox.setOnBeatDetectedCallback (onBeatDetected); } void loop () {// Sørg for å ringe oppdateringen så raskt som mulig pox.update (); // Asynkront dump puls og oksidasjonsnivåer til serien // For begge betyr verdien 0 "ugyldig" if (millis () - tsLastReport> REPORTING_PERIOD_MS) {// Serial.print ("Puls:"); // 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 (); }}
Trinn 31: Vis puls på LCD -skjermen med Arduino
Kompilér koden, last den ned til Arduino utviklingstavle, og du er klar til å begynne å teste.
Vi kan se at når fingrene forlater MAX30100, viser pulsen og blodets oksygen 0. Plasser fingeren på MAX30100-oppsamleren for å se pulsen og oksygenivået i blodet i sanntid.
Effekten kan sees på følgende bilde:
Anbefalt:
DIY Hvordan vise tid på M5StickC ESP32 ved hjelp av Visuino - enkelt å gjøre: 9 trinn
DIY Hvordan vise tid på M5StickC ESP32 ved hjelp av Visuino - enkelt å gjøre: I denne opplæringen lærer vi hvordan du programmerer ESP32 M5Stack StickC med Arduino IDE og Visuino for å vise tiden på LCD -skjermen
DIY Fitness Tracker Smart Watch med oksymeter og puls - Modulære elektroniske moduler fra TinyCircuits - Minste arkade: 6 trinn
DIY Fitness Tracker Smart Watch med oksymeter og puls | Modulære elektroniske moduler fra TinyCircuits | Minste arkade: Hei, hva skjer, gutter! Akarsh her fra CETech. I dag har vi med oss noen av sensormodulene som er veldig nyttige i vårt daglige liv, men i en liten versjon av seg selv. Sensorene vi har i dag er veldig små i størrelse sammenlignet med tra
Puls på STONE LCD: 7 trinn
Hjertefrekvens på STONE LCD: For en tid siden fant jeg en pulssensormodul MAX30100 i shopping på nettet. Denne modulen kan samle inn oksygen- og hjertefrekvensdata fra brukere, som også er enkel og praktisk å bruke. Ifølge dataene fant jeg ut at det er biblioteker av M
Puls (volumaktiverte lysdioder): 7 trinn (med bilder)
Puls (volumaktiverte lysdioder): Har du noen gang ønsket å bygge noe med lysdioder, men var ikke sikker på hvor du skulle begynne? Denne guiden gir deg noen enkle trinn for å designe din egen volumvisualiserende kode for adresserbare LED-lys. Dette er en morsom stasjonær støymåler, rave de
EKG og puls digital monitor: 7 trinn (med bilder)
EKG og puls digital monitor: Et elektrokardiogram, eller EKG, er en veldig gammel metode for måling og analyse av hjertes helse. Signalet som leses fra et EKG kan indikere et sunt hjerte eller en rekke problemer. En pålitelig og nøyaktig design er viktig fordi hvis EKG -signalet