Differences

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

Link to this comparison view

pm:prj2022:imacovei:andreea.traistaru00 [2022/05/27 01:35]
andreea.traistaru00
pm:prj2022:imacovei:andreea.traistaru00 [2022/05/27 16:07] (current)
andreea.traistaru00 [Download]
Line 9: Line 9:
      * Consider că acest dispositiv poate fi util sportivilor în cadrul antrenamentelor pentru a putea aprecia intensitatea exercițiilor;​      * Consider că acest dispositiv poate fi util sportivilor în cadrul antrenamentelor pentru a putea aprecia intensitatea exercițiilor;​
 ===== Descriere generală ===== ===== Descriere generală =====
- Pe ecranul LCD-ului se vor afișa diferite informații în funcție de butonul apăsat. Un buton va reda pe LCD un mesaj de  +  * Pe ecranul LCD-ului se vor afișa diferite informații în funcție de butonul apăsat. Un buton va fi folosit pentru a semnala începerea măsurării pulsului. După terminarea procesului ​se va putea începe ​o nouă acțiune de măsurare prin apăsarea celui de-al doilea buton care va duce dispozitivul în starea de început
-început, iar cu ajutorul celuilalt buton se va începe ​afișarea pulsului+  ​* ​Datele vor fi preluate cu ajutorul senzorului pentru puls XD-58C atunci cand este atins de degetul utilizatorului. ​ Senzorul foloseste un amplificator optic si un circuit de eliminare a zgomotului. Valoarea citită va fi redată pe ecranul LCD-ului. De asemenea, pe măsură ce este măsurat pulsul va fi redat un sunet conform bătăilor inimii cu ajutorul unui buzzer. Dacă este măsurat un ritm cardiac crescut lumina generată de led-ul RGB va avea o culoare roșie, în cazul unui puls normal va avea o nuanță de verde, iar în cazul unui puls scăzut va avea culoarea ​albastru. Totodată cele trei culori vor fi redate cu intensități diferite pentru a indica cât de scăzut respectiv cât de crescut este ritmul cardiac față de valorile optime. 
- ​Datele vor fi preluate cu ajutorul senzorului pentru puls XD-58C atunci cand este atins de degetul utilizatorului. ​ +  
-Senzorul foloseste un amplificator optic si un circuit de eliminare a zgomotului. Valoarea citită va fi redată pe ecranul LCD-ului. ​ +{{:​pm:​prj2022:​imacovei:​traistaru_andreea_schema_bloc.png?​700|}}
-De asemenea, pe măsură ce este măsurat pulsul va fi redat un sunet conform bătăilor inimii cu ajutorul unui buzzer. Dacă este măsurat un ritm +
-cardiac crescut lumina generată de led-ul RGB va avea o culoare roșie, în cazul unui puls normal va avea o nuanță de verde, iar +
-în cazul unui puls scăzut va avea culoarea ​galben. Totodată cele trei culori vor fi redate cu intensități diferite pentru a indica ​ +
-cât de scăzut respectiv cât de crescut este ritmul cardiac față de valorile optime.  +
-==== Schema bloc ==== +
-    ​ +
-{{:​pm:​prj2022:​imacovei:​traistaru_andreea_schema_bloc.png?​752x405|}}+
  
 ===== Hardware Design ===== ===== Hardware Design =====
- ​Componente ​folosite: +  
-    ​*Arduino Uno +==== Componente ​==== 
-    ​*Breadboard +^ Nume      ^ Numar Piese          ^ 
-    *2 butoane +| Arduino UNO    |1 | 
-    *Buzzer +Breadboard ​       | 1 | 
-    *Fire +| Ecran LCD I2C  | 1| 
-    *LCD +| Push Buton  |2 | 
-    *Senzor puls (XD-58C)+Senzor puls (XD-58C) ​ |1 | 
 +| Buzzer ​  |1 | 
 +|Rezistente |3 | 
 +|Fire |15 | 
 + 
 +==== Schema electrică ==== 
 + 
 + 
 +{{:​pm:​prj2022:​imacovei:​schema_electrica_traistaru_andreea.png?​722x502|}}
  
 ===== Software Design ===== ===== Software Design =====
Line 35: Line 36:
  ​**Mediu de dezvoltare**  ​**Mediu de dezvoltare**
         * Arduino IDE         * Arduino IDE
 +        * Autodesk EAGLE
 </​note>​ </​note>​
 <​note>​ <​note>​
