This is an old revision of the document!
Gym Tracker
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 |
Jumper | |
MyoWare Muscle Activity Sensor | 1 |
Rezistoare | multe |
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:
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ă)
Bibliografie/Resurse