This shows you the differences between two versions of the page.
pm:prj2021:amocanu:pulsoximetru [2021/06/02 23:34] petru.sicoe |
pm:prj2021:amocanu:pulsoximetru [2021/06/02 23:45] (current) petru.sicoe |
||
---|---|---|---|
Line 7: | Line 7: | ||
Proiectul presupune implementarea unui pulsoximetru, prin masurarea pulsului si calcularea concentratiei de SPO2 si afisand aceste 2 informatii pe un ecran LCD. | Proiectul presupune implementarea unui pulsoximetru, prin masurarea pulsului si calcularea concentratiei de SPO2 si afisand aceste 2 informatii pe un ecran LCD. | ||
- | Astfel priectul poate avea si o utilitate practica, permitand masurarea cu aproximatiea concentratiei de oxigen, nu doar in contextul pandemiei, ci si alte diferite ocazii, incurajand utilizatorul sa se mentina sanatos. | + | Astfel priectul poate avea si o utilitate practica, permitand masurarea cu aproximatie a concentratiei de oxigen, nu doar in contextul pandemiei, ci si cu alte diferite ocazii, incurajand utilizatorul sa se mentina sanatos. |
===== Descriere generală ===== | ===== Descriere generală ===== | ||
- | Senzorul de ritm cardiac preia pulsul de la deget si trimite datele catre placa de baza, care le prelucreaza si care afiseaza pe un ecran LCD la final numarul de batai pe minut si concentratia de SPO2. Astfel, utilizatorul pune degetul pe senzor si va vedea pe ecran masuratorile dorite. | + | Senzorul de ritm cardiac preia pulsul de la deget si trimite datele catre placa de baza, care le prelucreaza si care afiseaza pe un display OLED la final numarul de batai pe minut si concentratia de SPO2. Astfel, utilizatorul pune degetul pe senzor si va vedea pe ecran masuratorile dorite. |
<note tip> | <note tip> | ||
Line 21: | Line 21: | ||
iar in cazul nostru hemoglobina absoarbe lumina. De asemenea, hemoglobina transportatoare de oxigen | iar in cazul nostru hemoglobina absoarbe lumina. De asemenea, hemoglobina transportatoare de oxigen | ||
absoarbe mai mult lumina infrarosie decat lumina rosie, iar hemoglobina care nu transporta oxigen | absoarbe mai mult lumina infrarosie decat lumina rosie, iar hemoglobina care nu transporta oxigen | ||
- | absoarbe mai mult lumina rosie decat infrarosie. Astfel, cu 2 LED-uri si un fotodetector se poate masura | + | absoarbe mai mult lumina rosie decat cea infrarosie. Astfel, cu 2 LED-uri si un fotodetector se poate masura |
saturatia de oxigen din sange. | saturatia de oxigen din sange. | ||
</note> | </note> | ||
Line 65: | Line 65: | ||
* Functii implementate | * Functii implementate | ||
* **setup():** sunt initializate LCD-ul si display-ul OLED, iar pe LCD este printat titlu proiectului. Dupa aceea este verificat daca senzorul este initializat corect. In cazul in care este, se afiseaza mesajul 'SUCCESS', este setat fontul pentru OLED, este pornit senzorul si este setata functia de callback pentru fiecare bataie detectata. Daca initializarea esueaza, pe OLED va aparea mesajul 'FAILED' si se intra intr-un loop. La final mai sunt setate ledurile GREEN si RED si buzzerul ca OUTPUT. | * **setup():** sunt initializate LCD-ul si display-ul OLED, iar pe LCD este printat titlu proiectului. Dupa aceea este verificat daca senzorul este initializat corect. In cazul in care este, se afiseaza mesajul 'SUCCESS', este setat fontul pentru OLED, este pornit senzorul si este setata functia de callback pentru fiecare bataie detectata. Daca initializarea esueaza, pe OLED va aparea mesajul 'FAILED' si se intra intr-un loop. La final mai sunt setate ledurile GREEN si RED si buzzerul ca OUTPUT. | ||
- | * **loop():** masurarea propriu-zisa incepe abia dupa 2 secunde de la terminarea functiei de setup. Dupa aceea la fiecare secunda vor fi facute masuratorile dorite. Cu functiile de biblioteca getHeartRate() si getSPO2() aflu pulsul, respectiv concentratia de SPO2 din sange. Atunci cand nu este detectat niciun deget pe senzor (cand SPO2 masurat este zero), se aprinde ledul rosu si stins ledul verde. Analog, atunci cand degetul este detectat pe senzor, ledul verde se aprinde si ledul rosu se stinge. Daca degetul este detectat, valorile masurate sunt printate pe display. Altfel, va fi printat mesajul 'SPO2...', sugerand faptul ca degetul nu este detectat sau ca nu s-a terminat masurarea valorilor dorite. | + | * **loop():** masurarea propriu-zisa incepe abia dupa 2 secunde de la terminarea functiei de setup. Dupa aceea la fiecare secunda vor fi facute masuratorile dorite. Cu functiile de biblioteca getHeartRate() si getSPO2() aflu pulsul, respectiv concentratia de SPO2 din sange. Atunci cand nu este detectat niciun deget pe senzor (cand SPO2 masurat este zero), se aprinde ledul rosu si se stinge ledul verde. Analog, atunci cand degetul este detectat pe senzor, ledul verde se aprinde si ledul rosu se stinge. Daca degetul este detectat, valorile masurate sunt printate pe display. Altfel, va fi printat mesajul 'SPO2...', sugerand faptul ca degetul nu este detectat sau ca nu s-a terminat masurarea valorilor dorite. |
* **onBeatDetected():** functie care este apelata de fiecare data cand este detectata o bataie a inimii. Aceasta afiseaza pe display un bitmap cu o inima si apeleaza functia buzz(). | * **onBeatDetected():** functie care este apelata de fiecare data cand este detectata o bataie a inimii. Aceasta afiseaza pe display un bitmap cu o inima si apeleaza functia buzz(). | ||
* **buzz():** functie care face buzzerul sa sune. Sunetul este produs prin apelarea de 80 de ori a digitalWrite de HIGH/LOW pe portul 8 la o frecventa mare. | * **buzz():** functie care face buzzerul sa sune. Sunetul este produs prin apelarea de 80 de ori a digitalWrite de HIGH/LOW pe portul 8 la o frecventa mare. | ||
Line 74: | Line 74: | ||
===== Concluzie ===== | ===== Concluzie ===== | ||
- | Proiectul la PM a fot pentru mine in mod cert o experienta interesanta care mi-a oferit multa satisfactie la final. M-a ajutat sa imi solidific cunostiintele dobandite in cadrul laboratorului intr-un mod practic si faptul ca la final am ceva care chiar merge imi ofera multa incredere si motivatie sa incerc pe viitor ceva mai complex. Greutatile intampinate la mine a fost sa gasesc o biblioteca potrivita cu tipul senzorului pe care il am si sa integrez functionalitatea senzorului in cadrul proiectului. Cel putin la functia de setup am petrecut ceva timp pe partea de debug, deoarece senzorul nu putea fi initializat. | + | Proiectul la PM a fost pentru mine in mod cert o experienta interesanta care mi-a oferit multa satisfactie la final. M-a ajutat sa imi solidific cunostiintele dobandite in cadrul laboratorului intr-un mod practic si faptul ca la final am ceva care chiar merge imi ofera multa incredere si motivatie sa incerc pe viitor ceva mai complex. Greutatile intampinate la mine au fost sa gasesc o biblioteca potrivita cu tipul senzorului pe care il am si sa integrez functionalitatea senzorului in cadrul proiectului. Cel putin la functia de setup am petrecut ceva timp pe partea de debug, deoarece senzorul nu putea fi initializat. |
===== Bibliografie/Resurse ===== | ===== Bibliografie/Resurse ===== |