Skip to main content
Version: FILS English

AeroGlove: Interactive Gamepad

A wearable, motion-controlled gaming interface.

info

Author: Boinegri Ștefania-Denisa
GitHub Project Link: https://github.com/UPB-PMRust-Students/fils-project-2026-dboinegri-hue

Description

AeroGlove is a wearable, motion-controlled gaming interface that bridges the gap between physical movement and digital gameplay. Built around the STM32 Nucleo-U545RE-Q microcontroller, this project transforms natural hand gestures into native PC inputs, effectively acting as both a plug-and-play USB gamepad and an air mouse.

Motivation

AeroGlove was directly inspired by my time as an exchange student in Sweden, where a Neurotechnology class introduced me to P300-based Brain-Computer Interfaces (BCI). Working with that technology made me realize the impact students can have in developing assistive devices. I am designing AeroGlove for accesibility, with the belief that the joy of gaming and diving into the digital world should be available to everyone, including those with physical limitations.

Architecture

The main components are the STM32 Nucleo-U545RE-Q microcontroller, an MPU6050 accelerometer and gyroscope, a tactile push-button, an RGB LED, and a vibration motor module. The MPU6050 connects via I2C to capture spatial orientation. The microcontroller communicates bidirectionally with the PC via a USB Data Cable, sending inputs and receiving real-time feedback signals back from the computer to trigger the PWM-driven vibration motor.

Block Diagram

Log

Week 5 - 11 May

Hardware wiring and basic project setup. Configured the Rust Embassy environment and got the MPU6050 sensor reading data via I2C. Wired the tactile button and tested basic GPIO inputs.

Week 12 - 18 May

Focused on USB communication. Set up the USB HID device using the usbd-human-interface-device crate so the PC recognizes the board as a mouse/gamepad. Mapped the sensor data to screen cursor movements.

Week 19 - 25 May

Added haptic and visual feedback. Configured the PWM for the vibration motor and set up the RGB LED to indicate device status. Final code cleanup, debugging, and testing for the final presentation.

Hardware

The project uses the STM32 Nucleo-U545RE-Q as the microcontroller to process inputs and handle USB communication. It uses an MPU6050 for motion tracking, a tactile push-button for digital input, an RGB LED for visual feedback, and a vibration motor for haptic feedback.

Schematics

Place your KiCAD or similar schematics here in SVG format.

Bill of Materials

DeviceUsagePrice
STM32 Nucleo-U545RE-QMicrocontroller107 RON
MPU6050 ModuleMotion Sensor12 RON
Tactile Push-ButtonDigital Input0.36 RON
RGB LED ModuleVisual Feedback2 RON
Vibration Motor ModuleHaptic Feedback5 RON
USB Data CablePower & Communication30 RON
Jumper WiresPhysical Connectivity7 RON

Software

LibraryDescriptionUsage
embassy-rsThe core asynchronous runtimeAllows the microcontroller to handle multiple tasks simultaneously without blocking
embassy-stm32Hardware Abstraction Layer for STM32Provides digital drivers to control physical pins, I2C, PWM, and USB peripherals
embassy-timeManages non-blocking timers and delaysCrucial for stabilizing the input signal of the tactile button
embassy-usbHandles the low-level USB device stackEstablishes and maintains physical data connection between STM32 and host computer
usbd-human-interface-deviceUSB HID formatterFormats raw data into standard USB HID reports so the PC recognizes it instantly
mpu6050Dedicated community driverProcesses raw I2C signals into usable spatial angles for steering
defmtDebugging frameworkPrints real-time debugging messages to PC screen without slowing down the main loop
  1. Makers Making Change
  2. Build Your Own Air Mouse