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.
- 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
- RF Transmitter and Receiver Modules
- Circuit Design of Hand Gesture Controlled Robot
- Transmitter Section
- Receiver Section
- Working of Hand Gesture Controlled Robot
Robots are electromechanical systems controlled by a computer software. Autonomous and semi-autonomous robots are both possible. An autonomous robot is one that is not directed by humans and makes its own decisions based on its surroundings.
The majority of industrial robots are self-contained because they must function at fast speeds and with remarkable precision. However, some applications necessitate the use of semi-autonomous or human-controlled robots.
Voice recognition, tactile or touch control, and motion control are some of the most commonly utilised control technologies.
A Hand Gesture Controlled Robot is one of the most often used motion controlled robots. A hand gesture driven robot is created in this project using the MPU6050, which is a 3-axis accelerometer and 3-axis gyroscope sensor, and the Arduino Nano as the controller.
Instead than using a remote control with buttons or a joystick, the robot’s motion is controlled by hand gestures.
The project uses wireless communication to send data from hand gestures to the robot via an RF link (RF Transmitter – Receiver pair).
The project is separated into two sections: transmitter and receiver. For both t and t, the circuit diagram and components are explained separately.
Principle of Hand Gesture Controlled Robot
Let us break the project into three pieces to better understand the operation of the Hand Gesture Controlled Robot.
The Arduino receives data from the MPU6050 Accelerometer Gyro Sensor in the first stage. The Arduino continuously acquires data from the MPU6050 and delivers it to the RF Transmitter based on established settings.
The Wireless Communication between the RF Transmitter and RF Receiver is the second phase of the project. When the RF Transmitter receives data from Arduino (through the Encoder IC), it sends it to the RF Receiver via RF Communication.
Finally, the third part of the project is decoding the Data received by the RF Receiver and sending appropriate signals to the Motor Driver IC, which will activate 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
- 4 Geared Motors with Wheels
- Robot Chassis
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.
It is an encoder IC that converts the 4-bit parallel data into serial data in order to transmit over RF link.
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
The Arduino Nano board, MPU6050 Sensor, HT-12E Encoder IC, and an RF Transmitter make up the robot’s transmitter part. The I2C interface is used to communicate between the Arduino and the MPU6050 Sensor. As a result, the MPU6050 Sensor’s SCL and SDA pins are linked to the Arduino Nano’s A5 and A4 pins.
In addition, we’ll be using the MPU6050’s interrupt pin, which is connected to D2 on the Arduino Nano.
The HT-12E encoder IC is frequently used in RF Transmitter modules. It translates 12-bit serial data to 12-bit parallel data. The address and data bits are separated from the 12-bit data. The address bits are A0 to A7 (Pin 1 to Pin8) and are utilised for secure data transmission. These pins can be connected to ground or left open (Vss). Pins 1 to 9 (A0 – A7 and Vss) of the HT-12E are connected to ground in this circuit.
The data pins of the HT-12E are pins 10 to 13 (AD8, AD9, AD10, and AD11). They get the 4 word parallel data from a microcontroller or another external source (Arduino Nano in this case). They are wired to the Arduino Nano pins D12, D11, D10, and D9, respectively.
TE’ is the transmission enable pin and it is an active low pin. The data is transmitted as long as the TE’ is low. Hence, Pin 14 (TE’) is also connected to ground.
The encoder IC has an internal oscillator circuit between the pins 16 and 15 (OSC1 and OSC2). A 750KΩ resistor is connected between these pins to enable the oscillator. Dout (Pin 17) is the serial data out pin. It is connected to the data in pin of the RF Transmitter.
Both Arduino Nano and MPU6050 have 3.3V Regulator. Hence, all the VCC pins are connected to a regulated 5V Supply.
An RF Receiver, HT-12D Decoder IC, L293D Motor Driver IC, and a robot chassis with four motors coupled to wheels make up the robot’s receiver part.
The decoder IC HT-12D is frequently connected with RF receivers. It converts serial data received over the radio frequency channel into parallel data. The address pins are A0 to A7 (Pin 1 to Pin 8) and must be matched with the encoder’s address pins.
Because the encoder’s address pins (HT-12E) are grounded, the decoder’s address pins must also be grounded. As a result, pins 1 to 9 (A0 – A7 and Vss) are grounded. The serial data from the RF receiver is fed into the decoder IC’s Din (Pin 14).
The HT-12D contains an internal oscillator, and between OSC1 and OSC2 is a 33K external resistor (Pins 16 and 15). Pin 17 (VT) signifies a legitimate data transfer, and when valid data is present on the data pins, this pin will be high. A good data transmission is indicated by an LED in series with a 330 resistor connected to this pin.
The parallel data out ports on the HT-12D are pins 10 to 13 (D8, D9, D10, and D11). They are connected to the L293D motor driver IC’s input pins (Pins 2, 7, 10 and 15 respectively).
The L293D motor driver IC is utilised to supply the appropriate current to the motors (in both forward and reverse orientations). Pins 1 and 9 are enable pins and are connected to VCC (+5v), whereas Pin 16 is connected to ground (which is the logic supply). The outputs, pins 3–6 and 11–14, are connected to the four motors.
The Motor Supply Pin is connected to a separate power supply and is connected to Pin 8. As a result, the Receiver Section will require two batteries: one for the circuit and one for 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.
- 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.