Do you live with only one hand, or ever feel two just isn't enough? Well now you can make another! This project combines two very cool things: an arduino voice recognition shield and an open-source 3D printed robotics project called InMoov. Basically what I've done is modify the InMoov hand/forearm to be usable as a prosthetic (or additional appendage) and add a VR (voice recognition) shield to receive verbal commands and then make corresponding motions with the hand. The advantage of voice control is that it doesn't require muscles and is more flexible to different physical conditions (also hands free!). My program includes 15 general hand gestures and actions for everyday living! When I was looking into myoelectric arms kept thinking that the functionality wasn't worth the thousands of dollars. While mine isn't as fancy as some it's remarkable what you can create with desktop 3D printers, an arduino, and servos! I think the coolest part is the customization: the printed parts can be scaled to make an accurate prosthetic for anyone. Although this project can look intimidating, the entire time taken (if you work on the electronics while parts are printing) is about 14 hours! See it in action! (If embed doesn't work try the link HERE)
Step 1: Parts
5 x Servo Motors (either a HK15298 or an MG995 variant - anything with these size specs will work)
14 x 2.5mm (or 3mm) bolts (20mm long)
1 x 8mm bolt (55mm long)
1 x 8mm bolt (80mm long)
1 x 8mm bolt (60mm long)
1 x 9V Batteries and Connector
6 - 7.4V Battery and Charger (this drives the 5 servos, so be sure it has high current output ~2-3 Amps. I used this)
Fishing Line (any will do, but for more strength buy Spiderwire or Spectra fiber fishing wire so it won't strech)
Super Glue (I used 'krazy glue' because I printed in PLA, for ABS use acetone)
Step 2: Printing the Hand
Since there are already detailed instructions on how to build this I won't go into great detail, but he has a bunch of parts in his files so I will go over which ones you HAVE to print:
From his first thingiverse post you will need to print the following parts (I use the same names as his files have):
Fingers: Auriculaire3.stl, Index3.stl, Majeure3.stl, ringfinger3.stl, thumb5.stl
Palm: WristsmallV3.stl, WristlargeV3.stl
Half Forearm: robpart2V2.stl, robpart5V2.stl
Now from his other thingiverse post you will need these remaining parts:
Motor Mounts/Pieces: RobServoBedV4.stl, RobCableFrontV1.stl, RobCableBackV2.stl
Other Half Forearm: (These are just covers so for functionality they aren't needed) robpart3V3.stl, robpart4V3.stl
For printing the parts I used a Makerbot Rep 2 and built all the parts with 2 shells and 15% infill with no support on any of the prints (he already has built in supports). I used standard definition prints for the fingers and 'low' resolution prints for the arm/wrist pieces.
Step 3: Building the Hand
1. Assemble joints. Take the various screws for the hand and use them to assemble. You may need to use a drill to enlarge or fix printed holes for the finger joints and hand pieces. Use the larger bolts to attach the two pieces for the fingers, thumb, and wrist. Make sure the pieces attached with screws are able to bend easily, some sanding may be required for smooth fit. All the pieces should be able to flex with little resistance.
2. Glue the joints you just assembled together (except for fingertips). Make sure the bends are all oriented the same direction so the finger will curl. Let dry.
3. Take fishing line (leave plenty of excess length) and pull it through the fingers, one string running above all the hinge joints in the fingers and another below all the hinges. Bring these strings down through the channels in the hands and out into the wrist piece. Double knot these strings at the tip of the fingers so they don't slip through the two small holes. Test the finger flexibility by pulling one string while holding the other taught. The fingers should bend and then straighten with ease.
4. Glue on fingertips. Leave all the lower arm pieces except for the wrist piece that you can screw the bottom of the hand into as well as the motor mount pieces for now. You can also clip off the extra lengths of the finger bolts.
Step 4: Servo Setup
The servo setup is pretty simple you take your five servos and mount them onto the bracket. Check my picture and his if you are confused, there are three on one side, and two on the other. There are slits in the mounts for the motor wire to be pulled through so it's not bent. You can then screw down the motors once you have them in place. My motors were a bit taller than his for some reason, so I used little rubber spacers that came with the motors between the bottom of the motor mount holes and the motor bracket. The screws used to mount should have been supplied with the motors. Now take the two other motor bracket pieces. One should be flat except for two rectangular protrusions with six holes through the top. Take this piece and push the two rectangular protrusions into the corresponding holes on the front of the motor bracket. Secure with glue or a screw. Lastly, take the remaining motor bracket piece (completely flat with a notch cut out of the bottom) and put it on top of the motor bracket in line with the wall separating the two rows of motors. Secure with a screw.
Step 5: Wiring
If you orient the bracket holding all the servos so that the side with two servos is pointing towards you then the orientation of which servo goes to which finger is as follows: the left of the two servos closest to you is the pinky, then going clockwise around the bracket they are the ring finger servo, middle finger servo, index finger servo, and thumb servo. I had each finger hooked up to the digital pins as follows: pinky to 3, ring figer to 5, middle finger to 6, index finger to 9, and thumb to 10. Now if you rerun the motor test program it will cycle the motors from pinky to thumb and repeat.
Step 6: Finishing Assembly
Step 7: Gluing the Arm
Next you can now take the two forearm pieces you have (see my picture) and glue them together over the strings running from the wrist to the motors. Once this dries go ahead and glue them into the wrist and lower forearm piece holding the servo bed. Leave the last top forearm piece off! You should now have what my pictures look like.
Step 8: Calibrating the Fingers
You can now glue on the last top piece of the forearm. I left mine off though because I was constantly adjusting and trying different things with it.
Step 9: Grip!
Step 10: EasyVR Board Software
1. Firstly you need to download a specific arduino IDE, it is a really old version called Arduino 0023. Scroll down the downloads page to 'Previous IDE Versions' and you can find it. I know this seems weird but when I used the newer arduino IDE it wouldn't let me compile and kept throwing the error I have in a picture above. Feel free to try and figure it out for me!
2. Now you need to download and install the EasyVR arduino library. If you are unsure on how to install a new arduino library, then check this lovely arduino tutorial.
3. Next you will need to download the EasyVR Commander program that lets you add and train new commands. Install this like you would any normal program, it is independent of arduino.
You now have all the software set up!
Step 11: EasyVR Test
Next you will have to train the EasyVR to know your voice for these commands. Click on the first command 'TEST' and then in the toolbar near the top of the window select the 'Train Command' button and a window will prompt you to click 'Phase 1' and then speak the word clearly into the microphone. My advice is just say the words normally about six inches from the mic, sometimes I'd find myself over-pronouncing words and when I actually tried to use them I wouldn't say MOUSSSSSEEEE, I'd just say mouse. After 'Phase 1' it'll prompt you for 'Phase 2' and then after that the word should be successfully trained. Repeat for each command. After the training you can click the 'Test Commands' button in the toolbar and it'll prompt you to say a word on your list and then highlight the corresponding word. Scary! Big brother may be listening...
Step 12: The Program
Step 13: Prosthetic Modifications
Next we will need to mount the components (arduino, 9V, motor battery) onto the outside of the arm so that it will be completely mobile. Unfortunately in the InMoov forearm design there isn't enough empty space to mount all of these things (unless the bicep part is built) so we will use wire ties (or zip ties) to affix it all onto the outside. Hold your components up to the back of the arm and with a marker make dots. Drill out these dots so you can feed through the wire/zip ties. Once drilled go ahead and mount the components. Although it isn't as pretty, it is functional and gives easy access to the vital components so you can change batteries or wires as needed.
Looking at the 'robcapAddition' part you will probably want to add some padding on the inside. I found craft or packing foam to work well. I haven't been able to test this fit with anyone that uses prosthetics so I haven't had much feedback on the fit. Near the end of the 'robcapAddition' part you will see four slits. These are to mount 1" straps so they can be wrapped around the arm to help keep the prosthetic from slipping. Unfortunately I don't know anyone that could test this for me so I don't have much advice to give, just tweak the setup for you specific needs. Hope this helps!