This shows you the differences between two versions of the page.
pm:prj2024:rpascale:alexandra.calota02 [2024/05/05 21:37] alexandra.calota02 created |
pm:prj2024:rpascale:alexandra.calota02 [2024/05/27 17:20] (current) alexandra.calota02 |
||
---|---|---|---|
Line 1: | Line 1: | ||
====== Fitness tracker ====== | ====== Fitness tracker ====== | ||
===== Introducere ===== | ===== Introducere ===== | ||
- | Acest proiect presupune construirea unui dispozitiv portabil de monitorizare a activitatii fizice, care utilizeaza o placuta Arduino, un accelerometru si un modul Bluetooth prin intermediul caruia datele de miscare vor fi transmise la un dispozitiv mobil, unde vor fi procesate și utilizate pentru a calcula numarul de pasi, distanta parcursa si estimarea caloriilor arse de utilizator. | + | Acest proiect presupune construirea unui dispozitiv portabil de monitorizare a activitatii fizice, care utilizeaza o placuta Arduino, un accelerometru si un modul Bluetooth prin intermediul caruia datele de miscare vor fi transmise la un dispozitiv mobil, unde vor fi procesate si utilizate pentru a calcula numarul de pasi si estimarea caloriilor arse de utilizator. |
===== Descriere generală ===== | ===== Descriere generală ===== | ||
Modul de interactiune a modulelor utilizate in proiect: | Modul de interactiune a modulelor utilizate in proiect: | ||
- | * Unordered List ItemUtilizatorul porneste dispozitivul de monitorizare a activitatii fizice si conecteaza telefonul mobil la aplicatia dedicata. | + | * Utilizatorul porneste dispozitivul de monitorizare a activitatii fizice, pornind alimentarea de la baterie si conecteaza telefonul mobil la aplicatia dedicata. |
* Arduino Uno primeste date de la accelerometru, colectand informatii despre miscarea corpului utilizatorului. | * Arduino Uno primeste date de la accelerometru, colectand informatii despre miscarea corpului utilizatorului. | ||
- | * Datele de miscare sunt prelucrate de placuta Arduino pentru a calcula numarul de pasi, distanta parcursa si caloriile arse. | + | * Datele de miscare sunt prelucrate de placuta Arduino pentru a calcula numarul de pasi si caloriile arse. |
* Placuta Arduino trimite datele procesate catre modulul Bluetooth pentru transmiterea catre aplicatia mobila. | * Placuta Arduino trimite datele procesate catre modulul Bluetooth pentru transmiterea catre aplicatia mobila. | ||
* Aplicatia mobila primeste datele de miscare de la tracker prin intermediul conexiunii Bluetooth si le afiseaza utilizatorului. | * Aplicatia mobila primeste datele de miscare de la tracker prin intermediul conexiunii Bluetooth si le afiseaza utilizatorului. | ||
* Utilizatorul poate vizualiza statisticile de fitness si sa isi urmareasca progresul in activitatea sa fizica. | * Utilizatorul poate vizualiza statisticile de fitness si sa isi urmareasca progresul in activitatea sa fizica. | ||
+ | |||
+ | {{:pm:prj2024:rpascale:untitled_diagram.png?800|}} | ||
===== Hardware Design ===== | ===== Hardware Design ===== | ||
Line 16: | Line 18: | ||
Lista de componente utilizate: | Lista de componente utilizate: | ||
* Arduino Uno | * Arduino Uno | ||
- | * Modul Bluetooth HC-06 | + | * Modul Bluetooth HC-05 |
* Senzor MPU-6050 | * Senzor MPU-6050 | ||
* Breadboard | * Breadboard | ||
* Fire de conexiune | * Fire de conexiune | ||
+ | * Baterie de 9V | ||
+ | |||
+ | __Modulul Bluetooth HC-05__ se conecteaza la Arduino pentru a transmite datele catre telefonul mobil. | ||
+ | |||
+ | Pini utilizati: | ||
+ | * TX (de transmitere) al modulului Bluetooth conectat la pinul RX (de primire) al placutei Arduino. | ||
+ | * RX al modulului Bluetooth conectat la pinul RX al placutei Arduino. | ||
+ | * Pinul VCC al modulului Bluetooth conectat la pinul de alimentare de 5V al Arduino Uno. | ||
+ | * Pinul GND al modulului Bluetooth la un pin GND al Arduino Uno. | ||
+ | Conexiunea aceasta permite comunicarea seriala intre Arduino si modulul Bluetooth. | ||
+ | |||
+ | __Senzorul MPU-6050__ (accelerometru si giroscop) va masura miscarea si orientarea dispozitivului. | ||
+ | |||
+ | Pini utilizati: | ||
+ | * VCC al senzorului conectat la pinul de alimentare de 5V al placutei Arduino. | ||
+ | * GND al senzorului conectat la un pin GND al Arduino Uno. | ||
+ | * Pinul SDA al senzorului conectat la pinul analogic A4 al Arduino. Acest pin al senzorului permite transmiterea si receptionarea datelor. | ||
+ | * Pinul SCL al senzorului conectat la pinul analogic A5 al Arduino. Acest pin al senzorului furnizeaza semnalul de ceas utilizat pentru sincronizarea transmiterii si receptionarii datelor. | ||
+ | Conexiunea aceasta permite comunicarea I2C intre senzorul MPU-6050 si Arduino Uno. | ||
+ | |||
+ | |||
+ | |||
+ | {{:pm:prj2024:rpascale:electric.png?700|}} | ||
===== Software Design ===== | ===== Software Design ===== | ||
+ | Mediul de dezvoltare utilizat este Arduino IDE. Codul este structurat in mai multe sectiuni pentru a gestiona diferitele functii ale dispozitivului: initializarea componentelor hardware, citirea datelor de la accelerometru, calcularea numarului de pasi si a caloriilor arse, si trimiterea datelor catre modulul Bluetooth pentru afisare pe aplicatia mobila. | ||
+ | Proiectul utilizeaza urmatoarele librarii externe: | ||
+ | |||
+ | * Wire.h pentru comunicarea I2C cu senzorul MPU-6050. | ||
+ | * EEPROM.h pentru stocarea persistenta a datelor, cum ar fi numarul de pasi. | ||
+ | * SoftwareSerial.h pentru comunicarea seriala cu modulul Bluetooth HC-05. | ||
+ | |||
+ | Codul sursa pentru firmware-ul acestui proiect include functii specifice pentru fiecare etapa a procesului de monitorizare a activitatii fizice: | ||
+ | |||
+ | * resetEEPROM(): Reseteaza datele stocate in EEPROM. | ||
+ | * setup(): Configureaza initializarile hardware si asteapta introducerea greutatii utilizatorului prin intermediul Bluetooth. | ||
+ | * loop(): Bucla principala a codului care se executa continuu, citind datele de la accelerometru, detectand pasii, calculand caloriile si afisand datele. | ||
+ | * readAccelerometerData(): Citeste datele de la senzorul MPU-6050. | ||
+ | * saveStepCount(): Salveaza numarul de pasi in EEPROM. | ||
+ | * detectStep(): Detecteaza pasii pe baza datelor de acceleratie. | ||
+ | * calculateCalories(): Calculeaza caloriile arse pe baza numarului de pasi si a greutatii utilizatorului. | ||
+ | * displayData(): Trimite datele procesate prin Bluetooth catre aplicatia mobila. | ||
+ | |||
+ | Cod sursa proiect: https://github.com/Alexandraacalota/Proiect-PM/blob/main/proiect.ino | ||
- | <note tip> | + | Imagini cu proiectul si rezultatele obtinute in terminalul Bluetooth de pe telefonul mobil: https://github.com/Alexandraacalota/Proiect-PM. |
- | Descrierea codului aplicaţiei (firmware): | + | Am testat pentru 3 persoane diferite, cu numarul lor aferent de kg. Se afiseaza la fiecare nou pas numarul lor de pana atunci si al caloriilor arse. |
- | * 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 ===== | ===== Rezultate Obţinute ===== | ||
- | <note tip> | + | Acest proiect de monitorizare a activitatii fizice ofera utilizatorilor o modalitate accesibila de a-si urmari progresul in fitness. Prin utilizarea unui modul Bluetooth, datele sunt transmise in timp real catre un dispozitiv mobil, permitand utilizatorilor sa-si monitorizeze numarul de pasi si caloriile arse. |
- | Care au fost rezultatele obţinute în urma realizării proiectului vostru. | + | |
- | </note> | + | |
===== Concluzii ===== | ===== Concluzii ===== |