Constructing a Robotic Hand
In the Instructable, I will be supplying a detailed way of guidance to assist you in constructing your first Robotic Hand! This Instructable will include the supplied needed, how to efficiently arrange your project, the building process, and the coding process.
Supplies
The Supplies you will be needing will include:
- Fishing Line
- Arduino UNO
- Styrofoam
- Servo Motors
- Utility Knife/Exacto Knife
- Paper Clips
- Hot Glue Gun
- Elastics Bands
- Skewer
- Sanding Blocks
- Pliers
Organizing Your Work
Amongst your group, you must assign jobs for each person to keep this task running smoothly. To even out the work, you can give jobs like the builder and the coder. Another way we organized our work was communication. Sometimes, it began to be hard as most of my group members were in separate group members. The way we bypassed this issue was sending detailed emails between each other regarding what one did, their issues, what they could have done better, etc.
The Fingers
- Using your Styrofoam cut out five rectangular prisms which will be the starting base for creating your fingers.
- Base your measurements of your fingers on your own hand
- Once you measured, take your rectangular prisms and cut them to your fingers measurements.
- Now that you have obtained and measured, cut your fingers into three sections except the thumb.(The thumb has two)
- Base these sections off of the joints on your real fingers
- With these sections, make sure you keep them together with its specific finger.
- Afterwards, on your sectioned off fingers, sand each corner of the segments on a 45 degree angle.
The Fingers
- Using the joints for all your fingers, line them up from the top to bottom
- Once they are lined up, stick a small hole into each section in the middle using a skewer
- With these holes, you will use your fishing line to connect the sections together
- Leave the sections aside and begin to use your Styrofoam again
- With the Styrofoam, sketch and cut out your palm only
- This palm will be the base for your fingers
Putting the Hand Together
- With your finished palm, make a hole into the palm where each finger will go
- With the holes, put your fingers into the hole with your fishing line attached
- The fingers won't be stably attached so using your staples, bend 15 into an arch
- With your arched staples, use 3 for each finger and push them into the Styrofoam down along the finger to the wrist to stabilize the string down.
- Once your fingers are stable and attached, you must glue the together the joints
- To start, cut your elastic bands into a few small pieces enough for each finger
- You will need about 2 small pieces to connect each indent
- With the elastics, glue them on connecting the sections together with a small gap between them
Mathematics Code
To make this code, you needed to know the basic arithmetic operations including addition, subtraction, and division, and multiplication. You can see in the code, we of course used "+" for addition, "-" for subtraction. Except, we used different symbols for division and multiplication those being "/" and "*". Sometimes in different coding programs, they use different symbols for different equations. These symbols ran our code and helped us determine many things. It helped us figure out wasted materials and the volume of various things. You can see in the code supplied below. Once the code is ran, the word "print" at the end of the code gives us the answer.
Here is our finished mathematics code displaying the different Arithmetic operations used and what the code does for us:
import math
Lrp = float(input("enter Length of Rectangular Prism: "))
Hrp = float(input("enter Height of Rectangular Prism: "))
Wrp = float(input("enter the Width of Rectangular Prism: "))
R = float(input("enter the Radius of the Truncated cylinder: "))
S1H1 = float(input("enter the first height of the first truncated cylinder: "))
S1H2 = float(input("enter the second height of the first truncated cylinder: "))
S2H1 = float(input("enter the first height of the second truncated cylinder: "))
S2H2 = float(input("enter the second height of the second truncated cylinder: "))
S3H1 = float(input("enter the first height of the third truncated cylinder: "))
S3H2 = float(input("enter the second height of the third truncated cylinder: "))
Rh = float(input("enter the radius of the hemisphere: "))
Vrp = Lrp * Hrp * Wrp
Vh = (math.pi * (4/3) * Rh**3)/2
Vs1 = R**2 * math.pi * (S1H1 + S1H2)/2
Vs2 = R**2 * math.pi * (S2H1 + S2H2)/2
Vs3 = R**2 * math.pi * (S3H1 + S3H2)/2
TV = Vs1 + Vs2 + Vs3 + Vh
Vwm = Vrp - TV
VC = math.pi * R**2 * Hrp
HS = (math.pi * (4/3) * Rh**3) /2
CwH = VC + HS
print("volume of Rectangular Prism is %.2f"%Vrp)
print("volume of Hemisphere is %.2f"%Vh)
print("volume of section 1 truncated cylinder is %.2f"%Vs1)
print("volume of section 2 truncated cylinder is %.2f"%Vs2)
print("volume of section 3 truncated cylinder is %.2f"%Vs3)
print("Total volume of truncated cylinders and hemisphere is %.2f"%TV)
print("volume of wasted material is %.2f"%Vwm)
print("volume of cylinder is %.2f"%VC)
print("volume of cylinder with hemisphere is%.2f"%CwH)
Technology Code
To make our technology code, we were supplied a base to start our code by our teacher, and we were left out on our own from there. From the starting code, we made sure to declare each finger in Tinker CAD before we began. We then added our movements that our hand had to perform using degrees to make sure our fingers do the right hand signs. What I mean by degrees is quite simple. These degrees are commands given to our servos allowing the fingers to move. We were taught that 0 degrees means that your fingers are upwards and we also used 180 degrees. 180 degrees meant that your fingers were down. It is also a must to add a delay. This delay limits the fingers from moving carelessly without any pauses. We applied all these different codes into one code to keep it organized, but eventually, these codes will have to be separate.
Here is an example of the technology code displaying our delays, declarations, degrees, etc. for the peace sign:
#include <Servo.h> //include the servo library
Servo thumb; //create a servo for the thumb
Servo index; //create a servo for the index
Servo middle; //create a servo for the Middle
Servo ring; //create a servo for the Ring
Servo pinky; //create a servo for the Pinky
void setup()
{
thumb.attach(3); //plugged into pin 3
index.attach(5); //plugged into pin 5
middle.attach(9); //plugged into pin 9
ring.attach(10); //plugged into pin 10
pinky.attach(11); //plugged into pin 11
}
void loop()
{
}
void Peace()
{
thumb.write(180); //turn servo to 0º
index.write(0);//turn servo to 0º
middle.write(0); //turn servo to 180º
ring.write(180);//turn servo to 180º
pinky.write(180); //turn servo to 0º
}
void reset()
{
thumb.write(180); //turn servo to 180
delay(1000); // wait one second
thumb.write(0); //turn servo to 0
delay(1000);//wait one second
index.write(180); //turn servo to 180
delay(1000); // wait one second
index.write(0); //turn servo to 0
delay(1000);//wait one second
middle.write(180); //turn servo to 180
delay(1000); // wait one second
middle.write(0); //turn servo to 0
delay(1000);//wait one second
ring.write(180); //turn servo to 180
delay(1000); // wait one second
ring.write(0); //turn servo to 0
delay(1000);//wait one second
pinky.write(180); //turn servo to 180
delay(1000); // wait one second
pinky.write(0); //turn servo to 0
delay(1000);//wait one second
}
Attaching the Ardruino and Servos
The photo above shows the servos on the left side and the Arduino and its base to the right
- To attach the servos, you can insert them onto your bottom of your wrist but if you do not have space, use your Styrofoam to make a base that equivalent to the wrist of your hand cutout
- With the base or wrist, make as many small holes as you have servos to fit
- Place glue at the bottom of the holes so the servos stay secure once you place them in
- To attach the Arduino, it is most likely you will have no available space so you will need an extra base
- Making the Arduino base, we used our Styrofoam and cut out a platform which was equal to the thickness of our hand and just wide and long enough to fit the device
- We attached this platform the the bottom of our hand on the back side of it
- Lastly, you need to connect your servos to your Arduino and your finger's strings and you have completed your robotic hand!