Inspiration

A standard mouse has a dependency for a desk which may not be the most convenient option to move a cursor around the screen in some scenarios like when presenting. Also, in games it can be refreshing to have your mouse controlled by movement in the air which makes a lot of sense for fps games. With the rise of AR/VR headsets and AR/VR gaming, such a device can be easily used to prototype the games or try out different implementations.

What it do

The project we developed mouse moves cursor on the screen based on hand movement. Hand movement was tracked using MPU 6050 of which only the gyro readings were used. Gyroscope reading provide the change in angular position in X, Y and Z directions which we used to move the mouse. Flex were used to implement right and left click of the mouse. A joystick was added to implement 'w' , 'a' , 's' and 'd' keys so that one could game right from the setup we made.

How we built it

Mouse movement

MPU6050 which is based on the I2C bus which was the backbone of our project. We read gyro data from the MPU6050 continuously and did some simple math on the results to produce two intermediate results. These intermediate results were used to move the mouse pointer.

Clicks

Readings from flex sensor were used to implement clicks. Flex sensors can be implemented directly as analog devices and convert the data to digital or we can use prebuilt flex sensors which send data over I2C. We used tried both the options and found no decipherable change in the functioning of the mouse.

'w', 'a', 's', 'd' keys

We implemented the keys using a joystick. The joystick returned analog values which were read over the ADC pins of the Arduino and these measurements were used to press either of the 'w', 'a', 's', or 'd' keys.

Challenges we ran into

Off the hand I2C was a challenge to implement. Once that was sorted, what to make of the readings of MPU6050 was a challenge.

Accomplishments that we're proud of

I2C implementation.

What we learned

I2C protocol in depth, what to make of IMU readings, Kalman filter, 3D positioning using IMU.

What's next for Glomo the Glove Mouse

We are using just the angular displacement data from the IMU which does the job but it can be made much better by using IMU to understand hand position in a 3D space. Using a decent glove and a flexible PCB, the project can be converted into a product.

Built With

Share this project:

Updates

Submission history