예술
뷰티 및 웰니스
공예
문화 및 역사
엔터테인먼트
환경
음식 및 음료
그린 퓨처
역공학
과학
스포츠
기술
웨어러블
Flex Sensor Glove — Control 5 Servo Motors with Hand Gestures
E

작성자

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

안내

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.

재료

  • SparkFun Inventor's Kit - V3.2 - 1 kitNOK 999.20
    보기
  • Flex Sensor 2.2 Inch - 4 piecess플레이스홀더
    보기
  • SG90 Micro Servo Motor (5-Pack) - 1 pack플레이스홀더
    보기
  • Resistor 10K Ohm 1/6th Watt PTH - 20 pack - 1 packNOK 11.20
    보기
  • Jumper Wire Kit (350pcs, M-M / M-F / F-F) - 1 kit플레이스홀더
    보기
  • Super Glue (Cyanoacrylate) - 1 bottle
    보기
  • Cloth Glove - 1 piece플레이스홀더
    보기

필요 도구

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

CC0 퍼블릭 도메인

이 블루프린트는 CC0로 공개되었습니다. 어떤 목적으로든 자유롭게 복사, 수정, 배포 및 사용할 수 있습니다.

제품 구매를 통해 메이커를 지원하세요. 판매자가 설정한 메이커 커미션 을 받거나, 이 블루프린트의 새로운 반복을 만들어 연결로 포함시킬 수 있습니다.

토론

(0)

로그인 하여 토론에 참여하세요

댓글 로딩 중...