CASE STUDY · ROBOTICS COURSE · 2025
Robotic Hand Gripper
A 3D-printed gripper driven by Python hand tracking through an Arduino, built as a group project. Raise fingers and the gripper opens to match.
DEMO DAY



WHO DID WHAT
My contribution
- Created the hand-tracking component
- Helped with the Arduino programming
- Adapted an online gripper design to our build
- Did all 3D printing and print cleanup
- Did the breadboard wiring
Teammates
- Assembly
- Documentation
- Presentation
- Arduino programming, shared with me
TECHNICAL DECISIONS
Hand tracking in Python
OpenCV reads the webcam and MediaPipe Hands finds 21 points on one hand, at a 70% confidence threshold. The code counts raised fingers by checking whether each fingertip sits above the joint below it, then maps the count (0 to 5) to a servo angle from 0° to 180°.
A control app, not just a script
A customtkinter desktop window shows the annotated camera feed and a 0–180° slider for manual control. Tracking runs on a background thread so the window stays responsive.
From computer to Arduino
Python sends each new angle over USB serial at 115,200 baud as text ending in a semicolon, and only when the angle changes. The Arduino collects characters into a buffer, and on the semicolon converts the number and moves the servo. I wrote the hand-tracking code and helped with the Arduino side.
Designing and printing the hand
The gripper started from a design found online for a 9g micro servo. I adapted it to our build, then printed every part and cleaned up the prints.
Wiring
One servo on the Arduino, signal on pin A2, wired through a breadboard.
The live demo on this site is a browser re-creation: it tracks each finger separately, while the original gripper turns the finger count into one servo angle.
Try the hand tracking yourself →