Differences

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

Link to this comparison view

pm:prj2021:abirlica:455 [2021/05/16 18:19]
ilie_cristian.sandu
pm:prj2021:abirlica:455 [2021/06/02 17:27] (current)
ilie_cristian.sandu [Bibliografie/Resurse]
Line 4: Line 4:
 Un sistem care **masoara tensiunea si saturatioa de O2** si  Un sistem care **masoara tensiunea si saturatioa de O2** si 
 **salveaza logul pe un card microSD** (data si ora la care sa masurat alaturi de SPO2 si tensiune) pentru parsare ulterioara. ​ **salveaza logul pe un card microSD** (data si ora la care sa masurat alaturi de SPO2 si tensiune) pentru parsare ulterioara. ​
-alaturi de trimiterea in timp real prin serial catre un Raspberry pi w 0 pentru afisarea unui grafic folosind matplotlib.pyplot. Rezultatele sunt **afisate in timp real** pe un display.+alaturi de trimiterea in timp real prin serial catre un Raspberry pi w 0 pentru afisarea unui grafic folosind matplotlib.pyplot. Rezultatele sunt **afisate in timp real** pe un display ​OLED, iar pe un display de nokia 3310 se afiseaza un grafic minimalist ​  
 +Scopul proiectului este de a tine un jurnal al pulsului astfel putandu-se observa evolutia in starea de sanatate sau pur si simplu un o idee asupra tensiunii unei persoane. ​  
 + 
 +Initial voiam sa fac ceva simplu, dar m-am gandit sa ma extind tinand cont ca am un Arduino Mega la dispozitie ​  
 + 
 +Proiectul poate fi util din mai multe puncte de vedere, pentru persoanele mai in varsta pot sa isi ia pulsul si sa vada graficul in timp real cat de mare isi doresc (depinzand de dimensiunea monitoruui/​televizorului),​ iar o data pe luna/an pot sa vada cum a evoluat pulsul lor folosind script-ul pus la dispozitie pe datele de pe SD.
  
 ===== Descriere generală ===== ===== Descriere generală =====
Line 22: Line 27:
   * Raspberry pi w 0   * Raspberry pi w 0
   * Level Shifter   * Level Shifter
 +Am ales aceste componente in principiu accesibilitati acestora. O mare parte din aceste le aveam deja procurate pentru proiecte anterioare.  ​
 +
 Schema Electrica ​ Schema Electrica ​
 {{ :​pm:​prj2021:​abirlica:​tensiometruElectric.png?​600 |}} {{ :​pm:​prj2021:​abirlica:​tensiometruElectric.png?​600 |}}
  
