Skip to main content
Version: ACS CC

MyRoboAssistant

Listen. Respond. Connect.

info

Student: Savchuk Kostiantyn \ GitHub Repository: proiect-st-savciucc


Description​

MyRoboAssistant is a mid-sized (≈ 140 cm × 80 cm) mobile robot focused on natural voice interaction and emotional feedback.
It suggests useful tips, shows animated emotions on a TFT screen and can be extended through a companion mobile app.

Motivation​

The project blends my passion for robotics with the memory-safety and concurrency guarantees of Rust.
A Raspberry Pi Pico 2 W handles timing-critical control, while an ESP32 DevKit leverages cloud AI for advanced conversation.

Architecture​

Hardware architecture

Components & data paths

Log​

Week 5 – 11 May:​

Project kickoff with initial requirement gathering.

Week 12 – 18 May:​

Development sprint focusing on hardware functionality.

Week 19 – 25 May:​

Implemented the software and ran tests.


Hardware​

BlockModule(s)Role & Highlights
Processing (dual-MCU)• Raspberry Pi Pico 2 W — real-time controller (Rust / embassy-rs)
• ESP32 DevKit v1 — Wi-Fi, BLE, speech-to-text, ChatGPT API, text-to-speech
Safety-critical I/O on Pico; cloud & audio tasks on ESP32
Power• Li-Po 2 S 7.4 V 4000 mAh
• XL4015 5 A buck
Portable supply; 5 V system rail (peak 5 A)
Audio INMAX9814 electret mic pre-amp (AGC)Low-noise voice capture
Audio OUTMAX98357A I²S DAC + mini-speakers3 W mono bridge driven by ESP32
User Feedback• Waveshare 2.8″ TFT SPI (ST7789) + on-board buzzerEmojis / menus / beeps
Locomotion• 2 × 6 V DC gear-motors + L298N driverTank-style differential drive
Gestures• 2 × SG90 micro-servos (arms)
• 1 × MG996R high-torque servo (head)
Expressive arm & head motion
Sensing• IOE-SR05 ultrasonic (UART)Obstacle / proximity detection

Hardware Blocks​

Raspberry Pi Pico 2 W​

Role: Central microcontroller, manages I/O and overall device logic
Connections:

  • TFT display (SPI)
  • Ultrasonic sensors (GPIO trigger/echo)
  • I2S microphone (I2S data/clk)
  • Speaker via I2S DAC
  • DC motors + L298N driver (GPIO + PWM)
  • SG90 servo (PWM)

TFT Display (ST7735 480×320)​

Interface: SPI
Connections:

  • SDA (MOSI) → Pico SPI MOSI pin
  • SCL (SCK) → Pico SPI SCK pin
  • DC, RST, CS → separate GPIOs
    Role: Shows emotions, status, and menu

DC Motors + Wheels​

Interface: Powered via L298N driver
Connections:

  • IN1–IN4 → Pico GPIO for direction
  • EN1–EN2 → Pico PWM for speed
    Role: Locomotion

L298N Dual Motor Driver​

Interface: GPIO + PWM
Connections:

  • VCC, GND → battery/charger
  • IN1–IN4, EN1–EN2 → Pico
  • OUT1–OUT4 → motors
    Role: Drives the DC motors

SG90 Micro Servo​

Interface: PWM
Connections:

  • Control → Pico PWM pin
  • Power → 5 V + GND
    Role: Arm gesture

Ultrasonic Sensors (HC-SR04)​

Interface: GPIO
Connections:

  • Trigger → Pico GPIO
  • Echo → Pico GPIO
    Role: Proximity detection

I2S Microphone​

Interface: I2S
Connections:

  • WS, CK, SD → Pico I2S pins
    Role: Voice input

I2S DAC (MAX98357A) + Speaker​

Interface: I2S
Connections:

  • BCLK, LRCLK, DIN → Pico I2S pins
  • Speaker → output of MAX98357A
    Role: High-quality audio output

Schematics​

The full schematic was drawn in KiCad v9 and covers every connection between modules, power rails and connectors.

KiCad schematic overview

Photos​

MyRoboAssistant prototype

Bill of Materials​

Device (link to datasheet)UsagePrice (link to store)
Raspberry Pi Pico 2 WCentral real-time controller (Rust/embassy)40 RON
ESP32 DevKit v1Wi-Fi/BLE & cloud-AI tasks70 RON
Li-Po 7.4 V 4000 mAhPower supply139 RON
XL4015 5 A buck converter5 V system rail (DC-DC down-conversion)17 RON
MAX9814 mic pre-ampElectret microphone pre-amplifier13 RON
MAX98357A I²S DACHigh-quality audio output21 RON
Mini 8 Ω speaker pair (Ø 28 mm)Audio playback20 RON
Waveshare 2.8″ TFT SPIDisplay UI (emotions & menus)155 RON
L298N dual motor driverDC motor driving10 RON
DC motor + wheel set (×2)Tank-style locomotion45 RON
SG90 micro-servoArm gestures24 RON
MG996R metal-gear servoHead gestures34 RON
IOE-SR05 ultrasonic (UART)Obstacle/proximity detection28 RON
Consumables (buttons, potentiometers, wires, etc.) (misc.)Miscellaneous assembly & wiring50 RON

Prices are list prices (May 2025) from OptimusDigital / eMAG.


Software​

Library / CrateDescriptionUsage
embassy / embassy-netAsync runtime & networkingCore framework for async tasks & Wi-Fi/BLE
embedded-halHardware Abstraction LayerStandardized traits for MCU peripherals
heaplessFixed-capacity data structuresQueues, Vec, String without heap usage
serde / serde_jsonSerializationConfig data & message encoding/decoding
embedded-graphics2D graphics libraryRendering UI primitives on the TFT
rust-voiceSpeech recognitionKeyword spotting & voice command parsing

Main Firmware Tasks​

  • comm – Wi-Fi / BLE connection & messaging
  • emotion_display – emoji animation on TFT
  • motion_control – motor & servo control
  • speech – audio capture & keyword spotting

Software flow


  1. Raspberry Pi Pico 2 W – official docs