Smart Presentation Controller Using DFRobot GR10-30 Gesture Sensor

by rohanbarnwal in Circuits > Arduino

48 Views, 0 Favorites, 0 Comments

Smart Presentation Controller Using DFRobot GR10-30 Gesture Sensor

20251114_0133_Gesture Control Tech_simple_compose_01k9zcz073ffraf4bz7y5ar3ma.png
Screenshot 2025-11-14 012542.png

The Smart Presentation Controller is an innovative system designed to navigate presentation slides using simple hand gestures. It leverages the DFRobot GR10-30 Gesture Sensor along with an Arduino Pro Micro to detect left and right hand gesture and simulate keyboard arrow key presses to change slides.

Inspiration Behind the Project

During a hackathon, I noticed a frustrating issue-an explainer was presenting an amazing project, but due to a delay in manually controlling the slides, the flow of the presentation was constantly disrupted. This delay between the explainer and the slide controller created an awkward experience for the audience and the presenter. This inspired the idea of developing a Smart Presentation Controller that eliminates such delays by allowing presenters to navigate slides seamlessly with hand gestures. This project is particularly useful for presenters who want a touch-free solution to navigate slides, improving engagement and ease of use during lectures, meetings, or conferences.

Supplies

  1. Arduino Pro Micro: A microcontroller that supports USB keyboard emulation


  1. DFRobot GR10-30 Gesture Sensor: Detects different gestures like right, left, up, and down clockwise and counterclockwise hand gestures.


  1. Jumper Wires: Used for electrical connections.

Enclosure and Prototyping Finished

while the Smart Presentation Controller works reliably on a breadboard, presenting it in a proper enclosure significantly improves durability and visual appeal - especially during demos, exhibitions, or competitions.

To achieve a more polished and professional finish, makers can use rapid prototyping and fabrication services such as JUSTWAY. These services help convert digital enclosure designs into physical parts using methods like 3D Printing, CNC Machining, or Sheet Metal Fabrication, making the project feel closer to a market ready product.

How To Order in 4 Easy Steps


Upload Your CAD Files at JUSTWAY.com

Screenshot 2025-12-22 142821.png

Start by uploading your STL or STEP files

Select Material & Finish

22.png

Choose from plastics, resins, or metals depending on your design

Preview Your Model in 3D

333.png

Live dimension check ensure perfect fitting before production

Place Your Order

44.png

Transparent pricing, fast delivery, and zero hidden costs.

Wiring Diagram

Screenshot 2025-11-14 014906.png

DFRobot GR10-30 Gesture Sensor To Arduino Pro Micro

  1. VCC To VCC
  2. GND To GND
  3. SCL To SDA (Pin 2)
  4. SCL To SCL (Pin 3)

The GR10-30 Gesture Sensor communicates with the Arduino Pro Micro via I2C protocol

Code Explanation

Including Necessary Libraries:

#include "DFRobot_GR10_30.h"
#include <Keyboard.h>
  1. The DFRobot_GR10-30 library is used to interface with the gesture sensor.
  2. The keyboard library enables the Arduino Pro Micro to send keyboard inputs to a computer.

Configuring I2C Communication

#define I2CMODE
DFRobot_GR10_30 gr10_30(/*addr = */GR10_30_DEVICE_ADDR, /*pWire = */&Wire);
  1. The sensor is initialized in I2C mode for communication with the Arduino

Initializing the Sensor in setup()

void setup() {
Serial.begin(115200);
Keyboard.begin(); // Initialize Keyboard functionality
while (gr10_30.begin() != 0) {
Serial.println("Sensor initialization failed!");
delay(1000);
}
Serial.println("Sensor initialized successfully!");
gr10_30.enGestures(GESTURE_LEFT | GESTURE_RIGHT); // Enable left and right gestures
}
  1. The sensor is initialized and configured to recognized left and right swipe gestures.

Detecting Gestures and Simulation Key Presses

void loop() {
if (gr10_30.getDataReady()) {
uint16_t gestures = gr10_30.getGesturesState();
if (gestures & GESTURE_LEFT) {
Serial.println("Right gesture detected");
Keyboard.press(KEY_LEFT_ARROW);
delay(100);
Keyboard.release(KEY_LEFT_ARROW);
}
if (gestures & GESTURE_RIGHT) {
Serial.println("Left gesture detected");
Keyboard.press(KEY_RIGHT_ARROW);
delay(100);
Keyboard.release(KEY_RIGHT_ARROW);
}
}
delay(1); // Small delay for stability
}
  1. The gesture sensor detects movements
  2. Left swipe triggers the left arrow key (previous slide).
  3. Right swipe triggers the right arrow (next slide).
  4. A small delay ensures stability


Working Mechanism

  1. The gesture sensor detects hand movements.
  2. If a left swipe is detected, the left arrow key is pressed, moving to the previous slide.
  3. If a right swipe is detected, the right arrow key is pressed, advancing the presentation.
  4. The Arduino Pro Micro acts as a keyboard, sending keypress signal to the computer.
  5. The 3D-printed casing holds the components securely, allowing for a compact and stable setup.

Conclusion

The Smart Presentation Controller is a simple yet powerful tool for hands-free slide navigation using gestures. By integrating the DFRobot GR10-30 Gesture Sensor with an Arduino Pro Micro, users can seamlessly control presentations with intuitive hand movements. This project is ideal for educators, professionals, and presenters seeking a convenient, touch-free experience. This project was inspired by a real-world problem observed at a hackathon, where a delay between the presenter and the slide controller disrupted the presentation flow. The Smart Presentation Controller aims to solve this problem by providing an effortless, gesture-based navigation system for presenters.