This shows you the differences between two versions of the page.
pm:prj2025:vstoica:ana_maria.tomescu [2025/05/02 22:50] ana_maria.tomescu |
pm:prj2025:vstoica:ana_maria.tomescu [2025/05/26 00:43] (current) ana_maria.tomescu |
||
---|---|---|---|
Line 12: | Line 12: | ||
==== Schema bloc ==== | ==== Schema bloc ==== | ||
- | {{ :pm:prj2025:vstoica:schema_bloc_pm.png?600 |}} | + | {{ :pm:prj2025:vstoica:schema_bloc_pm.png?800 |}} |
==== Componente ==== | ==== Componente ==== | ||
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 | ||
Modul SD card (SPI) – salveaza datele de puls intr-un fisier text | Modul SD card (SPI) – salveaza datele de puls intr-un fisier text | ||
+ | |||
+ | Breadboard - conectarea componentelor | ||
===== Hardware Design ===== | ===== Hardware Design ===== | ||
+ | {{:pm:prj2025:vstoica:monitor_de_puls_circuit.png?800|}} | ||
+ | |||
+ | ^ Nr. ^ Componentă ^ Pin Componentă ^ Pin Arduino UNO (ATmega328P) ^ | ||
+ | | 1 | Senzor puls XD-58C | VCC | 5V | | ||
+ | | | | GND | GND | | ||
+ | | | | OUT (semnal analogic) | A0 | | ||
+ | | 2 | Buzzer pasiv | VCC | 5V | | ||
+ | | | | GND | GND | | ||
+ | | | | I/O (semnal) | D3 | | ||
+ | | 3 | Display OLED 0.96” (I2C)| VCC | 5V | | ||
+ | | | | GND | GND | | ||
+ | | | | DIN | D11 | | ||
+ | | | | CLK | D13 | | ||
+ | | | | CS | D4 | | ||
+ | | | | D/C | D5 | | ||
+ | | | | RES | D6 | | ||
+ | | 4 | Modul SD Card (SPI) | VCC | 5V | | ||
+ | | | | GND | GND | | ||
+ | | | | MISO | D12 | | ||
+ | | | | MOSI | D11 | | ||
+ | | | | SCK | D13 | | ||
+ | | | | CS | D7 | | ||
<note tip> | <note tip> | ||
Line 38: | Line 62: | ||
===== Software Design ===== | ===== Software Design ===== | ||
+ | === 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. | ||
- | <note tip> | + | === Motivatia alegerii bibliotecilor === |
- | Descrierea codului aplicaţiei (firmware): | + | Adafruit_SSD1306 si Adafruit_GFX – folosite pentru afisaj grafic si text pe ecrane OLED |
- | * mediu de dezvoltare (if any) (e.g. AVR Studio, CodeVisionAVR) | + | SPI.h – necesara pentru comunicarea rapida cu display-ul SPI |
- | * librării şi surse 3rd-party (e.g. Procyon AVRlib) | + | Arduino.h – ofera functii de baza pentru citirea senzorilor si controlul pinilor |
- | * algoritmi şi structuri pe care plănuiţi să le implementaţi | + | |
- | * (etapa 3) surse şi funcţii implementate | + | === Element de noutate === |
- | </note> | + | 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 ===== | ===== 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" | ||
+ | title="YouTube video player" | ||
+ | frameborder="0" | ||
+ | allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" | ||
+ | allowfullscreen> | ||
+ | </iframe> | ||
+ | </html> | ||
- | <note tip> | + | In cazul video-ului, pulsul afisat este BPM = 62. |
- | Care au fost rezultatele obţinute în urma realizării proiectului vostru. | + | |
- | </note> | + | |
===== Concluzii ===== | ===== Concluzii ===== |