Gesture Recognition for Computers and Smartphones

Published  July 31, 2024   
S Staff
Author



Overview

We have seen many types of control methods in electronic devices, including simple switches, rotary encoders, touch screens and even voice commands. Even though all of these methods work fine, we are always eager to try new methods for controlling our devices. One of which includes gesture recognition. Even the tech giant Google has been working on their own gesture recognition sensor named Project Soli. Inspired by that we have created our own gesture sensor. Our DIY module can be easily connected to a PC or Mac via a USB-C port, allowing you to control media playback, navigate applications, and perform any action that can be executed using a keyboard, all through intuitive gestures. 

For gesture sensing we are using the APDS-9500 sensor from Broadcom. It is an imaging-based gesture recognition IC with an I2C-bus interface. It can recognise nine gestures, including move up, move down, move left, move right, move forward, move backwards, circle-clockwise, circle-counterclockwise and wave. An RP2040 ARM SoC from the Raspberry Pi Foundation is being used as the main controller. When it is plugged in the RP2040 will enumerate an HID device and whenever a gesture is detected it will send a corresponding pre-programmed response to the PC using HID protocol. An ADM7171 ultra low noise LDO from Analog Devices is used for generating the 3.3V line for the SoC and the Sensor. To ensure the proper operation of the SoC we have also included an ADM803 voltage supervisor chip, which is also from Analog Devices.
 

Code File

PCB Gerber File

Components Required

Value Manufacturer Digikey Part Number Datasheet Link    Quantity
100n Murata Electronics 490-6328-1-ND  Datasheet 14
1u Murata Electronics 490-10018-1-ND  Datasheet 7
18pF Murata Electronics 490-5858-1-ND  Datasheet 2
4.7uF Samsung Electro-Mechanics 1276-1482-1-ND  Datasheet 2
1n Murata Electronics 490-3244-1-ND  Datasheet 1
10uF Manufacturer 490-GRM155R60J106ME05DCT-ND  Datasheet 1
LED Red Harvatek Corporation 3147-B2841USD-20D001014U1930CT-ND  Datasheet 2
LED Green Harvatek Corporation 3147-B2841NG--05D000514U1930CT-ND  Datasheet 1
LED Blue Harvatek Corporation 3147-B2841NB--20C001414U1930CT-ND  Datasheet 1
ADM7171ACPZ-3.3-R7 Analog Devices 505-ADM7171ACPZ-3.3-R7CT-ND  Datasheet 1
CX60-24S-UNIT Hirose Electric Co Ltd H126317-ND  Datasheet 1
10k Panasonic Electronic Components P10.0KLCT-ND  Datasheet 4
1k Panasonic Electronic Components P1.00KLCT-ND  Datasheet 6
27R Panasonic Electronic Components P27.0LCT-ND  Datasheet 2
5.1k Panasonic Electronic Components P5.1KJCT-ND  Datasheet 1
RP2040 Raspberry Pi 2648-SC0914(13)CT-ND  Datasheet 1
W25Q16JVUXIQ_TR Winbond 256-W25Q16JVUXIQTRCT-ND  Datasheet 1
APDS-9500 Broadcom Limited 516-3579-1-ND  Datasheet 1
ADM803SAKSZ-REEL7 Analog Devices Inc. 505-ADM803SAKSZ-REEL7CT-ND  Datasheet 1
YIC-12M20P2/XT324-10/10 Raltron Electronics 2151-RH100-12.000-18-2030-EXT-TRCT-ND  Datasheet 1