DIY Haptic Glove for VR

A haptic glove that vibrates when its touches a virtual object. It also tracks physical finger positions and hand orientation.

Public Chat
Similar projects worth following
In virtual reality, there are so many beautiful virtual environments to enjoy. However, it will be more enjoyable if the user can reach out and feel the environment. Feeling the sensations of the virtual world will help the user to get caught up in the reality of an otherwise virtual world.
There is an obvious DIY solution to accomplish this goal - a haptic glove which can provide the physical sensations of virtual worlds.

  • Flex sensors for five fingers to understand the finger bend capacity
  • Joystick and buttons to move the virtual hand
  • Gyroscope to rotate the virtual hand
  • Four vibration motors on finger tips and three vibration motors on the palm to feel when you touch virtual objects
  • Multiple vibration patterns to understand the type of object being touched – a solid object like a rock vs putting your hand under a roaring waterfall



Portable Network Graphics (PNG) - 275.61 kB - 08/16/2018 at 00:45



Arduino Code

ino - 3.46 kB - 08/12/2018 at 04:33



Bread Board Wiring

Portable Network Graphics (PNG) - 523.39 kB - 08/12/2018 at 04:30


  • 5 × Flex Sensors
  • 7 × Vibration Disk Motors 4 for each finger except for the thumb and 3 on the palm
  • 1 × MPU-6050 Gyroscope Module
  • 1 × 2 axis Joystick
  • 1 × Push button

View all 7 components

  • Future Work

    Dinithi Silva08/16/2018 at 00:44 0 comments

    In the future, rotation and position precision will be improved, possibly through external visual tracking. More scenarios will also be added to provide different touch environments.

  • Schematics

    Dinithi Silva08/16/2018 at 00:43 0 comments

  • Touch Simulations

    Dinithi Silva08/16/2018 at 00:41 0 comments

    Vibration motors attached to each fingertip and the palm of the glove will start buzzing when the virtual hand collides with virtual objects. Each motor vibrates separately, so you can tell if you touched an object with just one finger. Depending on what you touch, different vibration patterns will activate. For example, when the player touches the waterfall, the motors will vibrate randomly with very small delays simulating the random impact of the water.

  • Navigation

    Dinithi Silva08/16/2018 at 00:39 0 comments

    A joystick and a button are attached to the side of the index finger. They make it easy to move the virtual hand around the scene. The joystick controls forward/backwards and up/down movement of the hand and the two buttons (joystick and standalone) move the hand left and right.

  • MPU - 6050

    Dinithi Silva08/16/2018 at 00:32 0 comments

    The MPU6050 sensor is used to control the rotation of the hand. Just leave the glove completely still and on a flat surface for a few seconds when you turn the game on to let it calibrate first.

  • DIY Haptic Glove Demo

    Dinithi Silva08/12/2018 at 04:16 0 comments

View all 6 project logs

  • 1
    Wiring Diagram
  • 2
    Install dependencies

    Download and install Unity3D, Arduino, and the following Arduino Libraries.

    Unity3D -

    Arduino -

    Library Name -

  • 3
    1. Set up all the wiring as shown as the image above
    2. Download the project from the GIthub link -
    3. Upload the Arduino code to your Arduino Mega
    4. Open the Unity project in Unity
    5. In Unity, double click "Scripts/Palm" in the Project window to open the script editor. In the script editor, go to line 9 and change "\\\\.\\COM17" to your Arduino's COM port number. You can find this number in your Arduino editor.
    6. In Unity, go to the PlayerSettings (Edit -> Project Settings -> Player) and find the Api Compatibility Level in Other Settings. Change this to .NET 2.0 instead of .NET 2.0 Subset.

View all 5 instructions

Enjoy this project?



Arjun18255112 wrote 11/15/2020 at 15:35 point

Hi, i did as you instructed, mine is unity 4, when i opened the project, it automatically adjusted to unity 4.

when i run the program, the hand just started moving around the environment itself, i moved the mpu6050, and also joystick, but no use, the hand, with the purple ball rounds the environment. any idea what did i do wrong.

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates