Close Menu
  • Articles
    • Learn Electronics
    • Product Review
    • Tech Articles
  • Electronics Circuits
    • 555 Timer Projects
    • Op-Amp Circuits
    • Power Electronics
  • Microcontrollers
    • Arduino Projects
    • STM32 Projects
    • AMB82-Mini IoT AI Camera
    • BLE Projects
  • IoT Projects
    • ESP8266 Projects
    • ESP32 Projects
    • ESP32 MicroPython
    • ESP32-CAM Projects
    • LoRa/LoRaWAN Projects
  • Raspberry Pi
    • Raspberry Pi Projects
    • Raspberry Pi Pico Projects
    • Raspberry Pi Pico W Projects
  • Electronics Calculator
Facebook X (Twitter) Instagram
  • About Us
  • Disclaimer
  • Privacy Policy
  • Contact Us
  • Advertise With Us
Facebook X (Twitter) Instagram Pinterest YouTube LinkedIn
How To Electronics
  • Articles
    • Learn Electronics
    • Product Review
    • Tech Articles
  • Electronics Circuits
    • 555 Timer Projects
    • Op-Amp Circuits
    • Power Electronics
  • Microcontrollers
    • Arduino Projects
    • STM32 Projects
    • AMB82-Mini IoT AI Camera
    • BLE Projects
  • IoT Projects
    • ESP8266 Projects
    • ESP32 Projects
    • ESP32 MicroPython
    • ESP32-CAM Projects
    • LoRa/LoRaWAN Projects
  • Raspberry Pi
    • Raspberry Pi Projects
    • Raspberry Pi Pico Projects
    • Raspberry Pi Pico W Projects
  • Electronics Calculator
How To Electronics
Home » Wireless Gesture Controlled Robot Using Accelerometer & Arduino
Arduino Projects

Wireless Gesture Controlled Robot Using Accelerometer & Arduino

Mamtaz AlamBy Mamtaz AlamUpdated:August 3, 20238 Mins Read
Share Facebook Twitter LinkedIn Telegram Reddit WhatsApp
Gesture Controlled Robot Accelerometer
Share
Facebook Twitter LinkedIn Pinterest Email Reddit Telegram WhatsApp

Wireless Gesture Controlled Robot Using Accelerometer & Arduino

In this project, we will learn how to make Wireless Gesture Controlled Robot Using Accelerometer & Arduino. Hand Gesture Controlled Robot Application are numerous. It is something similar to autonomous Robot Projects. Here we are going to control a robot wirelessly using hand gestures. This is an easy, user-friendly way to interact with robotic arms too. An accelerometer ADX335 which can detect x-axis & y-axis tilting movements is used for controlling the forward, backward, left, and right directional movements. Even some gesture controlled robot kits are available in the market but what about making it by ourselves.

We are using an ATmega328 microcontroller as the brain of this project. An encoder IC HT12E & a Decoder IC HT12D is used for encoding and decoding of the different wireless signals. Similarly 433 Mhz RF Module is used wireless transmission & receiving of the signal.

Previously we made some other robotic Project. You can check a few of them below:
1. Wireless Bluetooth Controlled Robot using Arduino
2. Wireless Voice Controlled Robot Car Using Arduino
3.
WiFi Controlled Robot using ESP8266
4. Make an Automatic Grass Cutting Robot using Arduino


Robots & Human-Machine Interaction

Recently, strong efforts have been carried out to develop intelligent and natural interfaces between users and computer-based systems based on human gestures. Gestures provide an intuitive interface to both humans and computers. Thus, such <ahref=”https://how2electronics.com/gesture-recognition-application-machine-learning/”>Gesture Based Interfaces can not only substitute the common interface devices but can also be exploited to extend their functionality.

What is Robot?

A robot is usually an electro-mechanical machine that can perform tasks automatically. Some robots require some degree of guidance, which may be done using a remote control or with a computer interface. Robots can be autonomous, semi-autonomous, or remotely controlled. Robots have evolved so much and are capable of mimicking humans that they seem to have a mind of their own.


What is Human-Machine Interaction?

An important aspect of a successful robotic system is Human-Machine interaction. In the early years, the only way to communicate with a robot was to program which required extensive hard work. With the development in science and robotics, gesture-based recognition came to life. Gestures originate from any bodily motion or state but commonly originate from the face or hand. Gesture recognition can be considered as a way for a computer to understand human body language. This has minimized the need for text interfaces and GUIs (Graphical User Interface). Read about: Gesture Controlled Mouse.

What is Gesture?

Gestures

A gesture is an action that has to be seen by someone else and has to convey some piece of information. The gesture is usually considered as a movement of part of the body, esp. a hand or the head, to express an idea or meaning.


