SonicGlove - Interactive Musical Glove
A portable, interactive glove-based sound system that generates and modulates audio in real-time based on finger gestures and tactile input.
Author: Pirvu Tatiana Andreea Daria
GitHub Project Link: https://github.com/UPB-PMRust-Students/acs-project-2026-tanioara
Description
SonicGlove is a gesture-driven sound system running on an STM32 Nucleo-U545RE microcontroller. The system utilizes an event-based architecture to read the state of four tactile buttons mounted on the user's fingers, triggering the generation of audio frequencies through a passive buzzer driven by PWM signals. For real-time sound modulation, the device integrates an MPU6050 inertial measurement unit (IMU) communicating via I2C, which dynamically alters pitch and intensity based on the spatial orientation of the hand. The project features a microSD storage module connected over an SPI interface, allowing for structured logging of input events and the playback of recorded sessions. System states (idle, recording, playback) are visually indicated via three discrete LEDs connected to standard GPIO pins. The components are mounted on a wearable textile glove.
Motivation
As a student interested in real-time signal processing and hardware integration, I wanted to build a device that goes beyond simple button presses and explores dynamic, physical gesture control. I wanted a project that consolidates sensor fusion and audio generation into a single wearable system. This project gives me the opportunity to develop a modular software architecture, work with multiple hardware peripherals simultaneously (I2C, SPI, PWM Timers), and design a complete end-to-end event-based system from data acquisition to non-volatile memory storage.
Architecture
Input Subsystem — handles tactile buttons and the MPU6050 IMU. It captures physical finger presses and hand orientation data, sending it to the microcontroller via GPIO and I2C.
STM32 Nucleo-U545RE — the main controller running the core firmware: reads inputs, calculates notes and modulations, manages the state machine, and orchestrates the recording and playback systems.
Output Subsystem — a passive buzzer driven by a hardware timer (PWM) to generate audio tones, alongside status LEDs that provide visual feedback on the current system state.
Storage Subsystem — a microSD card adapter module communicating via SPI to save and retrieve structured event logs of the recorded gesture sessions.
Log
Week 5
Solidified the core architectural concept and received approval from the lab coordinator.
Week 7
Ordered all hardware components.
Week 9
Stating writing the documentation page.
Hardware
The project uses an STM32 Nucleo-U545RE as the main microcontroller. User interaction is captured via four 6x6mm tactile push buttons configured as digital inputs. An MPU6050 6-axis IMU module connected via I2C measures spatial orientation and movement. Audio output is generated by a passive buzzer, driven by a variable-frequency PWM signal from the microcontroller. Three 5mm LEDs provide visual feedback regarding the system's operational state. A microSD card adapter module, communicating via the SPI bus, handles data storage. The physical assembly involves mounting the buttons and the IMU onto a textile glove using flexible jumper wires.
Schematics
- TODO: KiCad schematic to be added at Hardware Milestone (Week 11)
Bill of Materials
| Device | Usage | Price |
|---|---|---|
| STM32 Nucleo-U545RE-Q | Main microcontroller | - |
| MPU6050 IMU Module | Measures acceleration and rotation | ~25 RON |
| MicroSD SPI Module | Interface for reading/writing logs | ~20 RON |
| MicroSD Card | Data storage medium for gesture logs | ~25 RON |
| Passive Buzzer 3.3V | Generates audio frequencies | ~12 RON |
| Tactile Button 6x6x6mm (x4) | User input for triggering notes | ~8 RON |
| 5mm LEDs (x3) + Resistors | State indicators (Idle/Record/Playback) | ~5 RON |
| Jumper Wires M-F 40p 20cm | Component interconnections | ~10 RON |
| Jumper Wires M-M 40p 20cm | Component interconnections | ~10 RON |
| Breadboard 170 points | Prototyping connections | ~3 RON |
| Textile Glove | Physical mounting support | ~2 RON |
Software
- TODO: the rest will be added as I develop the code
| Library | Description | Usage |
|---|---|---|
| FatFs | Generic FAT Filesystem Module | Used for reading and writing structured log files to the microSD card |
| MPU6050 Driver | I2C sensor library/driver | Used for extracting and filtering raw accelerometer and gyroscope data |