Keyboard Gloves

Summary of Keyboard Gloves


Summary (under 100 words) Gloves convert finger presses and bends into QWERTY keystrokes by combining fingertip push buttons, flex sensors, and copper contacts. A PIC32 reads multiplexed sensor inputs, amplifies flex readings, determines row/column, and sends UART messages to a Python script that generates keyboard events on the computer. The system supports lowercase letters, comma, period, and backspace (semicolon/slash replaced), but not modifier keys or numbers. Calibration adjusts per-finger thresholds; wires and external USB/PICkit3 connections provide power and programming.

Parts used in the Keyboard Gloves:

  • PIC32 microcontroller (PIC32MX250F128B)
  • PICkit 3 programmer
  • USB cable (with VDD, GND, Data+, Data- lines)
  • 10 push buttons (one per finger/thumb)
  • 8 flex sensors (one per finger, excluding thumbs)
  • Two 8-to-1 analog multiplexers
  • Op-amp for non-inverting amplifier circuit
  • Trimpot (for amplifier tuning)
  • Resistors (including 30 kΩ for flex sensor dividers, 10 kΩ for MCLR pull-up, pulldown resistors)
  • Capacitors (0.1 uF ceramic, 10 uF tantalum for VCAP)
  • Copper tape contacts (index-to-middle finger)
  • Breadboard and wiring
  • Sewing materials and gloves (fabric, thread, stress relief loops)

Introduction

We created gloves that allow users to type on any hard surface as if they were using a QWERTY keyboard. The gloves recognize the standard QWERTY keyboard layout by recognizing which finger is pressed, and how bent the finger is. It is limited to recognizing the three primary rows along the keyboard, from “q” in the top left to “?” in the bottom right. For the index fingers, the gloves also distinguish when the left index finger is away from the other fingers to distinguish between “t-g-b” and “r-f-v” keys, and similarly for the right hand. Furthermore, the gloves act just like a keyboard, meaning that a user can use our product on to type on any program that they want.

While touch screens are a good alternative for portable computer mouses, keyboards on touch screens give little haptic feedback, and are frequently small. This makes it difficult for people accustomed to normal keyboards to use. Although there are other projects that have tried to use gloves as a computer interface, such as CyberGlove and KeyGlove, most are either (1) gesture based, (2) generic sensor gloves, or (3) prototypes that have not been completed. The most similar project that we could find is KITTY, but it is still in early development. For a list of popular glove-based input devices, we refer the reader to the KeyGlove website. Our project is unique because we propose to create a glove input that acts as a generic QWERTY keyboard, rather than a general input sensor. A pictures with all components is shown in Figure 1.

Figure 1: Picture of all components, including the USB cable and the PICkit3.

Quick Solutions to Questions related to Keyboard Gloves:

  • What keys do the gloves support?
    The gloves support lowercase letters, a comma, a period, and backspace (semicolon and slash replaced with backspace); they do not support SHIFT, ALT, CTRL, or numbers.
  • How do the gloves determine which key row is pressed?
    Each finger has a flex sensor read through an analog mux and an amplified ADC input; predefined per-finger thresholds map flex sensor voltages to top, middle, or bottom rows.
  • How is column ambiguity for index fingers resolved?
    Copper tape contacts between index and middle fingers detect if the index finger is close to the middle finger, disambiguating column selection for index presses.
  • How is sensor data sent to the computer?
    The PIC32 sends UART messages over USB to a Python script, which converts the messages into keyboard events on the computer.
  • Can the gloves act as a standard USB HID keyboard?
    No, the project uses a Python script to convert UART messages to keyboard events; the PIC32 is not implemented as a HID/USB device.
  • How are flex sensors amplified for ADC reading?
    A tunable non-inverting op-amp amplifier with resistors and a trimpot increases the dynamic range before the ADC reads the flex sensor output.
  • Is there calibration for differing flex sensor behavior?
    Yes, an optional calibration phase samples each finger for known keys and computes per-finger thresholds between rows.
  • How are button presses debounced?
    The glove thread implements a state machine that debounces input and registers a key only on transitions to the PUSHED state.
  • How are the push buttons and flex sensors read with limited MCU pins?
    Two 8-to-1 analog multiplexers are used—one for push buttons and one for flex sensors—to reduce the number of MCU pins required.

About The Author

Muhammad Bilal

I am a highly skilled and motivated individual with a Master's degree in Computer Science. I have extensive experience in technical writing and a deep understanding of SEO practices.