Components Required

The following are the lists of components required for making Wireless Gesture Controlled Robot. All the components can be purchased from Amazon.

  1. 7805 5V Voltage Regulator IC
  2. ATmega328 Microcontroller
  3. LM1117-33 3.3V Voltage Regulator IC
  4. HT12E Encoder IC
  5. HT12D Decoder IC
  6. L293D Dual H-Bridge Motor Driver IC
  7. 433 Mhz Transmitter/Receiver Module
  8. 200 RPM Motors – 2
  9. ADXL335 3 Axis Accelerometer
  10. 17 cm Single Strand Wire Antenna – 2
  11. 9V Battery
  12. 9V Battery Connector
  13. 4.5V, 1.5Ah Lead-Acid battery
  14. 5 or 6 Pin Female Connector for Accelerometer
  15. 2 Pins Connector for Battery – 2
  16. 16 Mhz Crystal Oscillator
  17. LED 5 mm – 4
  18. 22pF Ceramic Capacitor – 2
  19. 0.1µF Ceramic Capacitor
  20. 0.33µF Ceramic Capacitor
  21. 10µF, 16V Electrolytic Capacitor
  22. 1M Resistor
  23. 1OK Resistor
  24. 680K Resistor
  25. 47K Resistor
  26. 220-ohm Resistor – 4
  27. Robot Chasis & Wheels
  28. Jumper Wires




Block Diagram

Our gesture controlled robot works on the principle of accelerometer which records hand movements and sends that data to the comparator which assigns proper voltage levels to the recorded movements. That information is then transferred to an encoder which makes it ready for RF transmission.

Block Diagram Gesture Controlled Robot

On the receiving end, the information is received wirelessly via RF, decoded and then passed onto the microcontroller which takes various decisions based on the received information. These decisions are passed to the motor driver ic which triggers the motors in different configurations to make the robot move in a specific direction. The above block diagram helps to understand the working of the robot.


Circuit Diagram & Description

The RF modules work on the frequency of 433 MHz. You can check this post to learn how RF Module Works- How 433 MHz RF Module Works & Interfacing with Arduino. It means that the carrier frequency of the RF module is 433 MHz. The RF module enables the user to control the robot wirelessly and with ease. The schematic of transmitting end can be seen below:


Gesture Controlled Robot Circuit
Transmitter Section Circuit

This transmitted signal is received by the RF receiver, demodulated and then passed onto the decoder IC. The decoder IC decodes the coded waveform and the original data bits are recovered. The input is a serial coded modulated waveform while the output is parallel. The pin 17 of the decoder IC is the Valid Transmission (VT) pin. A led can be connected to this pin which will indicate the status of the transmission. In the case of a successful transmission, the led will blink.

The parallel data from the encoder is fed to the port 1of the microcontroller. This data is in the form of bits. The microcontroller reads these bits and takes decisions on the basis of these bits. What the microcontroller does is, it compares the input bits with the coded bits which are burnt into the program memory of the microcontroller and outputs on the basis of these bits. Port 2 of the microcontroller is used as the output port. Output bits from this port are forwarded to the motor driver IC which drives the motors in a special configuration based on the hand movements.

Gesture Controlled Robot Circuit
Receiver Section Circuit

At a dead stop, a motor produces no voltage. If a voltage is applied and the motor begins to spin, it will act as a generator that will produce a voltage that opposes the external voltage applied to it. This is called Counter Electromotive Force (CEF) or Back Electromotive Force (Back EMF). If a load stops the motors from moving then the current may be high enough to burn out the motor coil windings.


PCB & Gerber Files

The PCB files for both the transmitter and receiver section is given below.

Gesture Controlled Robot PCB
PCB of the Transmitter Section
Gesture Controlled Robot PCB
PCB of the Receiver Section

These PCB files can be converted to the Gerber file. So once the Gerber file is ready, you can order the PCB from
https://www.aipcba.com/. “AiPCBA” is a PCB/PCB Assembly rapid prototyping service company. The services include PCB board supply, PCB assembly, electronic component procurement, and SMT assembly. AiPCBA focuses on HDI, FPC, FPCA, and the combination of small and medium-sized batches and prototypes in soft and hard PCBs.

All you have to do is download the Gerber file from below and upload it to this site and place the order. You will get the good quality PCB within a week at a very cheap price.

AIPCBA

Download the Gerber file from below:
1. Transmitter Section PCB Gerber File
2. Receiver Section PCB Gerber File



Making the Hardware Part

Once you order the PCB it will take almost a week or more for delivery. I received the PCB and the PCB quality is really very good

