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 (approx. 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 via a companion mobile app.

Motivation

This project combines my passion for robotics with safe, high-performance embedded Rust. Rust (via the embassy-rs framework) guarantees memory-safe firmware, while the Raspberry Pi Pico 2 W provides built-in Wi-Fi/BLE for easy connectivity.

Architecture

Hardware Architecture

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

Weekly Log

PeriodStatus
Week 5 – 11 MayWIP…
Week 12 – 18 MayWIP…
Week 19 – 25 MayWIP…

Bill of Materials (BOM)

ComponentQtyPrice (RON)
Raspberry Pi Pico 2 W140
Pb-acid 6 V 12 Ah battery + charger134
Micro metal DC gear-motor2159
L298N dual motor driver110
SG90 micro servo412
3.5″ TFT 480 × 320 touchscreen1309
HC-SR04 ultrasonic sensor215
PDM MEMS microphone (I2S-capable)144
Mini speaker + AMP170
Consumables (buttons, potentiometers, wires, etc.)Various50

Software Design

Library / CrateDescriptionUsage
embassy / embassy-netAsynchronous runtime & networkingCore framework for async tasks & Wi-Fi/BLE
embedded-halHardware abstraction layerStandardized traits for MCU peripherals
heaplessFixed-size data structuresQueues, Vec, String without heap use
serde / serde_jsonSerializationConfig data & message encoding/decoding
embedded-graphics2D graphics on TFTRendering emojis & UI
rust-voiceSpeech recognitionKeyword spotting & voice command handling

Main Firmware Tasks

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

Software Flow