This shows you the differences between two versions of the page.
pm:prj2021:alazar:pulse-checker [2021/05/31 12:00] elena_bianca.toma [Hardware Design] |
pm:prj2021:alazar:pulse-checker [2021/05/31 19:14] (current) elena_bianca.toma [Hardware Design] |
||
---|---|---|---|
Line 26: | Line 26: | ||
**Schema electrica** | **Schema electrica** | ||
- | {{ :pm:prj2021:alazar:pm:prj2021:cb:elena_bianca_toma:pulse_checker_schema_hardware.png?nolink |}} | + | {{ :pm:prj2021:alazar:pm:prj2021:cb:elena_bianca_toma:schema_noua.png?nolink&800 |}} |
- | {{ :pm:prj2021:alazar:pm:prj2021:cb:elena_bianca_toma:pulse_checker_schema_electrica.png?nolink |}} | + | |
+ | {{ :pm:prj2021:alazar:pm:prj2021:cb:elena_bianca_toma:pulse_checker_1.jpg?nolink&800 |}} | ||
===== Software Design ===== | ===== Software Design ===== | ||
+ | Pentru dezvoltarea proiectului, am folosit urmatoarele biblioteci: | ||
+ | * [[https://www.arduino.cc/en/reference/wire | Wire.h]] si [[https://www.optimusdigital.ro/ro/index.php?controller=attachment&id_attachment=1115|LiquidCrystal_I2C.h]] pentru comunicarea cu ecranul LCD folosind protocolul I2C | ||
+ | * [[https://playground.arduino.cc/Code/Keypad/ | Keypad.h]] pentru a citi informatiile primite de la Keypad | ||
+ | * [[https://github.com/WorldFamousElectronics/PulseSensorPlayground | PulseSensorPlayground.h]] pentru a putea interpreta semnalele primite de la senzorul de puls. | ||
+ | |||
+ | Ideea principala a proiectului consta in preluarea unor informatii date de catre utilizator prin intermediul keypad-ului si in functie de cele primite trece in una dintre cele 6 stari interne ale programului. Primele 5 stari acumuleaza pe rand informatii despre utilizator, iar in ultima stare se asteapta citirea datelor de la senzorul de puls si se afiseaza informatiile corespunzatoare. | ||
+ | |||
+ | Prelucrarea semnalelor de la senzorul de puls nu se face in mod continuu, ci se realizeaza doar in momentul in care senzorul intalneste o schimbare (se detecteaza prima bataie a inimii). | ||
+ | |||
+ | |||
+ | Pentru a determina starea pacientului se compara valoarea obtinuta de la senzor cu valorile din tabelul de mai jos, tinandu-se cont de varsta si genul acestuia. Pentru a realiza acest lucru am creat cate o functie pentru fiecare coloana a tabelului (ex: barbat intre 26 si 35 de ani, femeie intre 56 si 65 de ani etc.) in care se stabileste pe ce linie se incadreaza valoarea citita, mai exact ce stare si culoare i se potriveste din tabel. Culoarea corespunzatoare starii respective este afisata cu ajutorului ledului RGB. | ||
+ | {{ :pm:prj2021:alazar:pm:prj2021:cb:elena_bianca_toma:e678bf9eef0ebaa19df9b051a2cdc664.png?nolink&800 |}} | ||
===== Rezultate obtinute ===== | ===== Rezultate obtinute ===== | ||
+ | * Ecran de start | ||
+ | {{ :pm:prj2021:alazar:pm:prj2021:cb:elena_bianca_toma:20210531_084548.jpg?nolink&800 |}} | ||
+ | * Alegere interval varsta | ||
+ | {{ :pm:prj2021:alazar:pm:prj2021:cb:elena_bianca_toma:20210531_084554.jpg?nolink&800 |}} | ||
+ | * Introducere varsta | ||
+ | {{ :pm:prj2021:alazar:pm:prj2021:cb:elena_bianca_toma:20210531_084607.jpg?nolink&800 |}} | ||
+ | * Introducere gen | ||
+ | {{ :pm:prj2021:alazar:pm:prj2021:cb:elena_bianca_toma:20210531_084611.jpg?nolink&800 |}} | ||
+ | |||
+ | **Exemple afisare stari in functie de valoarea masurata** | ||
+ | * //Athlete// - valoarea ideala a pulsului | ||
+ | {{ :pm:prj2021:alazar:pm:prj2021:cb:elena_bianca_toma:pulse_checker_project_overview.jpg?nolink&800 |}} | ||
+ | * //Great// - valoare foarte buna a pulsului | ||
+ | {{ :pm:prj2021:alazar:pm:prj2021:cb:elena_bianca_toma:20210531_084423.jpg?nolink&800 |}} | ||
+ | * //Good// - valoare buna a pulsului | ||
+ | {{ :pm:prj2021:alazar:pm:prj2021:cb:elena_bianca_toma:20210531_084408.jpg?nolink&800 |}} | ||
+ | * //Poor// - valoare nepotrivita a pulsului (prea mare) | ||
+ | {{ :pm:prj2021:alazar:pm:prj2021:cb:elena_bianca_toma:20210531_084441.jpg?nolink&800 |}} | ||
+ | |||
+ | |||
+ | **DEMO-ul pentru proiect se gaseste [[https://www.youtube.com/watch?v=nZd3ffN-IFA | aici]]** | ||
+ | |||
+ | |||
===== Concluzii ===== | ===== Concluzii ===== | ||
+ | Intreaga implementare a proiectului a fost interesanta si cred ca m-a ajutat sa inteleg mai bine cum sa scriu cod pentru Arduino. | ||
+ | Una dintre problemele intampinate pe parcurs a fost faptul ca precizia senzorului nu este foarte buna, avand destul de des erori. Folosind un senzor mai bun, acest proiect poate fi de ajutor multor oameni, deoarece le poate spune starea lor din punct de vedere a valorii pulsului prin afisarea pe ecran sau prin culoarea ledului si totodata ii poate avertiza prin semnale sonore in cazul in care valorile pulsului nu se afla in parametrii normali. | ||
===== Download ===== | ===== Download ===== | ||
+ | Arhiva proiectului poate fi descarcata de {{:pm:prj2021:alazar:pm:prj2021:cb:elena_bianca_toma:pulse_checker.zip| aici}}. | ||
===== Jurnal ===== | ===== Jurnal ===== | ||
- | ===== Headline ===== | + | * 25 aprilie - Alegere tema proiect |
+ | * 25 aprilie - Creare pagina de wiki | ||
+ | * 29 aprilie - Comandare componente | ||
+ | * 10 mai - testare componente individuale | ||
+ | * 17-24 mai - implementare proiect | ||
+ | * 31 mai - scriere documentatie finala pentru proiect | ||
===== Bibliografie/Resurse ===== | ===== Bibliografie/Resurse ===== | ||
[[https://ocw.cs.pub.ro/courses/pm/prj2021/alazar/pulse-checker?do=export_pdf|PDF]] | [[https://ocw.cs.pub.ro/courses/pm/prj2021/alazar/pulse-checker?do=export_pdf|PDF]] | ||
+ | * Pentru a intelege modul de functionare a componentelor individuale m-am folosit de exemplele puse de cei de la [[https://www.optimusdigital.ro/ro/ | Optimus Digital]] si de exemplele din Arduino IDE si din cadrul bibliotecilor amintite mai sus. | ||
+ | * [[https://www.google.com/url?sa=i&url=https%3A%2F%2Fagelessinvesting.com%2Fwhat-is-a-good-resting-heart-rate%2F&psig=AOvVaw1wCOKuDEBvqu_TC6SdP90D&ust=1622551089912000&source=images&cd=vfe&ved=0CAIQjRxqFwoTCKj-p_338_ACFQAAAAAdAAAAABAD| Valori puls pentru fiecare varsta]] | ||