This shows you the differences between two versions of the page.
pm:prj2025:vstoica:ana_maria.tomescu [2025/05/26 00:08] ana_maria.tomescu |
pm:prj2025:vstoica:ana_maria.tomescu [2025/05/26 00:43] (current) ana_maria.tomescu |
||
---|---|---|---|
Line 20: | Line 20: | ||
Senzor de puls XD-58C – ofera semnal analogic proportional cu pulsul | Senzor de puls XD-58C – ofera semnal analogic proportional cu pulsul | ||
- | Display OLED 0.96” (I2C) – afisează pulsul si mesajele de stare | + | Display OLED 0.96” (I2C/SPI) – afisează pulsul si mesajele de stare |
Buzzer pasiv – semnal sonor pentru alerte | Buzzer pasiv – semnal sonor pentru alerte | ||
Line 61: | Line 61: | ||
===== Software Design ===== | ===== Software Design ===== | ||
- | {{:pm:prj2025:vstoica:main.zip|}} | ||
- | <html><iframe width="560" height="315" | + | === Stadiul actual al implementarii software === |
+ | Proiectul este functional. Afiseaza in timp real pulsul pe un display OLED, calculeaza BPM si activeaza un buzzer daca pulsul iese din intervalul normal (60–100 BPM). Sistemul este stabil si testat fizic pe Arduino UNO. | ||
+ | |||
+ | === Motivatia alegerii bibliotecilor === | ||
+ | Adafruit_SSD1306 si Adafruit_GFX – folosite pentru afisaj grafic si text pe ecrane OLED | ||
+ | SPI.h – necesara pentru comunicarea rapida cu display-ul SPI | ||
+ | Arduino.h – ofera functii de baza pentru citirea senzorilor si controlul pinilor | ||
+ | |||
+ | === Element de noutate === | ||
+ | Sistemul afiseaza nu doar valoarea BPM, ci si un grafic in timp real al semnalului pulsului. Include filtrare pentru valori false si un buzzer inteligent activ doar cand este nevoie. | ||
+ | |||
+ | === Concepte === | ||
+ | * citire analogica | ||
+ | * afisare grafica pe OLED | ||
+ | * semnal sonor cu buzzer | ||
+ | * control si afisare conditionala | ||
+ | |||
+ | === Structura codului === | ||
+ | * setup() – initializare componente | ||
+ | * loop() – citire senzor, calcul BPM, afisare si control buzzer | ||
+ | |||
+ | === Calibrare senzori === | ||
+ | Pragurile de detectie (UPPER si LOWER) au fost obtinute experimental, observand semnalul cu si fara contact. De asemenea, valorile BPM sub 30 sau peste 200 sunt ignorate pentru a elimina semnalele false. | ||
+ | |||
+ | === Optimizari === | ||
+ | * BPM este afisat doar cand este valid. | ||
+ | * Graficul se reseteaza automat dupa 128 puncte. | ||
+ | * Buzzerul este activ doar cand pulsul este real si anormal. | ||
+ | |||
+ | === Arhiva === | ||
+ | {{:pm:prj2025:vstoica:monitor_de_puls.zip|}} | ||
+ | |||
+ | ===== Rezultate Obţinute ===== | ||
+ | {{:pm:prj2025:vstoica:monitor_puls1.jpg?300|}} {{:pm:prj2025:vstoica:monitor_puls2.jpg?300|}} {{:pm:prj2025:vstoica:monitor_puls_3.jpg?300|}}<html><iframe width="560" height="315" | ||
src="https://www.youtube.com/embed/inOwLH4GeiU" | src="https://www.youtube.com/embed/inOwLH4GeiU" | ||
title="YouTube video player" | title="YouTube video player" | ||
Line 72: | Line 104: | ||
</html> | </html> | ||
- | + | In cazul video-ului, pulsul afisat este BPM = 62. | |
- | <note tip> | + | |
- | Descrierea codului aplicaţiei (firmware): | + | |
- | * mediu de dezvoltare (if any) (e.g. AVR Studio, CodeVisionAVR) | + | |
- | * librării şi surse 3rd-party (e.g. Procyon AVRlib) | + | |
- | * algoritmi şi structuri pe care plănuiţi să le implementaţi | + | |
- | * (etapa 3) surse şi funcţii implementate | + | |
- | </note> | + | |
- | + | ||
- | ===== Rezultate Obţinute ===== | + | |
- | {{:pm:prj2025:vstoica:monitor_puls1.jpg?300|}} {{:pm:prj2025:vstoica:monitor_puls2.jpg?300|}} | + | |
===== Concluzii ===== | ===== Concluzii ===== |