If you’ve ever looked at prices for prosthetic hand, you may have noticed that they can cost upwards of $5000, with more advanced myoelectric controlled arms priced at over $20,000. Such prices are not ideal considering that over 80 percent of amputees are from developing countries where access to prosthetic limbs is limited by lack of health care and financial resources.
With 3D printing, however, we can create more cost-effective prosthetics that can better address the need of amputees. Some of the major advantages of 3D printing are rapid prototyping, customization of size, and the flexibility to replace parts by printing new ones. This project combines a 3D printed robotic arm from an open source project called InMoov with an Arduino compatible muscle sensor from Advancer Technologies. While this arm may not be as advanced as a $20,000 prosthetic limb, it is still a proof of concept that demonstrates the possibility of creating cost effective limbs that can provide comparable functionality at a fraction of the price. I also think it’s a cool project in general and one that can spur great interest for those who wish to work with prosthetics.
- 3D Printed Hand from InMoov
- Arduino Nano
- MyoWare Muscle Sensor
- Servo Motors (I used MG996R servos)
- 7.2 Volt Battery
- Fishing line
- Drill and sandpaper to enlarge openings and create a smooth finish
- Two-part plastic adhesive to glue 3D printed parts
- Wire stripper
- Electrical tape
Step 1: 3D Printing & Assembly
As mentioned in the intro, 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.
Since there are a plethora of guides and resources on how to build this arm. I won’t be covering the build process in this guide. I have included pictures of some of the steps in case you want to reference them. 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. I promise it will be very satisfying once you finish.
Step 2: Wiring Everything Together
While it may look daunting at first. The wiring for this circuit is actually pretty simple. In essence we want to connect each of the 5 servos to a power, ground, and signal wire. In total, you should have 6 power wires and 6 ground wires coming from your battery. I have included an image that illustrates this better.
You may be asking why we need 6 wires when we only have 5 servos. This is because we need to attach one of the power wires to the Arduino board in order to power it and one of the ground wires to the ground pin on the Arduino. The signal wires should be directly attached to any of the digital pins on the Arduino. For my circuit, I attached the servos to digital pins D3, D5, D6, D9 and D10 on the Arduino Nano board.
Next, we want to attach our Myoware muscle sensor to the Arduino. To do this we want to attach the positive lead of the Myoware sensor to the 3.3 Volt output on the Arduino board. We then want to take the negative lead of the Myoware sensor and attach it to the ground pin on the Arduino board. Lastly, we want to attach our signal lead of the Myoware sensor and attach it to one of the analog pins on the Arduino (I attached it to A3). This will allow the Arduino to read signals from the muscle sensor that will be used to control the servos.
If you’re new to circuits this may seem overwhelming and that’s okay. This is all part of the learning process. It may take some time to understand all the details. But with patience and curiosity you will come out of this experience knowing so much more than when you started.
Step 3: Programming the Arduino
If you haven’t done so already, you will need to download the Arduino software to be able to program your Arduino. If you’re new to Arduino, I would first recommend exploring the Arduino software and try uploading a few basic sketches onto your Arduino to see how it works and troubleshoot any hardware compatibility issues. Again there are many guides and resources on how to do this so I won’t be going into detail here. The key is to feel comfortable using the Arduino and that only comes with hands-on experience and trail by error.
The code for this project is actually pretty simple. You can find my code at my GitHub page here. In our program, we essentially want to read the analog inputs from the muscle sensor and use them to control the servo motors.
I remember feeling very satisfied seeing my program work when I finally figured it out. I want everyone to have the same rewarding experience of seeing their programs work because I find that it makes for an engaging experience and opens room for creativity.
Read more: 3D Printed EMG Prosthetic Hand