A wearable gesture system that reads finger bend and hand motion, runs recognition on an STM32 microcontroller, and can drive text-oriented output (and eventually speech) from dynamic gestures.
- Sensing: Five flex sensors (one per finger) plus an MPU-6050 IMU (accelerometer and gyroscope).
- Processing: Data is filtered, calibrated, and normalized on the board. Gestures are matched with DTW (Dynamic Time Warping) against stored templates.
- Connectivity: Serial USB for debugging and data collection; a JDY-23 Bluetooth module is wired for wireless use (see
docs/note.md).
| Item | Role |
|---|---|
| NUCLEO-F446RE | Main board (STM32F446) |
| Flex sensors | Finger bend via ADC |
| MPU-6050 | Orientation / motion via I2C |
| JDY-23 | Bluetooth serial |
Pin map, calibration notes, and register details are in docs/note.md. Datasheets and diagrams live in docs/.
| Folder | Purpose |
|---|---|
smartGlove/ |
STM32CubeIDE firmware (HAL, ADC DMA, I2C, UART, on-board DTW recognition) |
collectData/ |
Python tools to record gesture CSVs, manage templates, and export data for the firmware |
serialMonitor/ |
Small cross-platform serial terminal for talking to the board |
web-prototype/ |
Browser demo: Web Serial and optional Web Bluetooth to show recognition output |
docs/ |
Notes, PDFs, and images for hardware and protocols |
- Firmware: Open the
smartGloveproject in STM32CubeIDE, build, and flash to the Nucleo. - Record or test gestures: Follow
collectData/README.mdforcollectData.pyandmanage_templates.py. - Serial only: See
serialMonitor/README.mdfor a simple monitor. - Browser UI: See
web-prototype/README.mdanddocs/web-bluetooth-reminder.mdfor the local HTTP demo and BLE notes.
- STM32CubeIDE (or compatible toolchain) for the embedded project.
- Python 3 with
venvforcollectDataandserialMonitor(see each folder’srequirements.txt).
If you want to collect data, you need to switch to the collectData branch.
This repository is a research / prototype codebase: behavior and wiring should be verified against your own board revision and firmware build.