SZTUKA
Piękno i dobre samopoczucie
RZEMIOSŁO
KULTURA I HISTORIA
ROZRYWKA
ŚRODOWISKO
JEDZENIE I NAPOJE
ZIELONA PRZYSZŁOŚĆ
INŻYNIERIA ODWROTNA
NAUKI
LEKKOATLETYKA
TECHNOLOGIA
URZĄDZENIA DO NOSZENIA
Flex Sensor Glove — Control 5 Servo Motors with Hand Gestures
E

Created by

Ed

19. March 2026

Flex Sensor Glove — Control 5 Servo Motors with Hand Gestures

Transform a simple cloth glove into a gesture-control interface! Glue a flex sensor onto each finger, wire them through a voltage divider circuit on a breadboard, and map each finger's bend angle to an individual servo motor. Move your fingers to control five servos independently — the foundation for a robotic hand, puppet controller, or accessibility device. No soldering required.

Intermediate
45-60 minutes

Instructions

1

Parts & Introduction

This project extends the SIK Circuit 9 (flex sensor + servo) concept to five fingers. Instead of holding a flex sensor in your hand, you'll glue one onto each finger of a cloth glove, creating a wearable gesture controller that drives five independent servo motors.

Parts Needed (from the SparkFun Inventor's Kit + extras)

  • 1x SparkFun RedBoard (Arduino Uno compatible) + USB cable
  • 1x Solderless Breadboard
  • 5x Flex Sensors (2.2 inch) — kit includes 1, you need 4 more
  • 5x SG90 Micro Servo Motors
  • 5x 10KΩ Resistors (for voltage dividers)
  • ~30x Jumper Wires (M-M and M-F mix)
  • 1x Cloth or cotton glove (tight-fitting)
  • Super glue (cyanoacrylate)

Concept: Each flex sensor forms a voltage divider with a 10K resistor. Bending a finger changes the sensor's resistance (flat ≈ 10KΩ, bent ≈ 30KΩ), which shifts the voltage at the analog pin. The Arduino reads all 5 analog inputs and maps each to a servo angle (0°–180°).

2

Prepare the Glove

Use a tight-fitting cotton or jersey glove — it needs to follow your finger movements precisely.

Attaching the Flex Sensors

  1. Put the glove on your hand and mark the center line of each finger (top side, from knuckle to fingertip).
  2. Remove the glove and lay it flat.
  3. Apply a thin line of super glue along each finger's center line.
  4. Press a flex sensor onto each finger, component side (striped side) facing outward. The sensor should sit along the top of each finger so it bends when you curl your fingers.
  5. Let the glue cure for 5 minutes. The sensor leads should extend past the wrist area of the glove.

Tip: Leave 2-3 cm of sensor lead free at the base (near the wrist) — you'll attach jumper wires here.

3

Wire the Voltage Dividers

Breadboard Layout — 5 Voltage Dividers

Each flex sensor needs a voltage divider circuit. Repeat this for all 5 fingers:

  1. Connect one lead of the flex sensor to the 5V rail on the breadboard.
  2. Connect the other lead to a row on the breadboard — this is the signal node.
  3. From that same signal node, connect a 10KΩ resistor to GND.
  4. From that same signal node, run a jumper wire to an Arduino analog pin.

Pin Assignments

FingerAnalog PinServo Pin
ThumbA0D3
IndexA1D5
MiddleA2D6
RingA3D9
PinkyA4D10

Important: Use the PWM-capable digital pins (marked with ~) for the servos. Pins 3, 5, 6, 9, 10 are all PWM on the Arduino Uno.

4

Wire the Servo Motors

Servo Connections

Each SG90 servo has 3 wires:

  • Red → 5V rail (shared power)
  • Brown/Black → GND rail (shared ground)
  • Orange/White → Digital PWM pin (see table in Step 3)

Arrange all 5 servos in a row next to the breadboard. You can tape or hot-glue them to a piece of cardboard to keep them stable.

Power Considerations

5 servos drawing current simultaneously can overload the Arduino's USB power. If you notice erratic servo behavior:

  • Use an external 5V power supply (e.g., a phone charger with stripped USB cable) connected to the breadboard's power rail
  • Connect the external supply's GND to the Arduino's GND (common ground)
  • Keep the Arduino powered via USB for programming and serial communication
5

Upload the Arduino Code

Open the Arduino IDE, paste the code below, and upload it to your board.

flex_glove_5servo.inoarduino
/*
  Flex Sensor Glove — 5-Finger Servo Control
  Based on SparkFun Inventor's Kit Circuit 9

  Each finger has a flex sensor in a voltage divider.
  Bending a finger moves the corresponding servo.

  Hardware:
    Flex sensors: A0-A4 (each with 10K to GND)
    Servos: D3, D5, D6, D9, D10

  No soldering required — all connections via breadboard.
*/

#include <Servo.h>

Servo thumbServo;
Servo indexServo;
Servo middleServo;
Servo ringServo;
Servo pinkyServo;

// Analog pins for flex sensors
const int flexPins[] = {A0, A1, A2, A3, A4};

// Servo objects in matching order
Servo* servos[] = {&thumbServo, &indexServo, &middleServo, &ringServo, &pinkyServo};

// Calibration: adjust these to your sensors
// Flat (open hand) and bent (closed fist) analog readings
const int FLEX_FLAT = 600;
const int FLEX_BENT = 900;

void setup() {
  Serial.begin(9600);

  thumbServo.attach(3);
  indexServo.attach(5);
  middleServo.attach(6);
  ringServo.attach(9);
  pinkyServo.attach(10);

  Serial.println("Flex Glove Ready — open and close your hand!");
}

void loop() {
  for (int i = 0; i < 5; i++) {
    int flexValue = analogRead(flexPins[i]);

    // Map sensor range to servo angle
    int angle = map(flexValue, FLEX_FLAT, FLEX_BENT, 0, 180);
    angle = constrain(angle, 0, 180);

    servos[i]->write(angle);

    // Debug output
    Serial.print("F");
    Serial.print(i);
    Serial.print(": ");
    Serial.print(flexValue);
    Serial.print(" -> ");
    Serial.print(angle);
    Serial.print("°  ");
  }
  Serial.println();

  delay(20);  // Small delay for servo stability
}
6

Calibrate & Test

Initial Calibration

  1. Upload the code and open Serial Monitor (9600 baud).
  2. With the glove on, hold your hand flat and open. Note the analog values for each finger (F0–F4). These are your FLEX_FLAT values.
  3. Make a tight fist. Note the new values. These are your FLEX_BENT values.
  4. Update the constants in the code and re-upload.

Each finger may have slightly different ranges — for precision, you can use per-finger calibration arrays instead of shared constants.

What You Should See

Each servo responds independently to its corresponding finger. Open your hand → servos at 0°. Close your fist → servos at 180°. Individual finger movements control individual servos.

Troubleshooting

  • Servo jitters: Add a small capacitor (100µF) across the servo power rails, or use external power.
  • Sensor reads don't change: Check the voltage divider — the 10K resistor must go to GND, not 5V.
  • Wrong finger maps to wrong servo: Verify your pin assignments match the table in Step 3.
  • Servos move erratically: USB power may be insufficient for 5 servos. Use an external 5V supply.

Ideas for Next Steps

  • Build a robotic hand where each servo pulls a tendon (string) connected to a 3D-printed finger.
  • Add an LCD display showing each finger's angle in real-time.
  • Use the glove to control a robot arm over Bluetooth or WiFi.
  • Map finger gestures to keyboard shortcuts for accessibility input.

Materials

  • SparkFun Inventor's Kit - V3.2 - 1 kitNOK 999.20
    Zobacz
  • Flex Sensor 2.2 Inch - 4 piecessPlaceholder
    Zobacz
  • SG90 Micro Servo Motor (5-Pack) - 1 packPlaceholder
    Zobacz
  • Resistor 10K Ohm 1/6th Watt PTH - 20 pack - 1 packNOK 11.20
    Zobacz
  • Jumper Wire Kit (350pcs, M-M / M-F / F-F) - 1 kitPlaceholder
    Zobacz
  • Super Glue (Cyanoacrylate) - 1 bottle
    Zobacz
  • Cloth Glove - 1 piecePlaceholder
    Zobacz

Wymagane narzędzia

  • Computer with Arduino IDE
  • USB Cable (Type A to B)

CC0 Public Domain

Ten plan jest udostępniany na licencji CC0. Możesz go swobodnie kopiować, modyfikować, rozpowszechniać i wykorzystywać do dowolnych celów, bez konieczności uzyskiwania zgody.

Wesprzyj Makera kupując produkty przez jego plan, za co zarabia Prowizja Makera ustalony przez sprzedawców, lub stwórz nową iterację tego planu i dołącz go jako połączenie w swoim własnym planie, aby dzielić się przychodami.

Discussion

(0)

Log in aby dołączyć do dyskusji

Ładowanie komentarzy...