Introduction: Bionic Extra Thumb

Have you ever tried to hold more than a handful of items and needed another finger to grasp it all? Did you want to create new neural pathways in your brain while you're at it? With my extra thumb, you can achieve both of these goals while making a fun mechatronics project that will augment the human body, pushing it to unlimited possibilities.

Hi there! My name is Sujay, a senior at Irvington High School and this is the B.E.T., or the Bionic Extra Thumb. It's inspired by the extra thumb showcase in this video by Freethink and it was made as my S.I.D.E. Project for my Principals of Engineering class with the help of Ms. Berbawy of Berbawy Makers. I hope you enjoy reading about my process and hopefully, you'll be inspired to create your own bionic augmentations.

Supplies

Step 1: Designing the Thumb

Firstly, I designed the thumb with the CAD software Autodesk Fusion 360. The thumb's size, joints, and hand mount are all essential to how the project will work mechanically and ergonomically.

1) I designed the thumb with 3 joints. 2 of the joints allowed the thumb to move downwards and the 3rd joint allowed the thumb to move into the palm. I made these joints with 0.5 mm of tolerance for the thumb to bend easily and for the 3D printer to print the thumb in one print (Picture 1 and 2).

2) Using the joints in Fusion 360, I could see how much the thumb bent and I altered the angles of the joints to get the ideal thumb grasp.

3) Then I added holes for strings to go through, prongs for the elastic bands, and slots for the tubing to go into (Pictures 1, 3 and 4).

4) The final parts of the CAD model was to make a hand mount by measuring the thickness of my palm and hard-stops for the joints. I made sure to include a slit for the strap for the mount (Picture 1 and 4).

Step 2: Assembling the Thumb

All of the parts for this project were printed on my Bambu Lab P1P with Esun PLA+ filament.

1) I printed the thumb with the joints vertically on the build plate for the joints to bend smoothly (Picture 1).

2) The string was then threaded through the holes with one string per axis of movement. For retraction of the thumb, I added 3 of the elastic bands to the back of the thumb across each joint (Picture 2 and 3).

Step 3: Motorizing

1) I created a servo motor mount to secure it to an arm mount. I created the arm mount my measuring the width of my forearm and then added 20 mm on each side to extend it past my arm (Picture 1 and 2).

2) Then I added slits for Velcro straps to go through to secure the mount to my arm (Picture 2).

3) To retract the string, I created a pulley with holes to mount onto a servo horn. Then to have the string taut between the servo motor and extra thumb, I added slots for the tubing right above the pulley (Picture 3, 4, and 5).

4) I used M4 screws and nuts in countersunk holes to attach the servo motor mounts to the arm mounts and the servo horns to the pulleys (Picture 4 and 5).

5) To finish this part I added Velcro straps through the slots (with printed buckles to secure the straps) and attached the tubing from the servo motor mount to the extra thumb then ran the string from each axis of movement on the extra thumb through the tubing to the respective pulleys. To secure the string in the pulley, I wrapped the string around a screw in the pulley and then tightened it, locking the string between the pulley and the screw head (Picture 5 and 6).

Step 4: Circuitry and Code

To understand how the circuitry and code of the flex sensors work, I watched this tutorial. Based on the circuit in this tutorial, I built my circuit similarly and duplicated it to handle two flex sensors.

1) First, I built the my new circuit in the free circuitry software Tinkercad and then replicated it in real life using the code from the tutorial. I wrote the code in the Arduino IDE and used the same software to deploy it into my Arduino Uno R3 (Picture 1, 2, and 3).

2) For this project's circuit, I started with the breadboard by putting in both flex sensor circuits, making sure that the analog output was taken from the ground side of the resistor. I connected each flex sensor to its circuit by using extension wires from the breadboard to the flex sensor after I soldered the flex sensors to jumper wires (Picture 1, 4, and 6).

3) Then I put the power and ground cables for the servo motors into the breadboard (Picture 1 and 4).

4) Now for the Arduino, I took the two flex sensor analog output jumper wires and put them into analog input pins on the Arduino (Picture 1 and 5).

5) The servo motors' control wires were connected with a jumper wire to the digital input pins (Picture 1 and 5).

6) Finally I took a 5V power input from the Arduino to one power rail on the breadboard and then used a jumper wire to take it to the second power rail but took two ground wires from the Arduino and put one in each ground rail. Then I connected all the power and ground for the flex sensors to one power and ground rails and then connected all the power and ground for the servo motors to the second power and ground rails. This ensures that the flex sensors have their own ground output to give the Arduino accurate flex values (Picture 1 and 5).

7) Finally to program the servo motors, I mapped the value range of each flex sensor to a corresponding servo motor's angle. This code made it so that the more I bent a flex sensor, the more the thumb would contract in one direction (Picture 3).

Step 5: Arm Mount for Circuits

To keep the extra thumb mobile, I had to attach the entire circuit onto my body. To do this I had to create another arm mount but this time for the Arduino and the breadboard.

1) I took the arm mount from the servo motor arm mounts and made them longer and wider to fit on my upper arm (Picture 2).

2) To keep the Arduino and the breadboard secure, I made a case for each with holes for M4 screws to not only close the case but to attach it to the arm mounts. I then added holes aligned with the cases that were countersunk in the arm mounts (Pictures 2, 3, 4, and 5).

3) I added wire management to the mount by creating 2 wire management hooks on two sides of the breadboard and cable covers. One hook groups the wires that lead to the Arduino on the other side of my upper arm and the other hook leads to the servo motors (Picture 4, 5, and 6).

4) Finally I printed the mounts and the electronics cases and screwed each electrical component into its case and onto the mount. Then I put the Velcro straps through the slots and added the printed buckles (Picture 6 and 7).

Step 6: Final Steps

In order to make the thumb fully operational, there must be a few additions first.

1) To control the flex sensors easily, I made special buckles, that go on the same material that was used for the used for the arm mounts, which have slots in them for the flex sensors to slide into (Picture 1).

2) Then I wrapped two of these buckles on my left index and another 2 on my middle finger while wearing a spare glove. I marked where they were and sewed the straps to the glove, securing the buckles to the glove and thus securing the flex sensors to the glove, giving me accurate control of my extra thumb's two motions (Picture 1 and 2).

3) To give the thumb a human-like grip, I covered the fingertip in electrical tape as electrical tape creates lots of friction and thus makes for a grippy outer layer (Picture 3).

Step 7: High Six!

Now that the extra thumb is done, I can do all sorts of things from picking up objects with just my thumbs to giving people high sixes.

This project was a blast to work on as it involved my favorite engineering field: mechatronics. Mechatronics involves 3 fields of engineering: mechanical, electrical, and computer. I had the most experience with the mechanical side, so this project allowed me to strengthen my skills in the other fields of electrical engineering and computer programming.

Thank you for reading my tutorial and if you decide to embark on a similar project I wish you lots of luck!