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

Codeschematicsdownload Button

PCB Gerber File

Gerber Filedownload Button

Components Required

Value Manufacturer Digikey Part Number Datasheet Link    Quantity
100n Murata Electronics 490-6328-1-ND  Murata Electronics Datasheet

Datasheet

14
1u Murata Electronics 490-10018-1-ND Murata Electronics GRM155R61E105MA12 datasheet

Datasheet

7
18pF Murata Electronics 490-5858-1-ND Murata Electronics GRM1555C1H180JA01 datasheet

Datasheet

2
4.7uF Samsung Electro-Mechanics 1276-1482-1-ND Samsung Electro-Mechanics CL05A475MP5NRNC datasheet

Datasheet

2
1n Murata Electronics 490-3244-1-ND Murata Electronics GRM1555C1H102JA01 datasheet

Datasheet

1
10uF Manufacturer 490-GRM155R60J106ME05DCT-ND Manufacturer GRM155R60J106ME05 01A datasheet

Datasheet

1
LED Red Harvatek Corporation 3147-B2841USD-20D001014U1930CT-ND Harvatek Corporation datasheet

Datasheet

2
LED Green Harvatek Corporation 3147-B2841NG--05D000514U1930CT-ND  Harvatek Corporation B2841NG05D000514U1930 datasheet

Datasheet

1
LED Blue Harvatek Corporation 3147-B2841NB--20C001414U1930CT-ND Harvatek Corporation B2841NB20C001414U1930 datasheet

Datasheet

1
ADM7171ACPZ-3.3-R7 Analog Devices 505-ADM7171ACPZ-3.3-R7CT-ND Analog Devices datasheet

Datasheet

1
CX60-24S-UNIT Hirose Electric Co Ltd H126317-ND  Hirose Electric Co Ltd datasheet

Datasheet

1
10k Panasonic Electronic Components P10.0KLCT-ND Panasonic Electronic Components datasheet

Datasheet

4
1k Panasonic Electronic Components P1.00KLCT-ND Panasonic Electronic Components AOA0000C304 datasheet

Datasheet

6
27R Panasonic Electronic Components P27.0LCT-ND Panasonic Electronic Components AOA0000C304 datasheet

Datasheet

2
5.1k Panasonic Electronic Components P5.1KJCT-ND Panasonic Electronic Components 1242 datasheet

Datasheet

1
RP2040 Raspberry Pi 2648-SC0914(13)CT-ND Raspberry Pi datasheet

Datasheet

1
W25Q16JVUXIQ_TR Winbond 256-W25Q16JVUXIQTRCT-ND Winbond datasheet

Datasheet

1
APDS-9500 Broadcom Limited 516-3579-1-ND Broadcom Limited datasheet

Datasheet

1
ADM803SAKSZ-REEL7 Analog Devices Inc. 505-ADM803SAKSZ-REEL7CT-ND Analog Devices Inc datasheet

Datasheet

1
YIC-12M20P2/XT324-10/10 Raltron Electronics 2151-RH100-12.000-18-2030-EXT-TRCT-ND Raltron Electronics datasheet

Datasheet

1