Gym Tracker

Autor: Rosca Cvintilian

Grupa: 332CA

Introducere

Proiectul Gym Tracker constă într-un set de 2 dispozitive care permit monitorizarea activităților sportive.

  • Primul dispozitiv, Box Analyzer Device, monitorizează intensitatea cu care un sac de box este lovit. Prin intermediul a 3 force sensors (plasate in pozițiile left, right and up), este posibil de a urmări progresul fiecărui utilizator in funcție de amplasarea si intensitatea loviturilor.
  • Al 2 dispozitiv este unul multipurpose. Permite monitorizarea activității musculare pe baza datelor colectate prin intermediul unui MyoWare Muscle Activity Sensor. Diferite grupuri de mușchi pot fi analizate, astfel, utilizând datele obținute, sportivul poate observa eficienta si corectitudinea exercițiilor efectuate.
  • Dispozitivele, prin intermediul unui Dongle, sunt conectate in mod wireless cu PC-ul utilizatorului. La nivel software, se integrează cu 2 aplicații dezvoltate in tehnologie JavaFX. Printre funcționalitățile prezente: Posibilitatea de a vedea in Real-Time datele colectate sub forma unor grafice de tip Line sau Bar Chart. Generarea unor rapoarte si salvarea lor într-un fișier, monitorizarea valorilor medii, generarea unor screenshot-uri a graficelor.

Schema bloc

Hardware Design

Dongle-ul si EMG device-ul au fost dezvoltate la nivel de PCB (utilizând ATmega328P si ATmega32U4). Din aceste considerente, e destul de complicata enumerarea tuturor componentelor utilizate. Lista de mai jos, include un set restrâns. Pentru vizualizarea tuturor, se pot analiza Bill of Materials pentru cele 3 PCB-uri.

Componentă Cantitate
Arduino UNO 1
Breadboard 1
ATmega328P 1
ATmega32U4 1
LCD 16 x 2 2
nRF24L01 3
Antena W3006 2
Battery 18650 2
Modul Battery Charger 1
Force Sensors 3
Push Button 5
MyoWare Muscle Activity Sensor 1

Schema electrică Dongle

Schema electrică Box Analyzer Device

La nivel de board, configuratia pentru cele 2 device-uri este similara

Schema electrică EMG Analyzer Device

Software Design

Mediul de dezvoltare

  • ARDUINO IDE → dezvoltarea codului pentru Dongle si dispozitive
  • Autodesk Eagle → realizarea schemei electrice si a board-urilor
  • IntelliJ IDEA → dezvoltarea aplicatiilor JavaFX
  • SceneBuilder → dezvoltarea UI
  • FUSION 360 → modelarea carcasei dispozitivelor
  • PRUSA Slicer → imprimarea carcaselor

Biblioteci folosite

  • SPI.h
  • EEPROM.h
  • Wire.h
  • DFRobot_LCD.h
  • nRF24L01.h
  • RF24.h

Implementare

La nivel de funcțional, ambele device-urile se integrează cu un dongle care are rolul de transmite datele colectate prin interfață serială PC-ului.

Flow-ul: Device ↔ Dongle ↔ Personal Computer

Între device si dongle, se realizează o procedură de pairing. Prin o apăsare de min. 5s a butonului prezent pe dongle, se verifica dacă mesajul captat este de tip Pair, caz în care se salvează in memorie ID-ul device-ului cuplat.

Payload-ul transmis către dongle este identic pentru ambele dispozitive constând într-o pereche ID dispozitiv si data. Rolul Dongle-ului este de a transmite aceste date către PC (app).

În cazul device-urilor, logica de pairing si transmitere a payload-ului este similara. Pentru Box Analyzer device, datele sunt colectate de la 3 force sensors, apeluri de tipul analogRead(). Au fost setate 2 valori de threshold pentru o filtrare a tensiunilor citite. La o apăsare de 1s a butonului, utilizatorul generează un nou dataset. (10 sec pentru a efectua procesul de pairing). Valorile citite cât și procentajul bateriei sunt afișate pe LCD-ul 16 x 2.

EMG device-ul colectează datele de la un MyoWare Muscle Activity Sensor. Ca si in cazul celuilalt device, inițializarea presupune o calibrare a datelor citite si anume 2 momente analizate: cazul in care grupul de mușchi este relaxat și contractat pentru limitele de threshold. Datele citite sunt afișate pe LCD, la fel si procentajul bateriei.

Integrarea Hardware ↔ Software se realizează prin intermediul a 2 aplicații dezvoltate pentru a facilita vizualizarea si analiza datelor colectate. Ambele sunt bazate pe tehnologie JavaFX si librăria JSerialCom.

Sunt expuse 2 modalități de utilizare:

  • FILE MODE → datele sunt citite dintr-un fișier selectat de utilizator.
  • LIVE MODE → datele sunt colectate prin intermediul interfeței seriale.

Ficționalități:

  • Vizualizarea datelor in forma unui Bar sau Line Chart
  • Posibilitatea de a filtra datele după proveniență (senzorul left, up sau right) in cazul la Box
  • Salvarea datelor primite într-un fișier
  • Introducerea a nume/prenume utilizator
  • Screenshot la graficele cu performanta sportivului
  • Editarea dataset-urilor prin ștergerea celor nenecesare
  • Vizualizarea valorii medii
  • Plot la o singura contracție/dataset

Rezultate Obţinute

EMG device + Dongle

Box Analyzer device (fază embrionară)

Concluzii

Realizarea proiectului a reprezentat o oportunitate de a aplica un set din knowledge-ul obtinut in cadrul a diferitor materii:

  • IC
  • OOP
  • PM
  • APD

Deasemenea, am avut oportunitatea de a invata lucruri noi, din categoria modelare 3D si familiarizare cu domeniul imprimarii 3D. Mi se pare un proiect util, care urmeaza a fi dezvoltat ulterior prin integrarea aplicatiei cu un WebService (work in progress…)

Jurnal

  • 12.04.2022: Definire idee proiect
  • 16.04.2022: Design PCB, comanda PCB
  • 22.04.2022: Design carcase dispozitiv
  • 27.05.2022: Finalizare prim dispozitiv, (PCBWay did its job), lipsa placuta pentru box analyzer (nu a ajuns in timp :*)
  • 27.05.2022: Ajustare pagina wiki

Bibliografie/Resurse

pm/prj2022/avaduva/gym-tracker.txt · Last modified: 2022/09/30 22:35 by cvintilian.rosca
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