Skip to content

Commit 2f6a768

Browse files
finished docs ioana.maraloi 2 (#1205)
1 parent 21afae7 commit 2f6a768

2 files changed

Lines changed: 104 additions & 0 deletions

File tree

Lines changed: 100 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,100 @@
1+
2+
# GPS Fitness Tracker
3+
A fitness tracking device that monitors physical activity by counting steps and recording GPS-based workouts, providing real-time statistics and storing workout data.
4+
:::info
5+
6+
**Author**: Maraloi Ioana \
7+
**GitHub Project Link**: https://github.com/UPB-PMRust-Students/acs-project-2026-Ioana-Maraloi
8+
9+
:::
10+
11+
<!-- do not delete the \ after your name -->
12+
13+
## Description
14+
15+
This project implements a fitness tracking device using a microcontroller programmed in Rust. The system operates in two modes. In daily mode, it detects steps using accelerometer data, estimates distance and calories, and displays real-time information on a screen. In training mode, activated via a button, it uses GPS data to track position, compute distance and speed, and record the route. The recorded data is saved in GPX format for later analysis.
16+
17+
## Motivation
18+
19+
I chose this project because it combines several important aspects of embedded systems, including sensor data processing, GPS-based measurements, and real-time data display. It provides a good balance between hardware interaction and software implementation, while also covering topics such as data acquisition, processing, and storage in a practical context.
20+
21+
## Architecture
22+
23+
<!--
24+
Add here the schematics with the architecture of your project. Make sure to include:
25+
- what are the main components (architecture components, not hardware components)
26+
- how they connect with each other -->
27+
28+
The system is centered around a processing module running on the STM32 microcontroller. It receives data from the sensor, GPS, and control modules, processes it, then sends the results to the display and storage modules.
29+
30+
Main architecture components:
31+
- **Control Module** – handles button input and mode switching
32+
- **Sensor Module** – provides motion data for step detection
33+
- **GPS Module** – provides position, speed, and time data
34+
- **Processing Module** – computes steps, distance, speed, calories, and workout state
35+
- **Display Module** – shows real-time activity information
36+
- **Storage Module** – saves workout data for later analysis
37+
38+
![alt text](schema_pm_ioana_maraloi.svg)
39+
40+
## Log
41+
42+
<!-- write your progress here every week -->
43+
44+
### Week 5 - 11 May
45+
46+
### Week 12 - 18 May
47+
48+
### Week 19 - 25 May
49+
50+
## Hardware
51+
52+
The system is built around an STM32 Nucleo development board, which interfaces with multiple peripherals for sensing, display, and storage.
53+
54+
An MPU6050 accelerometer module is used to detect motion and enable step counting. A NEO-6M GPS module provides location data for tracking distance, speed, and route information.
55+
56+
A 2.4" display is used to present real-time data to the user, including activity statistics and system status. User input is handled through push buttons, allowing mode switching and interaction.
57+
58+
Workout data is stored using a microSD card module, enabling later analysis. Additional components such as LEDs are used for status indication, while a breadboard, jumper wires, and resistors are used for prototyping and circuit connections.
59+
60+
### Schematics
61+
62+
Place your KiCAD or similar schematics here in SVG format.
63+
64+
### Bill of Materials
65+
66+
<!-- Fill out this table with all the hardware components that you might need.
67+
68+
The format is
69+
```
70+
| [Device](link://to/device) | This is used ... | [price](link://to/store) |
71+
72+
```
73+
74+
-->
75+
76+
| Device | Usage | Price |
77+
|--------|--------|-------|
78+
| [STM32 Nucleo-U545RE-Q ](https://www.st.com/en/evaluation-tools/nucleo-u545re-q.html) | The microcontroller | provided by university |
79+
| [ILI9341 2.4 inch display ](https://www.emag.ro/modul-lcd-2-4-240x320-pixeli-spi-controler-ili9341-3-3v-nykhqe-lcd-2-4-spi/pd/DNPYPD2BM/) | display for user interface and real-time data visualization | 80 RON |
80+
| [MPU6050 GY-521 accelerometer module](https://www.emag.ro/modul-giroscop-mpu-6050-gy-521-accelerometru-arduino-3-axe-2-1-cm-x-1-1-cm-x-0-3-cm-albastru-c7/pd/DL3G1QYBM/) | Measures motion and is used for step detection | 32 RON |
81+
| [MicroSD Card Module ](https://www.emag.ro/modul-de-expansiune-micro-sd-card-de-memorie-tf-pentru-arduino-dh000036/pd/DP8QQL3BM/) | Reads and writes data to the microSD card for storing workout logs | 19 RON |
82+
| [GPS Module NEO6MV2 ](https://sigmanortec.ro/Modul-GPS-6MV2-p125423363) | Provides location data for tracking distance, speed, and route | 30 RON |
83+
| microSD Card 8GB | Stores workout data and GPS logs | 5 RON |
84+
|Push buttons| User input for mode switching and interaction| 8 RON |
85+
| LEDs | Status indication and debugging | 5 RON |
86+
| Breadboard + Jumper Wires | prototyping and connecting components | 30 RON |
87+
| Resistors | Used for LEDs and buttons | 10 RON |
88+
89+
## Software
90+
| Library | Description | Usage |
91+
|---------|-------------|-------|
92+
| [embassy-rs](https://embassy.dev/) | Async embedded framework for Rust | Peripheral handling and task management |
93+
| [embedded-graphics](https://github.com/embedded-graphics/embedded-graphics) | 2D graphics library | Drawing text and graphics on the display |
94+
## Links
95+
96+
<!-- Add a few links that inspired you and that you think you will use for your project -->
97+
98+
1. https://embedded-rust-101.wyliodrin.com/docs/acs_cc/category/lab
99+
<!-- 2. [link](https://example3.com)
100+
... -->

0 commit comments

Comments
 (0)