Animatronic Arm -- an Arduino Project

by ayman_023 in Circuits > Robots

109 Views, 1 Favorites, 0 Comments

Animatronic Arm -- an Arduino Project

IMG_9577.jpg
Code.jpg
onshapeSS2.png

This project is a submission for the 24-25 Butwin Elias Science and Technology Award, more commonly known as the BEST AWARD. This award was created by the Adam Iseman Foundation.


Welcome! My name is Ayman Assefa and I am a freshman at the Wilkes-Barre Area STEM Academy. The following instructable will provide a step-by-step guide regarding the process of creating an Arduino-controlled animatronic arm. This project will involve 3D printing, circuits, programming, and a plethora of problems to solve.


Overview

This project aims to create a fully functional robotic arm with individually controlled fingers. Each finger, except the thumb, which will have two, will have three different sections. These corresponding sections will connect using a four-prong hinge mechanism.

These fingers will connect to five connector points on each section of the palm. If done correctly, these fingers will bend around the axis point of the finger rods, yet will remain as sturdy as real joints.

Correspondingly, there will be fishing line connected to motors inside the forearms to contract fingers with elastic bands providing elongating tension mimicking the tendons of a genuine human hand.

These servos, controlled by five joysticks wired to an Arduino, will precisely spin in opposite directions to retract and extend the fishing line to control each finger separately.




Supplies

IMG_9470.jpg


Physical Supplies - Not Printed


***ANY BRAND NAME MATERIAL PRECEDED WITH ~ CAN BE SUBSTITUTED AND LIKELY FUNCTION THE SAME


~ Bambu P1S 0.4mm Nozzle - Any 3D Printer - here | $1,049 - free for use in STEM

~ Bambu Studio Software - here | free

~ Black PLA Basic Filament - here | $20/roll, around 50% used in project

4xAA Battery Holder - DC Plug Adapter - here | $6.99

4 or more AA batteries - here | $14.79

Screw Terminal Adapter - here | $3.97

40 Male to Female Jumper Cables - here | $6.98 ÷ 3

40 Male to Male Jumper Cables - here | $6.98 ÷ 3

~ Gorilla Glue Hot Glue Gun - here | $14.29

~ Gorilla Glue Hot Glue Sticks - here | $6.30

830 point breadboard - here | $8.99

~ Elegoo Arduino Uno R3 - here | $14.99

~ KY-023 Joystick 5 Count - here | $8.99

~ Elastic Band 3/32 Inches Diameter - here | $9.99

~ Fishing Line 0.45mm Diameter - here | $5.99

~ HP Pavilion (any laptop or PC with USB port) - here | variable pricing depending on brand and model

Arduino IDE Software - here | free

Tweezers (not necessary but helpful) - here | $5.99

Filament Scissors (not filament specific but helpful) - here | $9.99

MG90S Micro 9g Servos - here | $13.99


TOTAL w/o 3D Printer = $142.24

TOTAL w/ 3D Printer = $1,240.24


Printed Parts (STL files are included)


**All parts except the Servo Pulley + Joystick Hotbox were created and designed by me and me only

** The Servo Pulley + Joystick Hotbar are linked here and here-- the STL files will still be included with the other original files down below.


Forearm + Servo Organization


Forearm x 1

Servo Holder x 5

Cable Holder Back x 1

Cable Holder Front x 1

Servo Pulley Winches x 5 - here


Exterior Organizational Parts


Battery Stand (used for both Battery Holder and Joystick Mount) x 2

Battery Holder x 1

Joystick Mount x 1

Joystick Hotbox x 5 - here


Connecting Rods + Caps


Wrist Rod Cap x 2

Wrist Rod x 1

Finger Rod x 14


Finger Parts


** In total there should be 4 bases of the finger, but the middle and ring fingers are longer than the index and pinkies, although the two retrospective groups have the same lengths as each other.


Palm x 1

Thumb Base x 1

Thumb Top x 1

Index + Pinky Base x 2

Middle + Ring Base x 2

Finger Middle x 4

Finger Top x 4



STL Files are below ⬇️

Print and Gather 3D Printed Parts

BambuLabScreenShot.png

Parts - As Mentioned in Supplies Above


Each and every part should be printed with the corresponding amount to the right of the name of the item. There are no specific print settings that must be followed, all that matters is that each uses the STL files provided under the "Supplies" tab.


Forearm + Servo Organization


Forearm x 1

Servo Holder x 5

Cable Holder Back x 1

Cable Holder Front x 1

Servo Pulley Winches x 5 - here


Exterior Organizational Parts


