Build
Hardware
For the full breakdown, see the detailed part & material sheets - separate links for 3D Parts and Electronics.
Reads potentiometer values and drives the motor outputs via digital pins.
High-torque servos for each finger joint — providing precise, repeatable movement.
Analogue inputs (A0, A1) that feed positional data back to the control loop.
H-bridge module that translates Arduino output signals into motor direction and speed.
Open-source hand design by Gael Langevin — printed in PLA and used as the mechanical chassis.
Captures the user's hand in real time, feeding frames into the gesture recognition pipeline.
Portable power source for untethered operation of the Arduino, servos, and motor driver.
Standard prototyping components for rapid iteration without permanent soldering.
Code
# 1. Load models
hand_detector ← load_model("mediapipe_hands")
gesture_model ← load_model("sarra_gesture_classifier")
# 2. Open camera
stream ← open_camera(device=0)
# 3. Inference loop
LOOP:
frame ← stream.read()
landmarks ← hand_detector.detect(frame) // 21 keypoints
IF landmarks found:
gesture ← gesture_model.classify(landmarks)
serial.send(gesture) // → Arduino// 1. Initialise
servos ← attach([pin3, pin5, pin6, pin9, pin10, pin11])
serial.begin(9600)
// 2. Control loop
LOOP:
IF serial.available():
gesture ← serial.read()
angles ← map_gesture_to_angles(gesture)
FOR EACH servo IN servos:
servo.write(angles[servo.id])
delay(15ms)References
Sources