MyRoboAssistant
Listen. Respond. Connect.
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
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
Block | Module(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 IN | MAX9814 electret mic pre-amp (AGC) | Low-noise voice capture |
Audio OUT | MAX98357A I²S DAC + mini-speakers | 3 W mono bridge driven by ESP32 |
User Feedback | • Waveshare 2.8″ TFT SPI (ST7789) + on-board buzzer | Emojis / menus / beeps |
Locomotion | • 2 × 6 V DC gear-motors + L298N driver | Tank-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.
Photos
Bill of Materials
Device (link to datasheet) | Usage | Price (link to store) |
---|---|---|
Raspberry Pi Pico 2 W | Central real-time controller (Rust/embassy) | 40 RON |
ESP32 DevKit v1 | Wi-Fi/BLE & cloud-AI tasks | 70 RON |
Li-Po 7.4 V 4000 mAh | Power supply | 139 RON |
XL4015 5 A buck converter | 5 V system rail (DC-DC down-conversion) | 17 RON |
MAX9814 mic pre-amp | Electret microphone pre-amplifier | 13 RON |
MAX98357A I²S DAC | High-quality audio output | 21 RON |
Mini 8 Ω speaker pair (Ø 28 mm) | Audio playback | 20 RON |
Waveshare 2.8″ TFT SPI | Display UI (emotions & menus) | 155 RON |
L298N dual motor driver | DC motor driving | 10 RON |
DC motor + wheel set (×2) | Tank-style locomotion | 45 RON |
SG90 micro-servo | Arm gestures | 24 RON |
MG996R metal-gear servo | Head gestures | 34 RON |
IOE-SR05 ultrasonic (UART) | Obstacle/proximity detection | 28 RON |
Consumables (buttons, potentiometers, wires, etc.) (misc.) | Miscellaneous assembly & wiring | 50 RON |
Prices are list prices (May 2025) from OptimusDigital / eMAG.
Software
Library / Crate | Description | Usage |
---|---|---|
embassy / embassy-net | Async runtime & networking | Core framework for async tasks & Wi-Fi/BLE |
embedded-hal | Hardware Abstraction Layer | Standardized traits for MCU peripherals |
heapless | Fixed-capacity data structures | Queues, Vec, String without heap usage |
serde / serde_json | Serialization | Config data & message encoding/decoding |
embedded-graphics | 2D graphics library | Rendering UI primitives on the TFT |
rust-voice | Speech recognition | Keyword 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