Open-Source Real-Time Biomechanical Tracking and Visualization System for Sports Rehabilitation and Research
Authors/Creators
Description
Project Description
In this project, we developed a wearable, open-source, and low-cost system for tracking biomechanical signals in research, healthcare, and sports. The system is composed of one or more bracelets equipped with a gyroscope and, optionally, a pulse oximeter. These bracelets measure velocity, acceleration, angular motion, heart rate, body temperature, and oxygen saturation at specific points on the body (e.g., joints). Data is continuously transmitted wirelessly to an ESP32, which communicates via serial connection with a computer. Using the provided GUI, the computer displays real-time body motion in two ways:
-
A 3D human model (showing acceleration, velocity, and angular motion).
-
A 2D signal plot (showing all recorded signals).
The GUI also provides additional features, such as acquiring ECG or EMG signals using our electronic design, controlling a robotic arm, or replaying simulations of previously captured motion data.
We included the following files:
-
-
bracelet_without_pulse.ino – Firmware for the bracelet with gyroscope only (no MAX30102), for studies or projects where pulse oximetry is not required.
-
bracelet.ino – Firmware for the bracelet with both gyroscope and MAX30102 pulse oximeter.
-
OS_ESP32.ino – Firmware for the ESP32, which functions as a “dongle” to synchronize the bracelets and send data to the computer and GUI.
-
GUI.zip – Source code for the GUI. Some modifications may be required depending on the operating system.
- Bracelet_schematic.jped: Schematic of the hardware of the bracelet with the MAX30102 (if you want, you can remove this sensor).
-
-
- Proposed_electronical_system.jpeg: Schematic of the electronical system for obtaining ECG and EMG singals by using the same ESP32.
Files
Bracelet_schematic.jpeg
Additional details
Dates
- Submitted
-
2025-09-07Upload date
Software
- Programming language
- JavaScript , C++ , C
- Development Status
- Active