Table of Contents

Pulsoximetru

Introducere

M-am gandit sa fac un pulsoximetru pentru a-mi masura pulsul si nivelul de saturatie de oxigen din organism

Descriere generală

Pulsoximetrul măsoară modificările de absorbție a luminii de către cele două forme de hemoglobină: oxigenată și neoxigenată.

Hemoglobina ce transportă oxigenul (oxihemoglobina) absoarbe radiaţii infraroşii (800-940 nm), iar hemoglobina fără oxigen absoarbe lumină roşie din spectrul vizibil (600-70 nm). Măsurătorile au la bază un principiu optic, senzorii putând fi plasaţi la nivelul degetului, lobului urechii, cât şi antebrațului, având două surse de emisie, una de lumină roşie în spectrul vizibil cu lungime de undă de 660 nm (650 nm după unii autori) şi una invizibilă în spectrul infraroşu cu lungime de undă de 940 nm (950 nm după unii autori), precum şi cel puţin un fotodetector. În infraroşu coeficientul de absorbţie al oxihemoglobinei este mai mare de cât al hemoglobinei reduse (neoxigenate). Partea electronică măsoară raportul lumină pulsatilă/lumină nepulsatilă și îl exprimă în lungimi de undă, în spectrul roșu şi infraroşu, şi ulterior il transpune în procent de saturaţie în oxigen.

Hardware Design

Aceste componente au fost utilizate in dezvoltarea pulsoximetrului:

- Regulator de Tensiune de 5V L7805 TO-220

- Arduino Pro Mini

- Ecran OLED 0.96” comunicare I2C

- C̶o̶n̶e̶c̶t̶o̶r̶ ̶B̶a̶t̶e̶r̶i̶e̶ ̶9̶V̶ Modul Adaptor Micro USB

- Senzor max30102

- Buton

Schema functionala: https://imgur.com/a/qKSKUsM

Poza cu pulsoximetrul (partea hardware): https://imgur.com/a/Zr9ZHea

Software Design

Descrierea codului aplicaţiei (firmware):

mediu de dezvoltare (if any) (e.g. AVR Studio, CodeVisionAVR) librării şi surse 3rd-party (e.g. Procyon AVRlib) algoritmi şi structuri pe care plănuiţi să le implementaţi (etapa 3) surse şi funcţii implementate

Modulul senzorial max30102 integrează un LED roșu și un LED infraroșu, un fotodetector, un dispozitiv optic și un circuit electronic cu zgomot redus cu suprimarea luminii ambientale. Odată pornit pulsoximetrul, se pune un deget pe senzor și se apasă ușor (pentru a nu pune presiune pe senzor să se strice) pentru a se citi ritmul cardiac si concentrația de hemoglobină oxigenată în timp real. În timp ce degetul stă amplasat, se poate apăsa degetul pentru a arăta valorile curente. După o perioadă de inactivitate, pulsoximetrul se va stinge automat.

#include “ssd1306h.h”

#include “MAX30102.h”

#include “Pulse.h”

Acestea sunt header-ele pentru clasele care au fost integrate pentru componentele circuitului

#include “avr/pgmspace.h”: Această bibliotecă este specifică pentru platforma AVR și oferă funcții și macro-uri pentru lucrul cu memorie programabilă (flash) pe microcontrolerele AVR. Memoria programabilă este utilizată pentru a stoca codul program al microcontrolerului. Biblioteca “avr/pgmspace.h” oferă funcții și macro-uri pentru a accesa și manipula datele stocate în memoria program.

#include “EEPROM.h”: Această bibliotecă oferă funcții pentru lucrul cu memoria EEPROM (Electrically Erasable Programmable Read-Only Memory) pe microcontrolerele AVR. EEPROM este o memorie non-volatilă utilizată pentru stocarea datelor care trebuie menținute chiar și atunci când dispozitivul este alimentat. Biblioteca “EEPROM.h” oferă funcții pentru a scrie și citi date din memoria EEPROM a microcontrolerului AVR.

#include “avr/sleep.h”: Această bibliotecă oferă funcții și macro-uri pentru gestionarea modului de somn (sleep mode) pe microcontrolerele AVR. Modul de somn permite microcontrolerului să intre într-o stare de economisire a energiei prin reducerea consumului de curent la nivel minim. Biblioteca “avr/sleep.h” oferă funcții pentru a controla modul de somn al microcontrolerului, cum ar fi setarea modului de somn, activarea sau dezactivarea întreruperilor în timpul somnului și altele.

Rezultate Obţinute

Care au fost rezultatele obţinute în urma realizării proiectului vostru.

Videoclipul cu pulsoximetrul functional: https://youtu.be/p2UwBuCtMiE

Concluzii

1. Merge ca uns. Poate ar fi mers sa folosesc un senzor mai bun, dar isi face treaba.

2. Mi-am redescoperit pasiunea pentru asamblare si inginerie. Partea de hardware a fost cea mai interesanta si placuta, de asemenea si cea mai frustranta, etapa a proiectului.

Download

O arhivă (sau mai multe dacă este cazul) cu fişierele obţinute în urma realizării proiectului: surse, scheme, etc. Un fişier README, un ChangeLog, un script de compilare şi copiere automată pe uC crează întotdeauna o impresie bună ;-).

Fişierele se încarcă pe wiki folosind facilitatea Add Images or other files. Namespace-ul în care se încarcă fişierele este de tipul :pm:prj20??:c? sau :pm:prj20??:c?:nume_student (dacă este cazul). Exemplu: Dumitru Alin, 331CC → :pm:prj2009:cc:dumitru_alin.

Cod Arduino (fara clasele in C++ pentru fiecare componenta): nanopulseppg.zip

Jurnal

Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului.

05.05 - ideea de pulsoximetru imi vine in minte

07.05 - research si planificare

08.05 - lista de cumparaturi facuta

11.05 - ajung piesele. partea de hardware se face

13.05 - s-a ars un regulator :( fac switch de la alimentare cu baterie la cablu micro usb

16.05 - cursa pana la HobbyMarket Berceni sa iau adaptorul pentru micro usb

18.05 - retusare hardware

20.05 - implementare software

Bibliografie/Resurse

Export to PDF