Differences

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

Link to this comparison view

pm:prj2022:avaduva:alexandru.necula01 [2022/04/30 16:15]
alexandru.necula01
pm:prj2022:avaduva:alexandru.necula01 [2022/04/30 19:02] (current)
alexandru.necula01 [Jurnal]
Line 48: Line 48:
 ==== Schema electrica ==== ==== Schema electrica ====
  
-TODO here insert schema Eagle +{{:​pm:​prj2022:​avaduva:​schematic_heartmonitor.png?​700|}}
 <​note>​ <​note>​
 Placuta comandata care include senzorul are o problema de design, respectiv Placuta comandata care include senzorul are o problema de design, respectiv
Line 63: Line 62:
 ((https://​simple-circuit.com/​arduino-st7789-ips-tft-display-example/​)) ((https://​simple-circuit.com/​arduino-st7789-ips-tft-display-example/​))
 </​note>​ </​note>​
- 
  
 ===== Software Design ===== ===== Software Design =====
Line 85: Line 83:
  
 Senzorul de puls are 3 stari: Senzorul de puls are 3 stari:
-  * **WAITING** → degetul nu se afla pe senzor +  * **WAITING** → degetul nu se afla pe senzor; se afiseaza mesajul "Rest your finger on the sensor"​ 
-  * **INITIALIZING** ​-> frecventa cardiaca este in curs de calcul +  * **INITIALIZING** ​→ frecventa cardiaca este in curs de calcul; se afiseaza mesajul "​Please wait..."​ 
-  * **WORKING** ​-> display-ul afiseaza datele colectate+  * **WORKING** ​→ display-ul afiseaza datele colectate; se afiseaza pulsul si oxigenarea sangelui pe display 
 + 
 +**Initializari** - inainte de orice functie, initializam urmatoarele variabile:​ 
 +  * //pox// → clasa care defineste senzorul de puls-oximetru 
 +  * //tft// → clasa care defineste display-ul tft 
 +  * //​lastState//​ → initializat cu WAITING, folosita pentru a tine cont cand actualizam display-ul 
 +  * //​prevHeartRate//​ → initializat cu 0, folosita pentru a determina daca calculul pulsului este stabil 
 +  * //​tsLastReport//​ → initializat cu 0, folosita pentru a actualiza display-ul la intervale determinate 
 + 
 +<​note>​ 
 +Senzorul puls-oximetru trebuie interogat cat mai rapid, altfel datele din buffer-ul sau se pierd. 
 +Conform bibliotecii utilizate, actualizarea ar trebui facuta la aproximativ 100Hz. 
 +De aceea, in majoritatea functiilor implementate am apelat //​pox.update()//​ 
 +</​note>​
  
 +**Functii**
 +  * //setup()// → initializarea pinilor pentru buzzer si LED-uri, initializarea display-ului TFT, initializarea senzorului de puls, inregistrarea functie de callback pentru fiecare puls
 +  * //loop()// → logica principala a programului:​ apeleaza //​pox.update()//;​ la fiecare 2 secunde calculeaza pulsul si SpO2 si afiseaza informatii relevante pe display in functie de aceste valori
 +  * //​RGB_color(red,​ green, blue)// → seteaza pinii LED-ului RGB cu valorile date ca parametri
 +  * //​setRGBColor(spO2,​ heartRate)//​ → apeleaza //​RGB_color//​ cu valori in functie de puls si SpO2
 +  * //​onBeatDetected()//​ → functie callBack; porneste buzzer-ul si LED-ul rosu de fiecare data cand detectam un puls
 +  * //​printOnDisplay(x,​ y, whatToPrint)//​ -> afiseaza pe display mesajul/​valoarea dorita; deoarece aceasta operatie dureaza mai mult timp, apeleaza //​pox.update()//​
 +  * //​clearDisplay()//​ → diferit de implementarea din biblioteca Adafruit, pentru a permite interogarea senzorului de puls; printeaza cate un spatiu pe ecran pentru a sterge continutul anterior
  
 ===== Rezultate Obţinute ===== ===== Rezultate Obţinute =====
Line 122: Line 141:
   * **15.04.2022**:​ comanda piese   * **15.04.2022**:​ comanda piese
   * **21.04.2022**:​ publicare descriere wiki   * **21.04.2022**:​ publicare descriere wiki
-  * **30.04.2022**: finalizare software si asamblare hardware +  * **29.04.2022**: finalizare software si asamblare hardware 
-  * **01.05.2022**: finalizare wiki, publicare documentatie completa+  * **30.04.2022**: finalizare wiki, publicare documentatie completa
  
 ===== Bibliografie/​Resurse ===== ===== Bibliografie/​Resurse =====
pm/prj2022/avaduva/alexandru.necula01.1651324545.txt.gz · Last modified: 2022/04/30 16:15 by alexandru.necula01
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