Professional Documents
Culture Documents
CHAPTER-1
INTRODUCTION
Majority of the industrial robots are autonomous as they are required to operate at high
speed and with great accuracy. But some applications require semi-autonomous or human
controlled robots.
Some of the most commonly used control systems are voice recognition, tactile or touch
controlled and motion controlled.
One of the frequently implemented motion controlled robot is a Hand Gesture Controlled
Robot. In this project, a hand gesture controlled robot is developed using a 3-axis
Accelerometer and the controller part Arduino Uno.
Instead of using a remote control with buttons or a joystick, the gestures of the hand are
used to control the motion of the robot.
The project is based on wireless communication, where the data from the hand gestures is
transmitted to the robot over RF link (RF Transmitter – Receiver pair).
The project is divided into transmitter and receiver section. The circuit diagram and
components are explained separately for both transmitter and receiver sections.
CHAPTER-2
METHODOLOGY
2.1.1.TRANSMITTER SECTION:
2.3 WORKING:
1. Transmitter part
2. Receiver part
reference voltage we gets a digital signal and then apply this signal to HT12E encoder to
encode data or converting it into serial form and then send this data by using RF
transmitter into the environment.
At the receiver end we have used RF receiver to receive data and then applied to HT12D
decoder. This decoder IC converts received serial data to parallel and then read by using
arduino. According to received data we drive robot by using two DC motor in forward,
reverse, left, right and stop direction. Gesture controlled robot moves according to hand
movement as we place transmitter in our hand. When we tilt hand in front side, robot start
to moving forward and continues moving forward until next command is given. When we
tilt hand in backward side, robot change its state and start moving in backwards direction
until other command is given. When we tilt it in left side Robot get turn left till next
command. When we tilt hand in right side robot turned to right. And for stopping robot we
keeps hand in stable.
CHAPTER-3
COMPONENTS DESCRIPTION
The Arduino board is designed in such a way that it is very easy for beginners to get
started with microcontrollers. This board especially is breadboard friendly is very easy to
handle the connections. Let’s start with powering the Board.
There are totally three ways by which you can power your Nano.
USB Jack: Connect the mini USB jack to a phone charger or computer through a cable
and it will draw power required for the board to function
Vin Pin: The Vin pin can be supplied with a unregulated 6-12V to power the board. The
on-board voltage regulator regulates it to +5V
+5V Pin: If you have a regulated +5V supply then you can directly provide this o the +5V
pin of the Arduino.
Input/output:
There are totally 14 digital Pins and 8 Analog pins on your Nano board. The digital pins
can be used to interface sensors by using them as input pins or drive loads by using them
as output pins. A simple function like pinMode() and digitalWrite() can be used to control
their operation. The operating voltage is 0V and 5V for digital pins. The analog pins can
measure analog voltage from 0V to 5V using any of the 8 Analog pins using a simple
function liken analogRead(). These pins apart from serving their purpose can also be used
for special purposes which are discussed below:
Serial Pins 0 (Rx) and 1 (Tx): Rx and Tx pins are used to receive and transmit TTL
serial data. They are connected with the corresponding ATmega328P USB to TTL serial
chip.
External Interrupt Pins 2 and 3: These pins can be configured to trigger an interrupt
on a low value, a rising or falling edge, or a change in value.
PWM Pins 3, 5, 6, 9 and 11: These pins provide an 8-bit PWM output by using
analogWrite() function.
SPI Pins 10 (SS), 11 (MOSI), 12 (MISO) and 13 (SCK): These pins are used for SPI
communication.
In-built LED Pin 13: This pin is connected with an built-in LED, when pin 13 is HIGH
– LED is on and when pin 13 is LOW, its off.
I2C A4 (SDA) and A5 (SCA): Used for IIC communication using Wire library.
AREF: Used to provide reference voltage for analog inputs with analogReference()
function.
Reset Pin: Making this pin LOW, resets the microcontroller.
Power Vin, 3.3V, Vin: Input voltage to Arduino when using an external
5V, GND power source (6-12V).
5V: Regulated power supply used to power
microcontroller and other components on the board.
3.3V: 3.3V supply generated by on-board voltage
regulator. Maximum current draw is 50mA.
GND: Ground pins.
Input/Output Pins Digital Pins D0 - Can be used as input or output pins. 0V (low) and 5V
D13 (high)
Operating Voltage 5V
SRAM 2 KB
EEPROM 1 KB
3.1.2 HT12E :
PIN DIAGRAM:
PIN DESCRIPTION:
5. GND : Ground
3.1.4 RF TRANSMITTER:
PIN CONFIGURATION:
PIN DESCRIPTION:
Jumper wires are simply wires that have connector pins at each end, allowing them to
be used to connect two points to each other without soldering. Jumper wires are typically
used with breadboards and other prototyping tools in order to make it easy to change a
circuit as needed.
Jumper wires typically come in three versions: male-to-male, maletofemale and female-
to-female. The difference between each is in the end point of the wire. Male ends have a
pin protruding and can plug into things, while female ends do not and are used to plug
things into. Male-to-male jumper wires are the most common and what you likely will use
most often. When connecting two ports on a breadboard, a male-to- male wire is what
you’ll need.
Arduino can't supply the current required by DC motor to run. In order to fulfill this
requirement these motor drivers are used.L293D is a typical Motor driver or Motor Driver
IC which allows DC motor to drive on either direction. L293D is a 16-pin IC which can
control a set of two DC motors simultaneously in any direction. It means that you can
control two DC motor with a single L293D IC. It works on the concept of H- Bridge.
H-Bridge is a circuit which allows the voltage to be flown in either direction. As you
know voltage need to change its direction for being able to rotate the motor in clockwise
or anticlockwise direction.
In a single L293D chip there are two h-Bridge circuit inside the IC which can rotate
two dc motors independently. The motors are rotated on the basis of the inputs provided
across the input pins as LOGIC 0 or LOGIC 1.Due to its size it is very much used in
robotic application for controlling DC motors.
PIN DIAGRAM:
PIN DESCRIPTION:
3.2.5 BATTERY :
A Battery is a device that converts chemical energy to electrical energy. The first
battery was developed by Alessandro voltain the year of 1800. It is an electrochemical cell
(or enclosed and protected material) that can be charged electrically to provide static
potential for power or released electrical charge when needed. An electronic battery is a
device consisting of one or more electrochemical cells with external connections provided
to power electrical devices such as flash lights, smartphones and electric cars. When a
battery is supplying electric power, its positive terminal is the source of electrons that
when connected to an external circuit will flow and deliver energy to an external device.
When a battery is connected to an external circuit, electrolytes are able to move as ions
within, allowing the chemical reactions to be completed at the separate terminals and so
deliver energy to the external circuit. It is the movement of those ions within the battery
which allows current to flow out of the battery to perform work. In this project we are
using
Battery Voltage = 5 v
Current = 1500 mAh
DC motor
Servo motor
Stepper motor
DC MOTOR:
A DC motor (Direct Current motor) is the most common type of motor. DC motors
normally have just two leads, one positive and one negative. If you connect these two
leads directly to a battery, the motor will rotate. If you switch the leads, the motor will
rotate in the opposite direction.
Warning − Do not drive the motor directly from Arduino board pins. This may damage
the board. Use a driver Circuit or an IC. We can’t drive a DC Motor (depends) directly
with a Microcontroller, as DC Motors requires high current and high voltage than a
Microcontroller can handle. Microcontrollers usually operates at +5 or +3.3V supply and it
I/O pin can provide only up to 25mA current. Commonly used DC Motors requires 12V
supply and 300mA current, moreover interfacing DC Motors directly with
Microcontrollers may affect the working of Microcontroller due to the Back EMF of the
DC Motor. Thus it is clear that, it not a good idea to interface DC Motor directly with
DEPT OF ECE Page 22
HAND GESTURE CONTROLLED ROBOT USING ARDUINO
3.2.7 RF RECEIVER:
PIN DESCRIPTION:
WORKING:
The receiver section consists of RF Receiver, HT12D Decoder IC and four LEDs. An
extra LED is connected to VT (Valid Transmission) pin of the decoder IC. This is used to
indicate a successful transmission of data. , the RF receiver receives the serial data. This
serial data is sent to HT12D decoder IC which converts into 4 bit parallel data.The 4 data
pins of decoder are connected to LEDs. According to the buttons pushed, the LEDs can be
turned ON or OFF.
CHAPTER-4
SOFTWARE REQUIREMENTS
The open-source Arduino Software (IDE) makes it easy to write code and upload
it to the board. It runs on Windows, Mac OS X, and Linux. The environment is written in
Java and based on Processing and other open-source software. This software can be used
with any Arduino board. For latest software: - https://www.arduino.cc/en/Main/Software.
Arduino was born at the Ivrea Interaction Design Institute as an easy tool for fast
prototyping, aimed at students with or without a background in electronics and
programming.
Arduino is an open-source prototyping platform based on easy-to use hardware and
software.
Arduino boards can read inputs - light on a sensor, a finger on a button, or a
message - and turn it into an output - activating a motor, turning on an LED,
publishing something online and many more.
You can tell your board what to do by sending a set of instructions to the
microcontroller on the board.
To do so you use the Arduino programming language (based on Wiring), and the
Arduino Software (IDE), based on Processing.
Inexpensive: Arduino boards are relatively inexpensive compared to other
microcontroller platforms.
Cross-platform: The Arduino Software (IDE) runs on Windows, Macintosh
OSX, and Linux operating systems. Most microcontroller systems are
limited to Windows.
DEPT OF ECE Page 27
HAND GESTURE CONTROLLED ROBOT USING ARDUINO
Simple, clear programming environment: The Arduino Software (IDE) is
easy-to-use for beginners, yet flexible enough for advanced users to take
advantage of as well.
Open source and extensible hardware:The plans of the Arduino boards are
published under a Creative Commons license, so experienced circuit
designers can make their own version of the module, extending it and
improving it.
Arduino Decimal, it will need to make sure that the board is configured to draw power
from the USB connection. The power source is selected with a jumper, a small piece of
plastic that fits onto two of the three pins between the USB and power jacks. Check that
it's on the two pins closest to the USB port. Connect the Arduino board to computer using
the USB cable. The green power LED (labelled PWR) should go on.
Installing drivers for the Arduino Uno or Arduino Mega 2560 withWindows7,
Vista, or XP or Aurduino nano.
Before uploading the code into board it is must to select the Arduino board type.
demonstrate the function of each symbol appearing in the Arduino IDE toolbar.
F − Serial monitor used to receive serial data from the board and send the serial data to
the board.
To upload the code into Arduino compile the code the code first, if therte is no
errors click the upload button. Wait a few seconds; if the upload is successful, the
message “Done uploading” will appear in the status bar and the LED on the board will
blink for one second.
Before uploading the code into board it is must to select the Arduino board type.
TRANSMITTER SECTION:
The transmitter section of the robot consists of Arduino Nano board, MPU6050 Sensor,
HT-12E Encoder IC and an RF Transmitter. The communication between Arduino and
MPU6050 Sensor takes place through I2C Interface. Hence, the SCL and SDA pins of the
MPU6050 Sensor are connected to A5 and A4 pins of the Arduino Nano.
Additionally, we will be using the interrupt pin of the MPU6050 and hence, it is connected
to D2 of Arduino Nano.
Pins 10 to 13 (AD8, AD9, AD10 and AD11) are the data pins of HT-12E. They receive the
4 word parallel data from external source like a microcontroller (Arduino Nano in this
case). They are connected to the pins D12, D11, D10 and D9 of Arduino Nano
respectively.
TE’ is the transmission enable pin and it is an active low pin. The data is transmitted as
DEPT OF ECE Page 36
HAND GESTURE CONTROLLED ROBOT USING ARDUINO
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.
RECEIVER SECTION:
The receiver section of the robot consists of an RF Receiver, HT-12D Decoder IC, L293D
Motor Driver IC and a robot chassis with four motors connected to wheels.
HT-12D is the decoder IC that is often associated with RF Receiver. It converts the serial
data received by the RF link into parallel data. A0 to A7 (Pin 1 to Pin 8) are the address
pins and must be matched with the address pins of the encoder.
Since the address pins of encoder (HT-12E) are grounded, the address pins of decoder
must also be grounded. Hence, pins 1 to 9 (A0 – A7 and Vss) are connected to ground.
The serial data from the RF Receiver is given to Din (Pin 14) of the decoder IC.
HT-12D has an internal oscillator and an external resistor of 33KΩ is connected between
OSC1 and OSC2 (Pins 16 and 15). Pin 17 (VT) indicates a valid transmission of data and
this pin will be high when a valid data is present on the data pins. An LED in series with a
330Ω resistor is connected to this pin to indicate a valid data transmission.
L293D motor driver IC is used to provide the necessary current (for both forward and
reverse directions) to the motors. Pins 1 and 9 are the enable pins and are connected to
VCC (+5v) along with Pin 16 (which is the logic supply). Pins 3 – 6 and 11 – 14 are the
outputs and are connected to the four motors.
Pin 8 is the Motor Supply Pin and is connected to a separate power supply. Hence, you
will need two batteries in the Receiver Section; one for the Circuit and one for the motors.