MouseX

Industrial Design / Physical Fabrication

Project Overview

Project Details

Ideation

Components & Functionalities

1. Cursor movement

2. Left click

3. Right click

4. Page scrolling

A device that replaces the traditional mouse and removes the need to take your hand off the keyboard when working. A tool for productivity or for those who simply want to use the mouse like a TV remote.

Team:

Type:

Duration:

Tools:

Peter Zhang, Anvay Kantak, Henry Chen

Physical Computation Class Final Project

5 Weeks

Arduino IDE, Rhino 3D, Ultimaker S3

For the final project of my Intro to Physical Computation class, my team wanted to create a functional device/apparatus that can increase productivity in some way. The idea to design an alternative cursor controller came from Henry who lamented the need to take his fingers off the keyboard in order to move the mouse. Therefore, the goal was to create a comfortable and sleek wearable device that allows users to control the mouse by simply maneuvering one or two fingers. 

Initial Sketches

Grove Mini Track ball 

Arduino Nano IoT 33

Membrane Potentiometer

In order to control the mouse on computer, we need both a digital and physical interface to work with. After some research into motion-tracking modules, we landed on the Grove Mini Trackball. It also happens to include a library compatible with the Arduino Nano IoT 33, the microcontroller of choice for our class. The trackball alone would not suffice though, as we wanted to at least include these four basic functionalities: 

The trackball only allows for two-dimensional movement and a pressing mechanism that translates to clicking the mouse. Therefore, we researched into a separate component that can keep track of another linear component, to reproduce the scrolling motion of a mouse wheel. The Membrane Potentiometer, a thin strip producing varying resistance depending on where the finger is placed, served as a promising candidate as we moved forward with prototyping.

Early conceptual prototypes

Iterative Process

Ardunio

As mentioned above, there is already an existing library for the Grove Mini Trackball which makes integration with Arduino much simpler.  We used the example code included in the library as a starting point and tweaked it as we went. Another key component of the code is the Mouse.H library, which includes a series of functions that allows Arduino to take control of the computer's mouse. 

Mouse control Arduino code

A Failed Attempt

Mouse control Arduino code

Using the GetTrackData function from the Mini Trackball library the x and y movement data from the physical ball is translated into data that Arduino then feeds to the Mouse.H function Mouse.move which in turn moves the actual cursor. As for the mouse click, the logic is achieved through a comparison of the current and previous button state, which we defined earlier and executed via the Mouse.press and Mouse.release functions. 

First successful Trackball & Arduino communication

Getting the mouse cursor to move went smoothly, but getting the page scrolling to work was another story. Our logic for using the membrane potentiometer was to record the difference in resistance between the start and end points of where the user placed their finger and feed that value to the third parameter in the Mouse.move function, which controls how much the scroll wheel is moved. The biggest issue with this method was how unstable the values were and we realized that one had to pinch the membrane tight from both sides in order to receive stable values. Short on time, we decided to abandon this route and instead explored another option.

Jumpy scrolling results using membrane potentiometer

Mouse scroll Arduino code

Contact of wires on the rings completes the circuit

Code logic for mouse move + left click VS mouse scroll + right click

Toggle Mechanism

In the end, we opted for a toggle mechanism that would allow the page scroll and right mouse click functions to be activated on the existing Mini Trackball. By adding two additional rings that goes on the index and middle fingers and severing a digital read circuit via the two rings, we created a simple toggle state that is only activated when the rings create contact with each other. In the Arduino code, we specified in the else statement that if the circuit is complete, moving the trackball will only move the scroll wheel and clicking will result in a right click. Using this method, we eliminated the need of another component like the membrane potentiometer. But we wish to explore this aspect of the design further and seek to simplify the mechanisms even more.

Testing toggle logic out with exposed wires

Sleeve Design

With the functionalities of the device figured out, the housing of the various components and their respective aesthetic decision became the focus for the latter half of the project. After some conceptual prototyping, we knew the trackball fits best on the index finger and situating the device close to the palm allowed users to reach the ball easily. We wanted the device to feel ergonomic and sleek, so material was an important consideration. Initially we test printed the ring and trackball holder out of TPU for its flexibility and comfort reasons. But the low resolution of print made securing the device tricky so in the end we printed all the rings and covers out of ASA instead. 

Wristband for breadboard housing

Fabrication

The Arduino needs to be anchored on a breadboard and connected to various wires so we designed a wristband that would house all those elements. Since this component is quite big, we opted to print it out of TPU as a rigid counterpart would significantly hinder the user from adjusting.

Implementation

Casual User: relaxed posture + web browsing

Personas

Functionality demonstration: Mouse movement, Left click, Page scroll, Right click

When we initially came up with the idea for this project, the goal was to create a device that increases productivity while typing by eliminating the hand's need to move elsewhere to control the cursor. However, after realizing the product, it proved to be just an effective tool for casual use as it is for productivity. Therefore, we can imagine two opposing user groups that can benefit from our device.

Serious User: full keyboard integration + typing productivity

User Testing

During our exhibition at the ITP Winter Show 2022, we had many users try out our product and give their thoughts on what can be improved/changed. We received a lot of positive feedback on the sleekness of the material finishing and the reliability of all the functions. The main pain point was the ring size. Even though we designed a small slit into all the rings, due to the rigid nature of the ASA material, not all finger sizes can be accommodated. 

Next Steps

Moving forward, we definitely want to keep expanding upon the current prototype we've developed and incorporate the user feedback we received into the next iteration. One major pain point we want to focus on is increasing the flexibility of the ring size, perhaps combining two types of material. We also noted some user's suggestion that the location of the trackball is not intuitive enough and look for ways to emphasize that aspect of the design. Lastly, the toggle mechanism we have currently is not a permanent solution and needs to be simplified further to increase ease of use. 

Stay tuned for more updates!

UX/Product

Thank you for checking out my work! Here’s more where that came from:

XR

Tangible

Mouse X