-===== Bibliografie/​Resurse ​=====+===== Software Design ​===== 
 +**Medii Dezvoltare**:​  
 +  * Arduino IDE (pentru proiectul principal) 
 +  * PyCharm (pentru scriptul de parsare date SD) 
 +  * Visual Studio Code (pentru scriptul de afisare a datelor in timp real pe Raspberry pi) 
 +**Biblioteci folosite**  
 +  * Wire.h 
 +  * SPI.h  
 +  * DS1302.h 
 +  * SD.h 
 +  * PCD8544.h 
 +  * algorithm_by_RF.h 
 +  * max30102.h 
 +  * U8glib.h 
 +  * Arduino.h
  
 +**Activity diagram**
 +{{ :​pm:​prj2021:​abirlica:​SchemaSoftTensiometru.png?​600 |}}
  
 +**Pe Arduino**
 +
 +Programul functioneaza astfel: ​
 +Pana nu se introduce de la tastatura un caracter masuratoarea nu incepe. Se colecteaza datele intr-un for de la 1 la 100 astfel obtinandu-se o valoare cat mai aproape de realitate. Daca rezultatul obtinut dupa este valid conform algoritmului se trimit datele prin serial la Pi, spre SD card alaturi de data si ora la care s-au inregistrat(aici apare un delay de max 2s), si datele spre ecrane ca sa se afiseze. ​
 +La inceput se verifica si daca exista un SD card returnand o eroare in caz contrar. ​
 +
 +**Pe Pi**
 +
 +Datele se primesc una pe un rand despartite de un caracter, astfel putand sa se faca distinctia intre HR si SPO2. Dupa se ploteaza rezultatul cu ajutorul biblioteci matplotlib.pyplot.
 +
 +**Pe partea de parsare SD**
 +
 +Aici intervine o parsare simpla de text.
 +
 +
 +Ca si algoritmi folositi am ales sa raman la algoritmul oferit de producatorul senzorului (varianta originala nu era compatibia cu MEGA)  usor modificat gasit [[https://​github.com/​aromring/​MAX30102_by_RF| aici]]. Acest algoritm calculeaza HR si SPO2 folosind datele de la senzor.
 +
 +===== Rezultate =====
 +{{ :​pm:​prj2021:​abirlica:​TensiometruRezultateSIC701.jpg?​600 |}}
 +{{ :​pm:​prj2021:​abirlica:​TensiometruRezultateSIC742.jpg?​600 |}}
 +{{ :​pm:​prj2021:​abirlica:​TensiometruRezultateSIC142.jpg?​600 |}}
 +{{ :​pm:​prj2021:​abirlica:​TensiometruRezultateSIC8.jpg?​600 |}}
 +{{ :​pm:​prj2021:​abirlica:​TensiometruRezultateSIC00.jpg?​600 |}}
 +
 +==== Demo ====
 +
 +Cum am zis si in [[ https://​youtu.be/​EvRmBBJJen0| demo]] am atasat graficele dupa rulare alaturi de datele optinute
 +
 +{{ :​pm:​prj2021:​abirlica:​testVideoDemo.png?​600 |}}
 +{{ :​pm:​prj2021:​abirlica:​outputSDDemoVideo.jpg?​600 |}}
 +{{ :​pm:​prj2021:​abirlica:​hrSDPlot.jpg?​600 |}}
 +{{ :​pm:​prj2021:​abirlica:​spo2SDPlot.jpg?​600 |}}
 +
 +===== Concluzii =====
 +
 +In concluzie, acest proiect ma ajutat sa invat comunicarea dintre Arduino si Raspberry pi w 0, de la utilizarea unui divizor de tensiune la comunicarea intre acestea. Aceasta infromatie fiind utila pentru viitoare proiecte pentru conectare mai usoara la internet a placutei arduino. :) 
 + 
 +Ca si alte parti bune intra si lipitul pinilor (trebuie o atentie sporita sa nu strici componentele de pe langa).
 +
 +
 +===== Bibliografie/​Resurse =====
 +  * [[https://​roboromania.ro/​produs/​placa-de-dezvoltare-mega-2560-ch340-cablu-usb-compatibila-arduino/​|Arduino MEGA 2560]]
 +  * [[https://​github.com/​aromring/​MAX30102_by_RF| Algoritm calcul MAX_RF]]
 +  * [[ https://​youtu.be/​EvRmBBJJen0| Demo YT]]
 +  * [[https://​www.maximintegrated.com/​en/​support/​videos/​2019/​vid_how_to_set_up_the_maxrefdes117_heart_rate_and_pulse_oximetry_monitor_with_an_arduino_board.html | Video Producator setare senzor Arduino UNO]]
 +  * Mare parte din piese [[https://​www.optimusdigital.ro/​ro/​]|Optimus Digital]]
 +  * https://​roboticsbackend.com/​raspberry-pi-arduino-serial-communication/​
 +  * Restul de pe [[https://​roboromania.ro/​]|RoboRomania]]
 +  * [[https://​github.com/​CristiSandu/​Tensiometru-cu-MAXREFDES117-si-Raspberry-pi|GitHub Code Link ]]
 <​note>​Link catre pagina: https://​ocw.cs.pub.ro/​courses/​pm/​prj2021/​abirlica/​455 </​note>​ <​note>​Link catre pagina: https://​ocw.cs.pub.ro/​courses/​pm/​prj2021/​abirlica/​455 </​note>​
 +  ​
 +
 +
pm/prj2021/abirlica/455.1621178368.txt.gz · Last modified: 2021/05/16 18:19 by ilie_cristian.sandu
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