RoboMop-The Remote Controlled Cleaning Robot
A smart cleaning robot controlled via WiFi with obstacle detection and LCD feedback.
Author: Manole Eliza-Maria
GitHub Project Link: https://github.com/UPB-PMRust-Students/fils-project-2026-elizamanole
Description
RoboMop is a multi-sensor autonomous cleaning robot built on a 4WD car platform and is controlled by a Nucleo STM32U545RE-Q microcontroller, but also has remote WiFi capabilities through the ESP32 controller. My system uses multiple ultrasonic sensors for environmental which facilitate obstacle avoidance and navigation. The machine has a dual servo-driven mechanism placed at the rear side that moves up and down and side to side creating a real cleaning motion with the help of a sponge. Also, an LCD display is placed on the machine to monitor the cleaning status and the runtime.
Motivation
The goal of this project is to create a simple, low-cost and very practical cleaning robot that uses embedded systems programming in Rust, Real-Time motor and servo control autonomous movement with the help of the 4 different wheel motors and multiple other components. Personally, I love cleaning and this robot helps me keep my room tidy easily.
Architecture
The system is structured around two main subsystems: the real-time control unit and the communication unit. The STM32 communicates with all components through different interfaces:
- GPIO: ultrasonic sensors for obstacle detection that are placed on the front and sides of the car
- PWM: controls DC motors via L298N and the servo motors for the cleaning mechanism
- I2C: LCD Display that is used for the cleaning status and runtime
- UART: Communication with ESP32 for WiFi control and data exchange
- Timers: Used for precise timing and task scheduling
Log
Week 2-4
Form my first ideas and search ideas for my project.
Week 5-7
Researched the market for the adequate components for the RoboMop and placing all the orders.
Week 8
I received the components and tested them to ensure proper functionality.
Week 9
Starting to assemble the project.
Hardware
The physical pary of my project consists of the STM32U545RE-Q microcontroller as the main source of processing power. The ESP32 module enables the user to remotely communicate with the STM32 in order to give out commands.The ultrasonic sensors detect any unwanted objects in the way of the car, each wheel is powered by a motor and the most important part of the machine is the dual servo powered cleaning system that can move up and down and side to side in order for it to adapt to different cleaning scenarious.
Schematics
Bill of Materials
| Device | Usage | Price |
|---|---|---|
| STM32 Nucleo U545RE-Q | The main microcontroller used | 126 RON |
| ESP32 Development Board | Wi-Fi communication module | 41.19 RON |
| L298N Dual H-Bridge Motor Driver | Controls DC motors | 11 RON |
| Smart Car 4WD Chassis Kit | Robot structure and mobility | 83 RON |
| SG90 Servo Motor(180 degrees) | Drives cleaning mechanism | 19 RON |
| Servo Mount(2-axis PT for SG90) | Supports cleaning mechanism | 8.5 RON |
| HC-SR04 Ultrasonic Sensor | Obstacle detection system | 30 RON |
| HC-SR04 Sensor Mount | Mechanical support for sensors | 12 RON |
| LCD 1602 16x2 Display 5V | Displays runtime and cleaning status | 11 RON |
| I2C Interface Module for LCD 1602 | Enables I2C communication | 5 RON |
| Battery Holder 6xAA with switch | Power supply | 11.5 RON |
| AMS1117 Voltage Regulator | Voltage stabilization | 5 RON |
| Active Buzzer | Sound feedback | 8.5 RON |
| PCB Prototyping Board | Final circuit mounting | 10 RON |
| Silicone Wires | Electrical connection between components | 10 RON |
Software
| Library | Description | Usage |
|---|---|---|
| embassy-stm32 | Async HAL for STM32 microcontrollers | Controls GPIO, PWM(motors, buzzer,servo),I2C(LCD) and UART(ESP32) |
| embassy-executor | Async task executor | Runs concurrent tasks such as sensor reading and motor control |
| embassy-time | Timing library | Handles delays and runtime measurement |
| embedded-hal | Hardware abstraction layer | Provides generic interfaces for sensors and motors/servos |
| cortex-m | Low-level microcontroller support | Access to STM32 core features |
| panic-probe | Debugging tool | Used for error handling and debugging |
| esp-idf-hal | ESP32 HAL | Controls ESP32 hardware |
| esp-idf-svc | WiFi services | Enables communication between ESP32 and STM32 |