Line 56: Line 58:
  
 == Funcțiile folosite: == == Funcțiile folosite: ==
-     * lightRGB → funcție ce setează pinii led-ului RGB la niște valori transmise ca parametri;​ +   * lightRGB → funcție ce setează pinii led-ului RGB la niște valori transmise ca parametri;​ 
-     ​* timerInit → inițializează timer-ul 0 la modul CTC, cu un prescaler de 1024; +   ​* timerInit → inițializează timer-ul 0 la modul CTC, cu un prescaler de 1024; 
-     ​* setup → funcția inițializează LCD-ul, senzorul de puls, setează pinii pentru LED-ul RGB, pentru butoane și configurează întreruperile +   ​* setup → funcția inițializează LCD-ul, senzorul de puls, setează pinii pentru LED-ul RGB, pentru butoane și configurează întreruperile 
-     ​* loop → reprezintă funcția principală care descrie logica programului;​ aici se afișează diferite informații pe LCD +   ​* loop → reprezintă funcția principală care descrie logica programului;​ aici se afișează diferite informații pe LCD ținând cont de starea în care se află dispozitivul la un moment dat; conform datelor citite de la senzor în starea de MEASURE este pornit led-ul RGB a cărui culoare va fi diferită, iar de fiecare dată când va fi recepționată o bătaie a inimii buzzer-ul va semnala acest lucru; 
-ținând cont de starea în care se află dispozitivul la un moment dat; conform datelor citite de la senzor în  +   ​* ISR(TIMER0_COMPA_vect) → se folosește un counter pentru a trece de la o stare la alta în mod automat dupa un anumit timp; 
-starea de MEASURE este pornit led-ul RGB a cărui culoare va fi diferită, iar de fiecare dată când va fi recepționată o bătaie a inimii ​ +   ​* ISR(PCINT2_vect) → implementare întrerupere buton; 
-buzzer-ul va semnala acest lucru; +   ​* void count_time() → decrementează variabilele folosite pentru counter-ul utilizat de timer; 
-     ​* ISR(TIMER0_COMPA_vect) →  +   ​* pin_ISR → întrerupere folosită pentru a trece de la o stare la alta prin resetarea unor variabile la apăsarea unui buton; 
-     ​* ISR(PCINT2_vect) → +====== ​Rezultate obținute ​====== 
-     ​* void count_time() → +{{:​pm:​prj2022:​imacovei:​1_traistaru.jpeg?​250|}} 
-     ​* pin_ISR → întrerupere folosită pentru a trece  +{{:​pm:​prj2022:​imacovei:​2_traistaru.jpeg?​250|}} 
-        ​ +{{:​pm:​prj2022:​imacovei:​3_traistaru.jpeg?​250|}}
-===== Concluzii ​=====+
  
 +**Demo** → https://​www.youtube.com/​watch?​v=XSQjz5b1zZI
 +
 +
 +
 +===== Concluzii =====
 +        * Proiectul m-a ajutat să aprofundez noțiunile parcurse de-a lungul semestrului la laboratoare într-un mod interactiv. Am învățat că este important să citești datasheet-ul componentelor pentru a fi sigur că piesele sunt compatibile.
 +        * Mi s-a părut o provocare să realizez acest proiect, dar mi-a făcut plăcere să lucrez la el.=)
  
 ===== Download ===== ===== Download =====
 +{{:​pm:​prj2022:​imacovei:​heart_rate_monitor.zip|}}
  
  
 ===== Jurnal ===== ===== Jurnal =====
 +  * **20.04.2022**:​ alegere tema proiect 
 +  * **22.04.2022**:​ comandă piese 
 +  * **23.04.2022**:​ creare pagină wiki 
 +  * **20.04.2022**:​ testare individuală componente 
 +  * **23.05.2022**:​ implementare hardware și software  
 +  * **27.05.2022**:​ finalizare pagină wiki
  
 ===== Bibliografie/​Resurse ===== ===== Bibliografie/​Resurse =====
 +  * https://​www.arduino.cc/​reference/​en/​language/​functions/​external-interrupts/​attachinterrupt/​
 +  * https://​ocw.cs.pub.ro/​courses/​pm/​lab/​lab2-2022
 +  * https://​ocw.cs.pub.ro/​courses/​pm/​lab/​lab3-2022
  
  
 <​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/prj2022/imacovei/andreea.traistaru00.1653604531.txt.gz · Last modified: 2022/05/27 01:35 by andreea.traistaru00
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