This shows you the differences between two versions of the page.
pm:prj2022:avaduva:alexandru.necula01 [2022/04/30 17:44] 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 90: | Line 88: | ||
**Initializari** - inainte de orice functie, initializam urmatoarele variabile: | **Initializari** - inainte de orice functie, initializam urmatoarele variabile: | ||
- | * pox → clasa care defineste senzorul de puls-oximetru | + | * //pox// → clasa care defineste senzorul de puls-oximetru |
- | * tft → clasa care defineste display-ul tft | + | * //tft// → clasa care defineste display-ul tft |
- | * lastState → initializat cu WAITING, folosita pentru a tine cont cand actualizam display-ul | + | * //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 | + | * //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 | + | * //tsLastReport// → initializat cu 0, folosita pentru a actualiza display-ul la intervale determinate |
<note> | <note> | ||
Line 103: | Line 101: | ||
**Functii** | **Functii** | ||
- | * setup() → initializarea pinilor pentru buzzer si LED-uri, initializarea display-ului TFT, initializarea senzorului de puls, inregistrarea functie de callback pentru fiecare puls | + | * //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 | + | * //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 | + | * //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 | + | * //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 | + | * //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()// | + | * //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 | + | * //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 143: | 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 ===== |