Skip to content

Commit b7dfcfd

Browse files
Add 4WD Smart Rover project documentation (#801)
* Add 4WD Smart Rover project documentation * Update website/versioned_docs/version-fils_en/project/2026/mihnea.dunarintu/index.md Co-authored-by: Roy <152509155+frihetselsker@users.noreply.github.com> * Update website/versioned_docs/version-fils_en/project/2026/mihnea.dunarintu/index.md Co-authored-by: Roy <152509155+frihetselsker@users.noreply.github.com> --------- Co-authored-by: Roy <152509155+frihetselsker@users.noreply.github.com>
1 parent ad0c55d commit b7dfcfd

2 files changed

Lines changed: 190 additions & 0 deletions

File tree

website/versioned_docs/version-fils_en/project/2026/mihnea.dunarintu/architecture.svg

Lines changed: 102 additions & 0 deletions
Loading
Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,88 @@
1+
# 4WD Omni-Directional Smart Rover with Wi-Fi Teleoperation
2+
3+
A 4WD smart robotic rover powered by an STM32 Nucleo board, featuring mecanum wheels for lateral parking and Wi-Fi teleoperation.
4+
5+
:::info
6+
**Author:** Dunărinţu Mihnea-Rafael \
7+
**Group:** 1221ED \
8+
**GitHub Project Link:** [https://github.com/UPB-PMRust-Students/fils-project-2026-mihnearafael](https://github.com/UPB-PMRust-Students/fils-project-2026-mihnearafael)
9+
:::
10+
11+
## Description
12+
13+
The goal of this project is to build a 4WD smart robotic rover powered by an STM32 Nucleo board. The core software logic will be organized as a simple state machine, transitioning smoothly between the AUTONOMOUS_FORWARD, AUTONOMOUS_AVOID, MANUAL_CONTROL, SMART_REVERSE, LATERAL_PARKING, and STANDBY states based on sensor inputs, Wi-Fi commands, or physical hardware interrupts.
14+
15+
The car operates in two primary modes: an autonomous mode where it navigates independently using a front-facing ultrasonic sensor to detect and avoid obstacles, and a manual mode where it is piloted remotely. Thanks to the upgraded 4WD mecanum wheels, the rover is capable of omnidirectional movement, allowing for advanced maneuvers such as lateral parking.
16+
17+
For teleoperation, an ESP8266 module acts as a Wi-Fi bridge, allowing the user to control the rover's movements using a custom joystick. Additionally, the rover features an acoustic parking assist. When reversing, a rear-facing ultrasonic sensor continuously monitors the distance to obstacles behind the car, triggering a passive buzzer to beep faster as it approaches a wall. The user can switch between autonomous and manual modes via the Wi-Fi app, alternatively a custom joystick or by pressing the physical blue USER button on the Nucleo board as an instant failsafe override.
18+
19+
## Motivation
20+
21+
I chose this project to practically apply embedded systems concepts, particularly concurrent task scheduling and state machine logic. Upgrading from a standard 2WD differential drive to a 4WD mecanum system introduces interesting challenges in motor control and PWM synchronization. The addition of lateral parking and a custom joystick makes the system far more interactive and closer to modern automotive assist technologies.
22+
23+
## Architecture
24+
25+
The system is organized into five functional layers, centered around the STM32 Nucleo board:
26+
27+
1. **Power:** Two 18650 Li-Ion batteries provide 7.4V. This powers the motor drivers directly, while an LM2596 buck converter steps it down to a stable 5V for the microcontroller and sensors.
28+
2. **Mobility (4WD):** Four independent DC motors, equipped with mecanum wheels, are driven by two TB6612FNG motor controllers receiving PWM signals from the STM32.
29+
3. **Perception:** Three HC-SR04 ultrasonic sensors (front, rear, lateral) detect obstacles. Their 5V Echo signals are safely stepped down to the Nucleo's 3.3V logic via a level converter.
30+
4. **Communication:** An ESP-01S module establishes a Wi-Fi bridge, allowing the STM32 to receive remote control vectors from the custom joystick UI.
31+
5. **Feedback:** A 0.96" OLED display provides visual state information, while a passive buzzer emits variable-frequency acoustic warnings during reverse maneuvers.
32+
33+
## Log
34+
35+
### Week 1 - 9
36+
- Started with a 2WD Rover idea and eventually moved to 4WD and more complex features like parallel parking after receiving feedback.
37+
- Throughout the weeks I have gathered the materials needed to assemble the hardware of the kit and its adjacent components needed for the behaviour of the rover.
38+
39+
### Week 12 - 18 May
40+
### Week 19 - 25 May
41+
42+
## Hardware
43+
44+
The project relies on an STM32 Nucleo board as the main controller, communicating with an ESP8266 for remote commands. The chassis has been modified to support 4 independent DC motors and mecanum wheels for complex kinematics. Three ultrasonic sensors handle spatial awareness, while power is regulated via a buck converter to safely power the logic systems from the Li-ion batteries.
45+
46+
### Schematics
47+
48+
![Architecture Diagram](./architecture.svg)
49+
50+
### Bill of Materials
51+
52+
| Device | Usage | Price |
53+
| :--- | :--- | :--- |
54+
| STM32 Nucleo-U545RE-Q | Main microcontroller | 108.34 RON |
55+
| 4WD Smart Car Chassis Kit | Base physical platform | 83.24 RON |
56+
| 4x Omnidirectional (Mecanum) Wheels | Lateral/omnidirectional movement | 108.04 RON |
57+
| 2x TB6612FNG Motor Drivers | PWM control for the DC motors | 20 RON |
58+
| ESP-01S ESP8266 Wireless Module | Wi-Fi bridge for remote teleoperation | 18.99 RON |
59+
| Bluetooth Module HC-06 | Alternative wireless communication | 30.41 RON |
60+
| 3x HC-SR04 Ultrasonic Sensors | Obstacle detection (front & rear) | 40.12 RON |
61+
| 2-Axis Joystick Module | Custom remote control input | 5.45 RON |
62+
| OLED Display 0.96" I2C | Real-time status UI | 16.96 RON |
63+
| 3V / 3.3V Passive Buzzer | Acoustic parking assist feedback | 0.99 RON |
64+
| 2x Li-Ion Batteries & Battery Case | Main power supply | 72.09 RON |
65+
| Li-Ion Battery Charger Module | Battery management & charging | 9.99 RON |
66+
| LM2596 DC-DC Buck Converter | Voltage regulation (fixed 5V) | 12.99 RON |
67+
| Breadboard Power Supply & 9V Connector | Logic power distribution | 6.20 RON |
68+
| Prototyping PCBs & Breadboard | Component mounting & soldering | 22.98 RON |
69+
| Silicone Wires, Jumpers, & Pin Headers | Component interconnections | 71.40 RON |
70+
| Resistors, Capacitors, & Power Switch | Circuit filtering & power toggling | 22.88 RON |
71+
| M2 Hex Pillars | Hardware mounting | 9.95 RON |
72+
73+
## Software
74+
75+
| Library | Description | Usage |
76+
| :--- | :--- | :--- |
77+
| `embassy-stm32` | Hardware Abstraction Layer | Required to interface directly with the STM32 hardware registers and pins. |
78+
| `embassy-executor` | Async runtime | Responsible for scheduling concurrent, non-blocking tasks (driving motors while listening for Wi-Fi). |
79+
| `embassy-time` | Timer module | Essential for creating precise microsecond timers to calculate obstacle distances via HC-SR04. |
80+
| `embedded-hal` | Standard traits | Provides standard traits needed to communicate with external hardware safely. |
81+
| `defmt` & `defmt-rtt` | Logging framework | Highly efficient logging tools for real-time debugging over USB. |
82+
| `panic-probe` | Error handling | Catches critical firmware errors and prints backtraces. |
83+
| `heapless` | Data structures | Manages UART data stream from ESP8266 without dynamic allocation. |
84+
85+
## Links
86+
87+
1. [STM32 Nucleo-U545RE-Q Documentation](https://www.st.com/en/evaluation-tools/nucleo-u545re-q.html)
88+
2. [Embassy framework documentation](https://embassy.dev/)

0 commit comments

Comments
 (0)