IJ
Ivan Jovanovski
HomeProjectsLabResumeNowFuture Ideas
IJ
Ivan Jovanovski

Electrical Engineer building practical solutions in energy systems, automotive electronics, and embedded systems.

Navigation

  • Aerospace
  • Projects
  • Lab

Focus Areas

  • Energy Systems
  • Automotive Electronics

Connect

© 2025 Ivan Jovanovski. All rights reserved.

Voice-Actuated Autonomous Mobile Robot

STM32roboticsbare-metalPWMvoice-controlWhisper
General

Project Overview

STM32F303-based differential-drive robot with bare-metal C firmware, DMA-backed UART, center-aligned PWM motor control, and OpenAI Whisper voice command integration.

Version:v1.0
Time:~40.0 hours
Cost:~$120
Status:complete

Materials

  • STM32F303 Discovery Board × 1
  • DC Motors with Encoders × 2
  • H-Bridge Motor Driver × 1
  • Robot Chassis × 1
  • LiPo Battery × 1
  • USB-UART Adapter × 1

Tools

  • STM32CubeIDE
  • Logic Analyzer
  • Oscilloscope
  • Python 3

Build Steps

1. Bare-Metal Firmware

⏱️ ~12.0h

Developed bare-metal C firmware for STM32F303, using DMA-backed UART ring buffers to exchange commands and telemetry with a Python host script without blocking the main control loop.

2. PWM Motor Control

⏱️ ~8.0h

Configured advanced timers (TIM1) for center-aligned PWM to drive H-bridge motor stages, improving low-speed control and reducing switching noise on the motors.

3. Voice Command Integration

⏱️ ~6.0h

Connected the robot to a PC running OpenAI Whisper; a simple Python TCP bridge converted spoken commands (e.g., 'forward', 'left', 'stop') into motion commands that the firmware executed.

Results

Reliable voice-controlled indoor navigation with responsive motor control.

  • Command Latency: <500 ms
  • Voice Recognition: 95+ %

Safety Notes

Keep fingers away from wheels during operation. Use low voltage batteries.