Creating a Haptic Feedback Glove for Typing

The implementation of haptic technology for every day uses is becoming increasingly widespread. Haptic technology uses the sense of touch to provide tactile feedback. This is done by applying pressure, vibrations, or motions to the user. Using this technology we can actually teach people important skills, such as touch-typing.

By using vibrations that tell you which finger to use to type a certain letter, you can actually build muscle memory and become a good typist.

I personally thought that this was pretty cool, so I wanted to try and replicate it.

And, I came to realize, it isn’t too difficult to make it yourself.

First of All… How Does it Work?

Inside each finger of the glove, a vibration motor will be placed around the knuckle area. Then, when the program is run, the motors on your finger will vibrate, depending on which finger is meant to be used to type each letter. By repeating this you can build muscle-memory. You will be able to memorize which motor vibrated for which letters, helping you become a fluid typist!

How Do You Do it?

For the hardware, I used an Arduino Nano, a breadboard, ten coin vibration motors (one for each finger), two Darlington Arrays, a resistor, and a couple of wires.

As for the software, I used the Arduino IDE, as well as Python for the actual user interface.

Using the wires, I connected the Arduino with the Darlington Arrays. The Darlington Arrays help carry the current of the vibration motors since the Arduino can’t do that on its own.

In the back are the vibration motors. The red wires are placed in a different row than the blue wires. Then, the resistor is added to reduce the flow of the current so that, you know, nothing explodes.

Quick note about the vibration motors: In order for the person to be able to feel the vibrations from them in a glove, you would have to extend the length of the wires so that they can be sewn into the glove. You can do this with a Cat5 cable. Attach the motors from the wires to the cable. Then place the wires from the cable into the breadboard.

For specific placements of each element into the breadboard, you can follow this schematic:

And that’s it! (Pretty simple, right?) Now for the program:

Because I’m still learning how to code in Python, I borrowed the program that can be found here.

Essentially, the code in Python allows the user to cycle through the 100 most common words in the English dictionary. It also recognizes the specific finger meant to be used to type a certain letter. Then, based on this, it sends out a signal of 1–9 or A. (For example, if you are meant to use your left pinkie, the character “3” will be sent to the Arduino).

Using the Arduino IDE, you can get the motors to vibrate for .25 seconds whenever they receive a signal from the Python program.

This is a segment of the program that shows how the Arduino reads the signal from the Python:

The “incomingByte” variable is set by the Python program. There are ten if-statements that decide what sort of signal is received from it. Once this is recognized, the motors are activated.

This is done for all ten fingers.

When you connect the Arduino to the computer and run the programs, you get a maybe not so beautiful, but working user interface.

And, with enough practice, you can build up muscle memory!

My Changes for the Future

The user interface from the Python program I used is not very appealing, so once I practice more I would work on improving that. I also do not like the fact that users have to manually cycle through words to practice typing. I would like to improve this and also have more options.

Overall, it was a very successful project, and I can’t wait to see where the future of haptics leads!

Don’t Leave Yet!

Did you like this project and want to see more from me? Connect with me here:

Innovator at The Knowledge Society (TKS)