Differences

This shows you the differences between two versions of the page.

Link to this comparison view

pm:prj2024:sseverin:alexandru.vladut02 [2024/05/23 22:43]
alexandru.vladut02
pm:prj2024:sseverin:alexandru.vladut02 [2024/05/27 17:11] (current)
alexandru.vladut02 [Descriere generală]
Line 12: Line 12:
  
   - **Inițierea monitorizării**:​ Utilizatorul pornește sesiunea de monitorizare a pulsului apăsând butonul conectat la Arduino. Acest moment marchează începutul perioadei de activitate fizică.   - **Inițierea monitorizării**:​ Utilizatorul pornește sesiunea de monitorizare a pulsului apăsând butonul conectat la Arduino. Acest moment marchează începutul perioadei de activitate fizică.
-  - **Colectarea datelor**: Îndată ce sesiunea este inițiată, senzorul de puls începe să înregistreze ritmul cardiac al utilizatorului prin intermediul unor LED-uri cu infraroșu și a unui fotodetector,​ și transmite aceste date la placa Arduino în timp real. De asemenea, un LED RGB va semnala ​utilizatorului daca pulsul nu are o valoare optima.+  - **Colectarea datelor**: Îndată ce sesiunea este inițiată, senzorul de puls începe să înregistreze ritmul cardiac al utilizatorului prin intermediul unor LED-uri cu infraroșu și a unui fotodetector,​ și transmite aceste date la placa Arduino în timp real. De asemenea, un LED RGB va semnala ​fiecare bătaie a inimii înregistrată.
   - **Procesarea și stocarea datelor**: Datele de la senzor sunt colectate și procesate continuu de Arduino pe durata activității.   - **Procesarea și stocarea datelor**: Datele de la senzor sunt colectate și procesate continuu de Arduino pe durata activității.
   - **Încheierea monitorizării**:​ Utilizatorul finalizează sesiunea de monitorizare apăsând din nou butonul. Acest lucru indică sfârșitul perioadei de activitate și inițiază procesul de afișare a datelor.   - **Încheierea monitorizării**:​ Utilizatorul finalizează sesiunea de monitorizare apăsând din nou butonul. Acest lucru indică sfârșitul perioadei de activitate și inițiază procesul de afișare a datelor.
-  - **Afișarea statisticilor**:​ În momentul încheierii sesiunii, Arduino procesează datele finale și le afișează pe display-ul LCD prin intermediul adaptorului I2C. Statisticile afișate includ ritmul cardiac minim/​mediu/​maximdurata totală a sesiunii ​sau HRV (variabilitatea ritmului cardiac). Aceste informații oferă utilizatorului o perspectivă detaliată asupra performanței sale cardiace pe durata activității.+  - **Afișarea statisticilor**:​ În momentul încheierii sesiunii, Arduino procesează datele finale și le afișează pe display-ul LCD prin intermediul adaptorului I2C. Statisticile afișate includ ritmul cardiac minim/​mediu/​maxim ​sau durata totală a sesiunii. Aceste informații oferă utilizatorului o perspectivă detaliată asupra performanței sale cardiace pe durata activității.
 {{ :​pm:​prj2024:​sseverin:​alexandru-vladut_2_.png?​750 |}} {{ :​pm:​prj2024:​sseverin:​alexandru-vladut_2_.png?​750 |}}
 ===== Hardware Design ===== ===== Hardware Design =====
Line 49: Line 49:
 **Circuit:​** **Circuit:​**
  
-{{ :​pm:​prj2024:​sseverin:​alex_vladut_tinkercad.png?​600 |}} +{{:​pm:​prj2024:​sseverin:​alex_vladut_tinkercad.png?​600|}}
  
 +\\
 **Schematic:​** **Schematic:​**
  
-{{ :​pm:​prj2024:​sseverin:​alex_vladut_schematic.png?​600 |}} +{{:​pm:​prj2024:​sseverin:​alex_vladut_schematic.png?​600|}}
  
 +\\
 **Stadiu curent:** **Stadiu curent:**
  
-{{ :​pm:​prj2024:​sseverin:​alex_vladut_circuit.jpeg?​600 |}}+{{:​pm:​prj2024:​sseverin:​alex_vladut_circuit.jpeg?​600|}}
 ===== Software Design ===== ===== Software Design =====
  
