Introduction: 3D Printed Mechanical Hand Prototype
This instructable was created in fulfillment of the project requirement of the MAKECourse at the University of South Florida (www.makecourse.com)
Maybe you became interested in bionics by browsing through YouTube videos, or perhaps through science fiction movies and shows. Regardless, saying that a functional robotic hand is a difficult build is an understatement to say the least. In this instructable, I will present a guideline of how to build a basic mechanical hand based on how I created my own unit.
As a disclaimer, I should acknowledge that although there are far better designs and methods to create a robot hand, this tutorial caters to amateur tinkerers and should be seen more as a first time prototype to gain the necessary knowledge to better understand the inner workings of more versatile units.
Step 1: Gather Materials
You will need:
- A breadboard
- Jumper wires (a minimum of about 8)
- A microservo
- A standard servo
- A microcontroller such as the Arduino Uno
- Two electronic buttons
- (Optional) A case to contain the hardware
- Access to a 3D printer
- Fishing line
- Rubber bands
- Small decorative hinges (Optional depending on design, 4 total)
All of the following materials can be bought at a Radio Shack or your local electronics store. Additionally, here is a list of the following materials on Amazon:
Wires and Breadboard: https://www.amazon.com/microtivity-IB401-400-point...
Buttons (10 pk): https://www.amazon.com/6x6x6mm-Momentary-Push-Butt...
Rubber Bands: https://www.amazon.com/Assorted-Elastic-Rubber-Ban...
Fishing Line: https://www.amazon.com/Stren-Power-Knot-Fishing-Cl...
Decorative Hinges: Will vary in price, size, and appearance, but should cost no more than $5. Buy enough packs to gain at least 4 hinges.
Step 2: Determine the Motion Capabilities
This is the simple part- the process of brainstorming the dynamics of your hand. How do the parts connect? How does it move? What material is it going to be made out of and how are you going to enclose the finished product in something you can carry around? What can you make the hand do with your current knowledge of electronics, programming, and design?
In my case, I still only have an amateur's engineering skill, so the example model I will be showcasing is rather basic. I printed most of the hand with the intent of cutting, sanding, and drilling any excess material. I bought the hinges to act as the base knuckles for the fingers, and used rubber bands and fishing line to keep the hand extended when at rest and curled in when activated. My knowledge of programming was also minimum, so I only put in enough code to rotate the servos in two specific motions. However, if you're more fluent in these skills and want to try building a more fluid hand, go for it!
Step 3: Design Your Hand
The above picture is a 3d rendering of my hand drafted in SolidWorks. Other CADs such as Autodesk Inventor and AutoCAD would also work well for these mechanical designs. Be warned, however; AutoCAD doesn't necessarily have the ability to make an assembly drawing, so using it to design your unit might make it difficult to visualize your finished product. Be sure to convert all of your files to STL format before printing once you've made your finishing touches.
Conversely, if you don't want to design your own hand, feel free to use my own designs which I have linked below.
Step 4: Assemble the Electronics
Whether you're an electronics buff or a first time tinkerer, this is probably still going to be the easiest part of the assembly.
There are 12 necessary wires needed for the complete units: three to connect both servos to the microcontroller pins, power rail, and ground rail, four to connect the two buttons to the ground rail and their respective pins, and two to connect the power and ground rails to the Arduino.
Refer to the above sketch of the breadboard and Arduino to better understand the layout.
Step 5: Adjust 3D Parts for the Best Fit
Once all of your parts are 3D printed, you will have to adjust the fingers and hand plate so that each part fits. In this case, each finger needs 3 parts: a base, a middle, and a finger tip. They need to be able to connect to each other such that they are tight enough to remain attached, but loose enough to properly flex back and forth.
The included designs in this instructable come with their fair share of errors because they don't compensate for the shrinkage or rigidness of the 3D printing material. If you are using those designs as a template, you will need to either (in SolidWorks) make the existing holes slightly larger and easier to snap together, or sand, cut, and drill the parts until they fit together. For example, when I was building my hand, the base of each digit could not fit into the sockets I had built into the hand plate because they were too rigid. To compensate, I sawed off the lower halves and glued one of the decorated hinges to each end instead.
The thumb is slightly different. Since its base is meant to be pivoted by the microservo, it does not need to be attached to the rest of the hand per se; however, the servo itself has to have enough room to fit inside of the hand while being able to move the thumb freely. Note that in this project, the thumb does not curl inwards, it only pivots.
Step 6: Program the Arduino Microcontroller
Depending on your inclinations, this part of the instructable might be a blessing or a curse!
For this hand, I'm using the Arduino Uno microcontroller, which uses a variation of C in a dedicated IDE. The goal is to first connect buttons 1 and 2 to correlate with movement patterns of the servos. The next step is to make the microservo, (which will pivot the thumb) rotate to a certain angle, delay, and make the standard servo (which curls in the remaining digits) rotate a certain angle using button #1. When I press button #2, the standard servo should go back to its original position, delay, and then the microservo should do the same, putting the hand back into its "resting" position.
Even more important than knowing the syntax itself is understanding the logic that goes into writing your program. If you're having trouble conceptualizing what you want, try mapping it out with a flow chart or asking a programmer to break the language down in layman's terms. To download the Arduino IDE and view any references for commands and libraries, visit the Arduino website here.
I have also included my own sketch in the file below.
Step 7: Make Any Misc. Adjustments
This part will vary from design to design. In the case of the example hand, it meant drilling the holes in which you would run the fishing line through and loading the rubber bands onto the constraints at the fingertips and hand plates as well as any addiitonal sanding and fitting.
This is also the point where if you have a case, container, or anything else you wish to use to house the components, you would cut and drill areas for the wires, servos, and anything else to protrude.
Step 8: Run Fishing Line Through the Fingers and the Servo
This should be one of the final parts of your hand. Simply run the fishing line to the holes on the fingertips that were either drilled or created pre-print via a CAD program and attach them to the standard servo. Do this for the four fingers but not the thumb. The idea is that as the servo rotates, it will pull the string back and curl the hand, and that when you press button #2 and the servo goes back, the rubber bands will pull it back to the resting position as the fishing line becomes slack.
The thumb can be attached to the servo by glue or other means, but as a less permanent means of bonding I decided it would be easier to just tie it on with some of the line.
Step 9: Sit Back and Enjoy!
Now that you've designed your parts, set up your electronics, assembled your prototype, and stringed the moving mechanisms together, give it a whirl!