So below are some pictures while making and assembling of the project

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6


Source Code/program

Below is the code for designing Wireless Gesture Controlled Robot Using Accelerometer & Arduino. Simply copy the code and upload it to the Arduino UNO Board. Once the code is uploaded remove the ATmega328 microcontroller from the Arduino UNO board and insert it into the PCB as shown above.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
const int ap1 = A0;
const int ap2 = A1;
int sv1 = 0;
int ov1 = 0;
int sv2 = 0;
int ov2= 0;
void setup()
{
// initialize serial communications at 9600 bps:
Serial.begin(9600);
pinMode(13,OUTPUT);
pinMode(12,OUTPUT);
pinMode(11,OUTPUT);
pinMode(10,OUTPUT);
}
void loop()
{
analogReference(EXTERNAL); //connect 3.3v to AREF
// read the analog in value:
sv1 = analogRead(ap1);
ov1 = map(sv1, 0, 1023, 0, 255);
delay(2);
sv2 = analogRead(ap2);
ov2 = map(sv2, 0, 1023, 0, 255);
delay(2);
Serial.print("Xsensor1 = " );
Serial.print(sv1);
Serial.print("\t output1 = ");
Serial.println(ov1);
Serial.print("Ysensor2 = " );
Serial.print(sv2);
Serial.print("\t output2 = ");
Serial.println(ov2);
if(analogRead(ap1)&lt;514 &amp;&amp;analogRead (ap2)&lt;463) // for backward movement
{
digitalWrite(13,HIGH);
digitalWrite(12,LOW);
digitalWrite(11,HIGH);
digitalWrite(10,LOW);
}
else
{
if(analogRead(ap1)&lt;486 &amp;&amp;analogRead (ap2)&gt;508) // for left turn
{
digitalWrite(13,LOW);
digitalWrite(12,HIGH);
digitalWrite(11,HIGH);
digitalWrite(10,LOW);
}
else
{
if(analogRead(ap1)&gt;512 &amp;&amp;analogRead (ap2)&gt;560) // for forward
{
digitalWrite(13,LOW);
digitalWrite(12,HIGH);
digitalWrite(11,LOW);
digitalWrite(10,HIGH);
}
else
{
if(analogRead(ap1)&gt;550 &amp;&amp;analogRead (ap2)&gt;512)//for right turn
{
digitalWrite(13,HIGH);
digitalWrite(12,LOW);
digitalWrite(11,LOW);
digitalWrite(10,HIGH);
}
 
else
{
digitalWrite(13,HIGH);
digitalWrite(12,HIGH);
digitalWrite(11,HIGH);
digitalWrite(10,HIGH);
}
}
}
}
}


Working of the Project

The accelerometer records the hand movements in the X and Y directions only and outputs constant analog voltage levels. These voltages are fed to the microcontroller and encoder IC which compares it with the reference voltages that we have set via variable resistors attached to the IC. The levels that we have set are 1.7V and 1.4V. Every voltage generated by the accelerometer is compared with these and an analog 1 or 0 signal is given out by the IC.

Input & Output of Encoder IC
Input & Output of Encoder IC

This analog signal is the input to the encoder IC. The input to the encoder is parallel while the output is a serial coded waveform that is suitable for RF transmission. A push-button is attached to pin 14 of this IC which is the Transmission Enable (TE) pin. The coded data will be passed onto the RF module only when the button is pressed. This button makes sure no data is transmitted unless we want.

The RF transmitter modulates the input signal using Amplitude Shift Keying (ASK) modulation. It is the form of modulation that represents digital data as variations in the amplitude of a carrier wave.

The following figure shows the modulated output of the RF module:

Input & Output of Encoder IC
ASK Modulation

Video Tutorial & Explanation

Follow the video tutorial for making Gesture Controlled Robot Arduino using Accelerometer & Arduino.

Wireless Gesture Controlled Robot Using Accelerometer
Watch this video on YouTube.

Share. Facebook Twitter Pinterest LinkedIn Tumblr Email Reddit Telegram WhatsApp
Previous ArticleMAX30100 Pulse Oximeter with ESP8266 on Blynk IoT App
Next Article IoT Web Controlled Smart Notice Board with ESP8266

Related Posts

DC Energy Meter using Arduino

Build a DC Energy Meter using Arduino – 32V/5A

Updated:August 26, 20252K
Interfacing ADXL375 Accelerometer with Arduino

Interfacing ADXL375 Accelerometer with Arduino (±200g)

Updated:June 28, 2025
PZEM-004T Arduino Energy Meter

DIY AC Energy Meter using PZEM-004T & Arduino

