Gesture Control Robot

by nilutpolkashyap in Circuits > Robots

524 Views, 1 Favorites, 0 Comments

Gesture Control Robot

Screenshot 2022-09-13 at 03-29-02 Gesture Control Robot.png

It is a gesture-controlled robot which is controlled by sending commands from an M5Stack ESP32 board.

I always wanted to work on a gesture-controlled robot that can be controlled by my changing the orientation of my hands.

I used an M5Stack ESP32 board which contains an in-build IMU sensor for detecting the gestures. The gestures are detected using the accelerometer. The acceleration in the X and Y axis data are send to the onboard EPS32 of the robot using the ESP-NOW protocol.

Supplies

gesture_control_bot_schematic_zGMvtXmpvO.png

Hardware Components

  1. ESP32 Board x 1
  2. M5stack AWS IoT EduKit x 1
  3. L298N dual-channel H-Bridge motor driver x 1
  4. DC Geared Motors x 2
  5. DC Geared Motor Wheels x 2

Software apps and online services

Arduino IDE

M5Stack AWS IOT Edukit Core2

Screenshot 2022-09-13 at 03-30-38 Gesture Control Robot.png

The Core2 for AWS comes with an ESP32-D0WDQ6-V3 microcontroller. The main unit is equipped with a 2.0-inch capacitive touch screen that provides a smooth and responsive human-machine interface. It also comes with an MPU6886 which provides a 6-axis internal IMU.

I have used the IMU and the Screen for this project. The accelerometer of the IMU is used to get the tilt direction of the M5stack device.

ESP32

Screenshot 2022-09-13 at 03-30-43 Gesture Control Robot.png
gesture_control_bot_schematic_zGMvtXmpvO.png

Circuit Connection

ESP 32 Pins < -- > L298n Motor Driver

GPIO 14 < -- > Motor 1 PWM

GPIO 27 Motor 1 IN1

GPIO 26 < -- > Motor 1 IN2

GPIO 25 < -- > Motor 2 IN3

GPIO 33 < -- > Motor 2 IN4

GPIO 32 < -- > Motor 2 PWM

ESP-NOW Protocol

Screenshot 2022-09-13 at 03-30-48 Gesture Control Robot.png

I have used the ESP-NOW protocol for sending the Data from the Edukit to the ESP32 for controlling the robot.

I have used the One-way Communication of ESP-NOW Protocol for sending the data. This configuration is very easy to implement and it is great to send data from one board to the other like sensor readings or ON and OFF commands to control GPIOs.

Code & Video Output

Gesture Controlled Bot
Gesture Controlled Bot