How to Perform Multiple Gestures With an EMG Prosthetic Hand

by Ahmad Ikram in Circuits > Arduino

990 Views, 6 Favorites, 0 Comments

How to Perform Multiple Gestures With an EMG Prosthetic Hand

Multiple Gestures with EMG Prosthetic Hand

In this Instructables guide I will discuss how I added several different gestures to my 3D printed EMG prosthetic hand. If you haven't seen my previous post, I encourage you to check that guide first since I go more in depth on how I built my prosthetic hand. This guide will just be a basic summary of how I modified my previous prosthetic arm to be able to perform more gestures.

Supplies

IMG_20221219_183628.jpg
IMG_20221115_111336__01.jpg
IMG_20221221_170349.jpg
IMG_20221220_192224.jpg
IMG_20221220_142319.jpg

Supplies you need will be same are before:

Major Parts:

  • 3D Printed Hand from InMoov
  • Arduino Nano
  • MyoWare Muscle Sensor
  • Electrodes
  • Servo Motors (I used MG996R servos)
  • Wires
  • 7.2 Volt Battery
  • Fishing line
  • Screws

Other:

  • Drill and sandpaper to enlarge openings and create a smooth finish
  • Two-part plastic adhesive to glue 3D printed parts
  • Wire stripper
  • Screwdriver
  • Electrical tape

3D Printing & Assembly

FTO1E5MLANXY1AB.jpg

The 3D printed hand used in this project comes from an open-source project called InMoov. For this project we will only be using the hand and forearm. The link to the STL files can be found here and the link for the assembly instructions can be found here.

There are many guides and resources on how to build this arm, so I won't be covering the build process in this guide. It is important to be patient with the build process since it may take some trail and error to get all the pieces to fit and move smoothly. Take your time with each step and enjoy the build process.

Programming the Arduino

You will need to download the Arduino software to be able to program your Arduino. Again there are many guides and resources on how to do this so I won't be going into detail here. Try uploading a few basic sketches onto your Arduino to see how it works and troubleshoot any hardware compatibility issues. The key is to feel comfortable using the Arduino and that comes best with hands-on experience and trail by error.

The code for this project can be found on my GitHub page here. You will need to install this program into two Arduino Nano boards (one controlling the index and thumb and the other controlling the ring, middle and pinky). In this program, we want to read the analog inputs from each muscle sensor and use them to independently control the servo motors corresponding to the different sets of fingers.

Finger Control

IMG_20230402_192333.jpg
IMG_20230402_192311.jpg
IMG_20230402_191815.jpg

In my previous hand, I used a single EMG sensor to control all five fingers. In this iteration of the arm, I used one EMG sensor to control the index finger and thumb and another EMG sensor to control the ring, middle and pinky fingers. This allows me to control the index and thumb independent of the ring, middle, pinky, which allows for new combinations of movements. With this set up we are able to achieve 3 grip patterns: fist (all fingers closed), pinch (index and thumb closed), and point (ring, middle, and pinky closed).

Wrist Control

IMG_20230402_192612.jpg
IMG_20230402_192556.jpg

For this arm, I also wanted to add a functional rotating wrist. To do this, I added an additional servo and controlled it with a basic on/off switch. I had initially thought about using an accelerometer, however I wasn't able to get accurate control of the wrist with an accelerometer and figured that it would be simpler to use a switch instead. To use the wrist, flip the switch in the on position and the hand will rotate approximately 45 degrees in the clockwise direction. To return the hand to its initial position, flip the switch off and the hand will rotate back to its original position.

Conclusions

IMG_20221115_110705__01.jpg

While I was able to add a few more gestures, this is a still a work in progress and there is still more room for improvement. However, I am very satisfied with what I was able to achieve with the sensors and servos I had. I really like the aesthetic and compact design of the InMoov hand, especially how it is able to integrate a servo motor to control the wrist. I think with better seniors and smaller servos I might be able to add more gestures and achieve greater precision control of the hand. The possibilities are endless and I'm looking forward to finding different ways to improve my prosthetic hand.