Line 99: Line 99:
   * **//​computeStats()//​**:​ apelată în **//​loop()//​** în momentul în care este apăsat butonul și flag-ul //​isMonitoring//​ e setat pe //FALSE//, metoda calculează statisticile afișate utilizatorului la finalul perioadei de monitorizare.   * **//​computeStats()//​**:​ apelată în **//​loop()//​** în momentul în care este apăsat butonul și flag-ul //​isMonitoring//​ e setat pe //FALSE//, metoda calculează statisticile afișate utilizatorului la finalul perioadei de monitorizare.
  
 +<​note>​Codul și alte resurse folosite se pot găsi pe [[https://​github.com/​alexandru-vladut/​Heart-Rate-Monitor|GitHub]].</​note>​
 ===== Rezultate Obţinute ===== ===== Rezultate Obţinute =====
  
-<note tip> +**Pornirea //Heart Rate Monitor//** 
-Care au fost rezultatele obţinute ​în urma realizării proiectului vostru+ 
-</​note>​+{{:​pm:​prj2024:​sseverin:​alex_vladut_1.jpeg?​600|}} 
 + 
 +\\ 
 +**Starea de monitorizare**, ​în care LED-ul clipocește în culoarea roșie la fiecare bătaie a inimii
 + 
 +{{:​pm:​prj2024:​sseverin:​alex_vladut_2.jpeg?​600|}} 
 + 
 +\\ 
 +**Afișarea rezultatelor**,​ moment în care LED-ul este aprins static în diferite culori, în funcție de BPM.
  
 +{{:​pm:​prj2024:​sseverin:​alex_vladut_3.jpeg?​600|}}
 ===== Concluzii ===== ===== Concluzii =====
  
 +Senzorii de puls sunt foarte pretențioși,​ din mai multe puncte de vedere:
 +  * În primul rând, cei de tip **HW-827** nu s-au dovedit a fi cei mai funcționali,​ în cazul meu cel puțin. După folosirea eșuată a 2 senzori de acest tip, am trecut la **MAX30102** (o replică a pulsoximetrului făcut de SparkFun).
 +  * În al doilea rând, senzorul de puls are nevoie de o presiune constantă a degetului pentru a oferi valori accurate continuu. Oricât am crede noi, ca oameni, că aplicam aceasta presiune constant, cu siguranță nu reușim (informație găsită și în documentația senzorului). Prin urmare, am atașat senzorul unei benzi cu scai reglabile, simulând un inel, însă nici acest lucru nu a adus o funcționare perfectă a senzorului (ocazional omite unele bătăi ale inimii).
 ===== Download ===== ===== Download =====
  
-<note warning>​ +{{:pm:prj2024:sseverin:vladut_alexandru-nicolae_332ca.zip|}}
-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**. +
-</​note>​+
  
 ===== Bibliografie/​Resurse ===== ===== Bibliografie/​Resurse =====
  
-<​note>​ +**Resurse Software:** 
-Listă cu documente, datasheet-uri,​ resurse Internet folosite, eventual grupate pe **Resurse Software** ​şi **Resurse Hardware**. +  * https://​github.com/​johnrickman/​LiquidCrystal_I2C 
-</note>+  * https://​github.com/​sparkfun/​SparkFun_MAX3010x_Sensor_Library 
 +  * https://​docs.arduino.cc/​learn/​microcontrollers/​digital-pins/​ 
 +  * https://​docs.arduino.cc/​learn/​microcontrollers/​analog-input/​ 
 +  * https://​docs.arduino.cc/​learn/​microcontrollers/​analog-output/​ 
 +  * https://​ocw.cs.pub.ro/​courses/​pm/​lab/​lab1-2023 
 +  * https://​ocw.cs.pub.ro/​courses/​pm/​lab/​lab2-2023 
 +  * https://​ocw.cs.pub.ro/​courses/​pm/​lab/​lab3-2023-2024 
 +  * https://​ocw.cs.pub.ro/​courses/​pm/​lab/​lab6-2023-2024 
 + 
 +**Resurse Hardware:** 
 +  * https://www.handsontec.com/​dataspecs/​I2C_2004_LCD.pdf 
 +  * https://​cdn.sparkfun.com/​assets/​f/​e/​9/​4/​1/​MAX30101.pdf 
 +  * https://​learn.sparkfun.com/​tutorials/​max30105-particle-and-pulse-ox-sensor-hookup-guide/all
  
 +\\
 <​html><​a class="​media mediafile mf_pdf"​ href="?​do=export_pdf">​Export to PDF</​a></​html>​ <​html><​a class="​media mediafile mf_pdf"​ href="?​do=export_pdf">​Export to PDF</​a></​html>​
  
pm/prj2024/sseverin/alexandru.vladut02.1716493432.txt.gz · Last modified: 2024/05/23 22:43 by alexandru.vladut02
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0