Updated:March 6, 20258K
Interfacing BMI160 Accelerometer & Gyroscope with Arduino

Interfacing BMI160 Accelerometer & Gyroscope with Arduino

Updated:February 2, 20259K
Password Based Door Lock Security System Using Arduino & Keypad

Password Based Door Lock Security System Using Arduino & Keypad

Updated:February 2, 20252436K
Earthquake Detector Alarm with with Accelerometer & Arduino

Earthquake Detector Alarm with Accelerometer & Arduino

Updated:February 2, 2025661K
Add A Comment

CommentsCancel reply

Latest Posts
IoT Based PM & Air Quality Monitoring System using ESP32

IoT Based PM & Air Quality Monitoring System using ESP32

May 31, 2026
DIY ESP32 MLX90640 IR Thermal Camera with Live Web Display

DIY ESP32 MLX90640 IR Thermal Camera with Live Web Display

May 10, 2026
IoT Activity Tracker with ESP32 & Accelerometer Gyroscope

IoT Activity Tracker with ESP32 & Accelerometer/Gyroscope

May 2, 2026
A Guide to Sourcing Obsolete ICs for Vintage Projects

Beyond AliExpress: A Guide to Sourcing Obsolete ICs for Vintage Projects

April 21, 2026

ESP32 IoT Vehicle Motion Analyzer with MPU6050 & LIS3MDL

April 27, 2026
Building a Smart Sensor Node with a BLE Microcontroller

Building a Smart Sensor Node with a BLE Microcontroller

February 26, 2026
High-Accuracy Pitch, Roll, Yaw with ESP32 & BNO08x IMU

High-Accuracy Pitch, Roll, Yaw with ESP32 & BNO08x IMU

April 27, 2026
DIY Colorimeter using AS7265x Spectroscopy Sensor & ESP32

DIY Colorimeter using AS7265x Spectroscopy Sensor & ESP32

February 1, 2026
Top Posts & Pages
  • How to use INA226 DC Current Sensor with Arduino
    How to use INA226 DC Current Sensor with Arduino
  • Buck Converter: Basics, Working, Design & Application
    Buck Converter: Basics, Working, Design & Application
  • How to use Modbus RTU with ESP32 to read Sensor Data
    How to use Modbus RTU with ESP32 to read Sensor Data
  • 12V DC to 220V AC Inverter Circuit & PCB
    12V DC to 220V AC Inverter Circuit & PCB
  • How to use INA219 DC Current Sensor Module with Arduino
    How to use INA219 DC Current Sensor Module with Arduino
  • Designing of MPPT Solar Charge Controller using Arduino
    Designing of MPPT Solar Charge Controller using Arduino
  • IoT AC Energy Meter with PZEM-004T & ESP32 WebServer
    IoT AC Energy Meter with PZEM-004T & ESP32 WebServer
  • IoT Based Electricity Energy Meter using ESP32 & Blynk
    IoT Based Electricity Energy Meter using ESP32 & Blynk
Categories
  • Arduino Projects (197)
  • Articles (60)
    • Learn Electronics (19)
    • Product Review (15)
    • Tech Articles (28)
  • Electronics Circuits (46)
    • 555 Timer Projects (21)
    • Op-Amp Circuits (7)
    • Power Electronics (13)
  • IoT Projects (204)
    • ESP32 MicroPython (7)
    • ESP32 Projects (81)
    • ESP32-CAM Projects (15)
    • ESP8266 Projects (76)
    • LoRa/LoRaWAN Projects (22)
  • Microcontrollers (38)
    • AMB82-Mini IoT AI Camera (4)
    • BLE Projects (18)
    • STM32 Projects (19)
  • Raspberry Pi (93)
    • Raspberry Pi Pico Projects (57)
    • Raspberry Pi Pico W Projects (12)
    • Raspberry Pi Projects (24)
Follow Us
  • Facebook
  • Twitter
  • Pinterest
  • Instagram
  • YouTube
About Us

“‘How to Electronics’ is a vibrant community for electronics enthusiasts and professionals. We deliver latest insights in areas such as Embedded Systems, Power Electronics, AI, IoT, and Robotics. Our goal is to stimulate innovation and provide practical solutions for students, organizations, and industries. Join us to transform learning into a joyful journey of discovery and innovation.

Copyright © How To Electronics. All rights reserved.
  • About Us
  • Disclaimer
  • Privacy Policy
  • Contact Us
  • Advertise With Us

Type above and press Enter to search. Press Esc to cancel.

Ad Blocker Enabled!
Ad Blocker Enabled!
Looks like you're using an ad blocker. Please allow ads on our site. We rely on advertising to help fund our site.