Inspiration
The motivation for this project was to address the significant barriers to digital accessibility. Many assistive technologies currently on the market are prohibitively expensive, making them inaccessible to the average person. I wanted to develop a low-cost, open-source solution that allows individuals with limited hand mobility to navigate a computer interface comfortably and independently using only head movements.
What it does
This project is a wearable, hands-free computer mouse interface. By utilizing a high-precision IMU sensor, the system translates the user's head orientation into standard mouse cursor inputs.
Vertical Navigation: Achieved by nodding the head up or down (Pitch).
Horizontal Navigation: Achieved by tilting the head left or right (Roll). The device is recognized as a standard HID (Human Interface Device) over USB, ensuring it is entirely plug-and-play with any modern operating system without requiring additional software.
How I built it
I developed this system independently using an Adafruit QT Py ESP32-S3 and an MPU6886 6-axis sensor. The firmware was written in C++ using the Arduino framework. Key technical implementations include:
Signal Processing: A low-pass filter was implemented to smooth raw sensor data and eliminate high-frequency jitter.
Deadzone Logic: I programmed a mathematical "deadzone" to ensure the cursor remains stationary when the user is at a neutral resting position.
Native USB HID: Leveraged the ESP32-S3’s native USB capabilities to emulate a hardware mouse.
Challenges I ran into
A primary challenge was managing sensor drift, where the cursor would slowly migrate across the screen despite no physical movement. This required fine-tuning the offset calibrations and the filtering algorithm. Additionally, balancing sensitivity was a meticulous process; I had to ensure the movement felt natural and intuitive rather than over-responsive or sluggish. Accomplishments that I'm proud of
I am particularly pleased with the latency of the system; the update rate is sufficiently high that there is no perceptible lag between movement and cursor response. Successfully creating a functional, medical-grade assistive tool using accessible, budget-friendly hardware is a significant milestone for the project. What I learned
This project provided deep insights into the complexities of USB HID protocols and the nuances of real-time sensor fusion. I learned how to manage raw accelerometer data effectively and the importance of implementing robust software filters to compensate for hardware limitations.
Log in or sign up for Devpost to join the conversation.