Battery Stand (used for both Battery Holder and Joystick Mount) x 2

Battery Holder x 1

Joystick Mount x 1

Joystick Hotbox x 5 - here


Connecting Rods + Caps


Wrist Rod Cap x 2

Wrist Rod x 1

Finger Rod x 14


Finger Parts


Palm x 1

Thumb Base x 1

Thumb Top x 1

Index + Pinky Base x 2

Middle + Ring Base x 2

Finger Middle x 4

Finger Top x 4


-------- -------- -------- -------- -------- -------- -------- --------

This first step is the first building block in a series of actions needed to finish building this project. Although the list of parts may seem lengthy, many are small and used in simple ways and are simple to print; meaning, this project does not require a high end printer, but may require at minimum a printer with a 0.5mm nozzle or greater.

Once everything has been printed and support has been removed, gather all parts and prepare for contruction.


Organize Parts and Begin Construction of Thumb

IMG_9471.jpg
IMG_9580.jpg
IMG_9473.jpg

Construction of the Thumb


Why the thumb is different from the Index + Pinky and the Middle Two Finger groups: The thumb is wider than the other four fingers and is only separated into two sections

To begin, align the top face of the two sections with the larger cable pathways, the pathways for the elastic band, facing downward and the smaller cable pathways, for the fishing line, facing upwards. This insures that the finger will bend inward rather than outward.

Next, place two finger rods through the four prong hinge in order to form your thumb.

Note: Make sure to handle with care, finger will bend abnormally if either pathway is broken or disfigured.

Construction of Index & Pinky and Middle Two Fingers

IMG_9476.jpg
IMG_9477.jpg
IMG_9478.jpg
IMG_9479.jpg
IMG_9480.jpg

Similarly to the thumb, align the top face of the three sections of all fingers with the larger cable pathways, the pathways for the elastic band, facing downward and the smaller cable pathways, for the fishing line, facing upwards.

Next, put the three rods through each of the four prong hinges in order to form each of your fingers.

Align the two fingers with the longer bases in the middle to create your middle finger and your ring finger.

Finally, align all 5 fingers and set them aside for the next step.

Connecting Palm and Fingers

IMG_9481.jpg
IMG_9482.jpg

For this step simply run the rods through the connector pieces connected to the palms you did with the sections of the fingers.

Note: Handle your palm with special care as if the connector pieces break as they do with mine, they may point in different directions or may not fit without falling out.

Assembing Servo, Joystick, and Battery Holders

IMG_9484.jpg
IMG_9485.jpg
IMG_9486.jpg
IMG_9487.jpg

Joystick Holder


First, glue the joystick hotboxes with an array of 5 holes, either facing upward or downward (this is where the wires will be facing).

Similarly, glue the joysticks with the metal prongs on the underside fitting within the same holes of the joystick hotboxes.

Then, glue the Joystick stand and attach the short side to the underside of the Joystick Holder in order to form a stand for the joysticks.


Servo Holders


For this step, simply glue the servos into two groups like in the picture above.

** For the bottom two and the top two on the sides, make sure the wire hole is facing downwards, while for the topmost servo holder, make sure the wire hole faces upward.


Battery Holder


For this step, simply glue the second battery holder in the same orientation of the Joystick Stand to the underside of the Battery Holder.

Creating Resistance to the Contraction of the Fingers

IMG_9490.jpg
IMG_9492.jpg
IMG_9488.jpg
IMG_9489.jpg

For this step, you must repeat the instructions below across the three, two for the thumb, cable pathways below the corresponding fingers.

First, run an elastic band through the bottommost cable pathway and run it through the cable pathways leading to the tip of the finger.

Next, tie any knot that is sturdy enough to maintain tension.

Afterwards, cut the elastic band at the bottom and tie a similar knot at the top, yet this time apply 85% of the maximum amount of tension the finger can support.

This means that most servos will be able to contract the fingers, yet the fingers will still retract after the servo starts turning clockwise.

Palm to Forearm & More Assembly

IMG_9493.jpg
IMG_9494.jpg
IMG_9495.jpg
IMG_9496.jpg
IMG_9497.jpg
IMG_9502.jpg
IMG_9503.jpg

Palm to Forearm


In this step, run the Wrist Rod through the four prong hinge of the palm and forearm and support the palm before the next step.

Next, glue a cap onto either end of the wrist rod and remove the support of the palm.


Assembly - Forearm


First, align the group of two servo holders and glue them near the back of the forearm with the same orientation as instructed above.

Next, glue the Cable Guide Back with enough space for the Cable Guide Front and the other group of servo holders.

