Hand Gesture Controlled Robot using Arduino
In this project, we have designed a simple Hand Gesture Controlled Robot using Arduino. This Hand Gesture Controlled Robot is based on Arduino Nano, MPU6050, RF Transmitter-Receiver Pair and L293D Motor Driver.
Even though the title says it as a Hand Gestured Controlled Robot, technically this robot is controlled by the tilt of the hand.
Outline
- Preface
- Principle of Hand Gesture Controlled Robot
- Block Diagram of Hand Gesture Controlled Robot
- Circuit Diagram of the Transmitter Section
- Components for Transmitter Section
- Circuit Diagram of the Receiver Section
- Components for Receiver Section
- Component Description
- MPU6050
- RF Transmitter and Receiver Modules
- HT-12E
- HT-12D
- Circuit Design of Hand Gesture Controlled Robot
- Transmitter Section
- Receiver Section
- Working of Hand Gesture Controlled Robot
- Applications
Preface
Robots represent electromechanical systems that are under the influence of computer software. Within this domain, there exist both autonomous and semi-autonomous robots. An autonomous robot operates independently, devoid of human intervention, and relies on its sensory input to make decisions based on its immediate environment.
In the industrial landscape, a substantial proportion of robots are designed as self-contained entities, as they need to function at high speeds and with exceptional precision. Nevertheless, certain applications necessitate the deployment of semi-autonomous or human-controlled robotic systems.
Voice recognition, tactile or touch-based control, and motion control stand out as prevalent control technologies in this field.
Among motion-controlled robots, the Hand Gesture Controlled Robot is a commonly encountered variety. In this project, we construct a robot that responds to hand gestures, employing the MPU6050 sensor, which comprises a 3-axis accelerometer and 3-axis gyroscope, in conjunction with the Arduino Nano serving as the central controller.
In contrast to traditional control methods involving remote controls with buttons or joysticks, this robot’s movements are steered through hand gestures.
To facilitate this communication, the project employs wireless technology, transmitting data from the hand gestures to the robot via an RF link, which consists of an RF Transmitter and Receiver pair.
The project can be divided into two distinct sections: the transmitter and the receiver. In each section, we provide a comprehensive explanation of the circuit diagram and the individual components involved.
Principle of Hand Gesture Controlled Robot
To gain a comprehensive understanding of the Hand Gesture Controlled Robot’s functioning, let’s dissect the project into three distinct phases.
In the initial stage, the Arduino takes in data from the MPU6050 Accelerometer Gyro Sensor. The Arduino continuously retrieves data from the MPU6050 and, as per predefined parameters, transmits it to the RF Transmitter.
The second phase revolves around wireless communication, which occurs between the RF Transmitter and the RF Receiver. Upon receiving data from the Arduino (via the Encoder IC), the RF Transmitter employs RF Communication to transmit this data to the RF Receiver.
Lastly, the third component of the project involves the decoding of the data received by the RF Receiver. Subsequently, the RF Receiver sends appropriate signals to the Motor Driver IC, which, in turn, activates the Wheel Motors of the Robot.
Block Diagram of Hand Gesture Controlled Robot
The following images show the simple block diagram of Hand Gesture Controlled Robot for both Transmitter and Receiver Parts.
Transmitter Block Diagram
Receiver Block Diagram
Circuit Diagram of the Transmitter Section
The following image shows the circuit diagram of the Transmitter part of the Hand Gesture Controlled Robot project.
Components for Transmitter Section
- Arduino Nano
- 434MHz RF Transmitter
- HT-12E Encoder IC
- MPU6050 Accelerometer/Gyroscope Sensor
- 750KΩ Resistor
Circuit Diagram of the Receiver Section
Components for Receiver Section
- L293D Motor Driver IC
- HT-12D Decoder IC
- 434 MHz RF Receiver
- 33KΩ Resistor
- 330Ω Resistor
- LED
- 4 Geared Motors with Wheels
- Robot Chassis
Component Description
MPU6050
The MPU6050 is one of the most commonly used Sensor Modules by hobbyists and enthusiasts. It consists of Accelerometer and Gyroscope on the same IC and provides 6 Degrees of Freedom (3-axis of Accelerometer and 3-axis of Gyroscope).
RF Transmitter and Receiver Modules
The communication between transmitter and receiver is using RF modules. A 434 MHz transmitter and receiver pair are used in this project.
HT-12E
It is an encoder IC that converts the 4-bit parallel data into serial data in order to transmit over RF link.
HT-12D
It is a decoder IC that converts the serial data received by the RF Receiver into 4-bit parallel data. This parallel data can be used to drive the motors.
Circuit Design of Hand Gesture Controlled Robot
Transmitter Section
The transmitter component of the robot is composed of several key elements, including the Arduino Nano board, MPU6050 Sensor, HT-12E Encoder IC, and an RF Transmitter. The communication between the Arduino and the MPU6050 Sensor relies on the I2C interface, with the MPU6050 Sensor’s SCL and SDA pins being connected to the Arduino Nano’s A5 and A4 pins.
Furthermore, we utilize the MPU6050’s interrupt pin, which is linked to D2 on the Arduino Nano.
The HT-12E encoder IC plays a pivotal role in RF Transmitter modules. It performs the task of converting 12-bit serial data into 12-bit parallel data. This process separates the address and data bits from the 12-bit data stream. The address bits, designated as A0 to A7 (corresponding to Pin 1 to Pin 8), are employed to ensure secure data transmission. In this circuit, these pins are connected to ground or left unconnected (Vss), with Pins 1 to 9 (A0 – A7 and Vss) of the HT-12E being linked to ground.
The data pins of the HT-12E are situated at Pins 10 to 13 (AD8, AD9, AD10, and AD11). They receive the 4-word parallel data from a microcontroller or an external source (in this case, the Arduino Nano). These data pins are wired to the Arduino Nano’s pins D12, D11, D10, and D9, respectively.
The ‘TE’ (transmission enable) pin is an active low pin, and data transmission occurs when ‘TE’ is in a low state. Consequently, Pin 14 (TE’) is also connected to the ground.
Inside the encoder IC, an internal oscillator circuit is established between Pins 16 and 15 (OSC1 and OSC2). To activate the oscillator, a 750KΩ resistor is connected between these pins. The serial data output, denoted as Dout (Pin 17), is connected to the data input pin of the RF Transmitter.
It’s worth noting that both the Arduino Nano and the MPU6050 feature 3.3V regulators. Therefore, all the VCC pins are connected to a regulated 5V power supply.
Receiver Section
The receiver section of the robot comprises essential components, including an RF Receiver, HT-12D Decoder IC, L293D Motor Driver IC, and a robot chassis equipped with four motors attached to wheels.
The HT-12D decoder IC is a common companion to RF receivers, tasked with converting serial data received through the radio frequency channel into parallel data. Address pins A0 to A7 (corresponding to Pin 1 to Pin 8) on the decoder must align with those on the encoder for proper communication.
Given that the encoder’s address pins (HT-12E) are grounded, the decoder’s address pins must also be connected to ground. Consequently, pins 1 to 9 (A0 – A7 and Vss) are grounded. The serial data from the RF receiver is channeled into the decoder IC through its Din (Pin 14).
Within the HT-12D, there exists an internal oscillator, with an external 33K resistor (Pins 16 and 15) establishing the oscillator’s operation. Pin 17 (VT) serves as an indicator of valid data transfer. This pin goes high when legitimate data is present on the data pins, and an LED connected in series with a 330-ohm resistor provides a visual indication of successful data transmission.
The parallel data output ports on the HT-12D are found at pins 10 to 13 (D8, D9, D10, and D11). These are linked to the input pins of the L293D motor driver IC (Pins 2, 7, 10, and 15, respectively).
The L293D motor driver IC plays a crucial role in supplying the appropriate current to the motors, facilitating both forward and reverse motion. Pins 1 and 9 serve as enable pins, and they are connected to VCC (+5v), while Pin 16 is tied to ground (which serves as the logic supply). The outputs, located at pins 3–6 and 11–14, are connected to the four motors.
The Motor Supply Pin is linked to a separate power source and is connected to Pin 8. Consequently, the Receiver Section necessitates two sets of batteries: one for powering the circuit and another for driving the motors.
Working of Hand Gesture Controlled Robot
In this project, a mobile robot that is controlled by the gestures made by the hand, is designed. The working of the robot is explained here.
As mentioned earlier, the gesture controlled robot is a wireless operated robot and has two parts: Transmitter and Receiver. When the robot is powered on, the transmitter part, which consists of Arduino, MPU6050, Encoder and RF Transmitter, will continuously monitor the MPU6050 sensor.
Based on the direction of the MPU6050 Sensor, this data is recorded by the Arduino, which subsequently transmits a corresponding data to the Encoder. The encoder converts the parallel data it receives into serial data, which is then delivered via the RF Transmitter.
The RF Receiver accepts serial data and transmits it to the Decoder IC in the receiver portion. The serial data is converted to parallel data by the Decoder, and this parallel data is sent to the motor driver IC. The movement of the motors, and hence the movement of the robot, is defined based on the data.
Applications
- Wireless controlled robots are very useful in many applications like remote surveillance, military etc.
- Hand gesture controlled robot can be used by physically challenged in wheelchairs.
- Hand gesture controlled industrial grade robotic arms can be developed.
So far you came to know about Hand Gesture Controlled Robot that completely moves according to moments of your hand (sign of input to the device). If you are looking for a similar low-budget device then Robot vacuum cleaners best suit you as it has a greater functionality in cleaning your home.