Skip to main content
Version: FILS English

Autonomous Context-Aware Thermal Rover

A mobile, dual-axis targeting and navigation system that autonomously patrols an environment, avoids obstacles, and tracks human heat signatures using Rust and the Embassy framework.

info

Author: Stancu Vlad-Gabriel \

GitHub Project Link: https://github.com/UPB-PMRust-Students/fils-project-2026-Vledituz

Description

The Autonomous Context-Aware Thermal Rover navigates using an ultrasonic sensor to avoid collisions. When the onboard 8x8 infrared matrix detects a heat signature, the rover halts its patrol, and a motorized pan-tilt turret locks onto the target. Depending on the ambient room lighting (detected via a photoresistor), the system dynamically switches between a passive observation mode and an active "Night Watch" mode, engaging a laser diode payload. Live telemetry and the thermal map are displayed on a local SPI LCD and streamed over Wi-Fi to a remote web dashboard.

Motivation

I was always fascinated with the world of security measures and embedded systems. I intend to make a project that would actually prove useful down the line after more work put into it in high risk areas such as museums, banks, etc.

Architecture

The system relies on an STM32U545RE-Q acting as the central processing unit, running concurrent async tasks.

  • Perception: An AMG8833 Thermal Camera (I2C) scans for heat, an HC-SR04 Ultrasonic Sensor (GPIO/Timers) handles spatial distance, and an LDR (ADC) monitors ambient light.
  • Actuation: Four DC motors are driven by an L298N Motor Driver receiving PWM signals for mobility. Two SG90 servos receive 50Hz PWM signals to aim the thermal turret. A 5V Laser Diode acts as the GPIO-controlled payload.
  • Interface & Connectivity: An ST7735 1.44" LCD (SPI) provides local UI rendering. An ESP32-C3 co-processor communicates with the STM32 via USART AT commands to host a TCP web server for remote monitoring.
  • Power Management: A 4xAA battery pack supplies power to the L298N driver, which handles the high-current DC motors and servos. The microcontrollers and logic-level sensors are powered independently to prevent voltage brownouts.

Log

Weeks 4-5

Project setup, embassy-stm32 initialization, and establishing I2C communication with the AMG8833 sensor to output raw matrix data over the debugger.

Weeks 5-6

Configuring PWM timers for the SG90 servos and the L298N motor driver; basic movement calibration and HC-SR04 distance integration.

Weeks 7-8

ADC polling for the LDR, SPI configuration for the ST7735 display.

Hardware

The rover's chassis will be created out of lego bricks to ensure it is both lightweight and sturdy. All components will be soldered on a prototyping board, with extension wires to make it aestethically more pleasing and allow breathing room for further expansion. The main sensor, the AMG8833, will be mounted at the very fron on a pan-tilt bracket with 2 SG90 servomotors to allow a wide scannable area.

Schematics

(Insert your KiCAD schematic here in SVG format)

Bill of Materials

DeviceUsagePrice
STM32U545RE-Q NucleoThe main microcontroller running the Embassy async executor~110 RON
ESP32-C3 SuperMiniWi-Fi Bridge for the remote web dashboard~25 RON
AMG8833 IR Sensor8x8 I2C Thermal Camera for heat detection~200 RON
ST7735 1.44" SPI TFT LCDLocal UI and thermal map visualization~25 RON
HC-SR04 Ultrasonic SensorObstacle avoidance / Distance measuring~15 RON
L298N Motor DriverHigh-current switching for chassis DC motors~14 RON
4x TT DC Motors with Wheels4WD Rover Mobility~40 RON
2x SG90 Micro-Servos with brackets180-degree Pan-Tilt Turret aiming~30 RON
5V Laser Diode ModuleVisual targeting payload~12 RON
Photoresistors & 10kΩ ResistorsAmbient light detection via ADCAlready owned
Protoboard, Headers, 4xAA BoxPhysical assembly and power distributionAlready owned

Software

LibraryDescriptionUsage
embassy-stm32Core Hardware Abstraction LayerConfigures STM32 peripherals (I2C, SPI, UART, PWM, ADC)
embassy-executorAsync ExecutorManages concurrent task spawning and non-blocking execution
st7735-lcdDisplay driver for ST7735Pushing pixel data over SPI to the 1.44" screen
embedded-graphics2D graphics libraryRendering the thermal grid and text onto the display
heaplessno_std data structuresFormatting JSON strings safely to send over UART
defmtHighly efficient logging frameworkHardware debugging over the Nucleo ST-LINK
  1. Embassy Framework Documentation
  2. STM32U545RE Reference Manual
  3. AMG8833 Documentation