Then, do the same with the Cable Guide Front and servo holders, with enough space between the front of the overhang and the Cable Guide.


Assembly - Servo Pulleys


Simply glue the servo horns included with the attached servos to the flat edge of the servo pulley.


Secure Servos


**No picture since upload repeatedly failed.


For this step, place servos in servo holders with wires running through servo holes.

Make sure that cables run through any of the three holes on either side -- if they can all fit through one side, it is much easier to use.

Attach Pulleys and Run String Through Pathways

IMG_9515.jpg
IMG_9517.jpg
IMG_9519.jpg

At the end of these steps, attach string to pulley through the two of the four allotted holes and then attach servo horn to the corresponding servo. This will connect the string to the fingers.

Repeat for all five servos/fingers.

First, run the string from the servo you would like to use through one of the five forearm holes, one of the palm guideways, and each of the finger string loops.

Then, tie a sturdy knot at the tip of the finger and look towards the top for the rest of the directions.

Prepare Code

Code.jpg

Notes for IDE: Near the top it should show the port/Arduino board you have connected, if not, re-plug in your USB-B to USB cord and try again

The blue upload button will send the code to your Arduino only if the cord is connected, yet the hand can still work with IDE closed as long as it has two power sources.

I would like to preface that I myself did not write this code, I followed numerous tutorials as my knowledge in the world of robotic programming is very limited.

If you would like to debug/modify your code, yet no tutorials match what you are looking for, many chatbots can assist you.


Code for Copy/Paste


#include <Servo.h>


Servo servos[5];

int servoPins[5] = {3, 4, 5, 6, 7};

int joystickPins[5] = {A0, A1, A2, A3, A4};


void setup() {

for (int i = 0; i < 5; i++) {

servos[i].attach(servoPins[i]);

}

}


void loop() {

for (int i = 0; i < 5; i++) {

int joyVal = analogRead(joystickPins[i]);


if (i == 2) {

if (joyVal > 512) {

int angle = map(joyVal, 512, 1023, 180, 0); // Reverse map

servos[i].write(angle);

} else {

servos[i].write(180);

}

} else {

if (joyVal > 512) {

int angle = map(joyVal, 512, 1023, 0, 180);

servos[i].write(angle);

} else {

servos[i].write(0);

}

}

}


delay(15);

}



Wiring

IMG_9569.JPG
tinkercad.jpg

Please follow the above diagram for wiring, but below are some steps to repeat.


This is a long step, below are some tips.


There are commonly three different connections with servos and joysticks.

A. 5V wire - Power distribution, usually a + or red wire

B. GND wire - Ground, usually a - or black wire

C. Signal - To send information, usually a yellow wire


Joysticks use analog inputs and servos use digital inputs.

Each servo will connect to D3 through D7.

Each joystick will connect A0 through A4.

For both, the 5V will connect to the red wire and the GND will connect to the black wire.


You should use jumper cables to connect to the breadboard and the Arduino should have a GND connecting to any - on the breadboard.


Once all the wires are connected like the diagram above, you should be entirely completed and you are left to organization like attaching the battery holder and joystick holder, both entirely option pieces as they will work without.


HOW TO USE: Connect batteries to screw terminal port and USB to the Arduino and move joysticks for each finger.

Conclusion

Best Award 2025 Showcase -- Working Robotic Hand

Thank you for reading the entirety of my instructables. Attached is a YouTube video showing the working project with some words on how the project went for me.


This project was really enjoyable to complete, and it has taken me the greater part of two and a half weeks to complete this project. Although the first week was just simple brainstorming and deciding what I wanted to do. The next two weeks were spent researching parts needed for this project, making sure that everything was compatible. The past couple of days, I have spent my time printing, although two of 3D printers were broken conveniently during the span of this project, while they have also spent time creating this instructable and assembling the parts.


Though, there were many points during this project in which there could have been room for improvement. To start, the fingers had a limited range of motion because of the servos being locked at 180 degrees rather than a continuous 360, but they still functioned alright if you managed to fine tune the placement of the servo pulleys. Another aspect that could have been improved is the overall build quality. During this project, although it wasn’t noticeable, many of the connector pieces on the palm or the fingers’ fishing line guideways would snap. Though this may have been caused by rough transport to and from school, it still applies. The final aspect I wish I could have changed was the block-like features of the rifts and valley’s palm — I really wish that I could have made it similar to a palm, but I lacked the knowledge to properly apply the loft feature on different sketch planes of that complexity.


Overall, no matter how I place in this project, it has been an experience, and I would do it again in a heartbeat.

Also, thank you, Mr. Eberts, for the words of advice during the span of this project.