Anda di halaman 1dari 29

A PROJECT REPORT

ON
THREE DEGREE-OF-FREEDOM AUTONOMOUS
ROBOTIC ARM
MINOR PROJECT-I

BACHELOR OF TECHNOLOGY
IN
ELECTRONICS AND COMMUNICATION
ENGINEERING

Submitted By: Under the Guidance Of
MEHUL GARG (9911102255) DR. PULI KISHORE KUMAR
MANIK CHAWLA (9911102249)
ADITYA GAHLAUT (9911102157)


DEPARTMENT OF ELECTRONICS AND COMMUNICATION ENGINEERING
JAYPEE INSTITUTE OF INFORMATION TECHNOLOGY, NOIDA (U.P.)
November, 2013


2


CERTIFICATE


This is to certify that the work titled THREE DEGREE-OF-
FREEDOM AUTONOMOUS ROBOTIC ARM submitted by
Mehul Garg , Manik Chawla & Aditya Gahlaut of 3
rd
year e of
B. Tech. Program in Electronics and Communication Engineering
of Jaypee Institute of Information Technology University, Noida
has been carried out under my supervision. This work has not been
submitted partially or wholly to any other University or Institute
for the award of this or any other degree or diploma.


Signature of Supervisor :
Name of Supervisor : Dr. Puli Kishore Kumar
Designation : Assistant Professor
Date : 2
th
November 2013







3

ABSTRACT


A robotic arm is a robotic manipulator, usually programmable,
with similar functions to a human arm .DC motor is used for joint
rotation. It has about same number of degree of freedom as in
human arm. Humans pick things up without thinking about the
steps involved. In order for a robot or a robotic arm to pick up or
move something, someone has to tell it to perform several actions
in a particular order from moving the arm, to rotating the
wrist to opening and closing the hand or fingers.

















4

SALIENT FEATURES / INNOVATIONS

The arm has three dc motors which can be operated by the
arduino single board microcontroller
The arm could grab things approximately in the hemisphere
of cm
The arm can lift objects upto weight of 500 gm
It has been coded to function autonomously
It has been fixed on a moving base which stops autonomously
when it detects an obstruction in its path



5

DECLARATION


A We hereby declare that this submission is our own work to the
best of our knowledge and belief , it contains no materials
published or written by another person or material which to
substantial extent has been accepted for the award of degree or
diploma of any university or other institutes of higher learning
except where due acknowledgement has been made in the text.

MEHUL GARG
(9911102255)

MANIK CHAWLA
(9911102249)

ADITYA GAHLAUT
(9911102157)








6

ACKNOWLEDGEMENT



We take this opportunity to express our profound sense of gratitude
and respect to all those who helped us to think about the idea of the
project. Preparing a project report is never a unilateral effort no
matter the ultimate credit may go to the author. We wish to
acknowledge the guidance and support of the professors and
academics in bringing up a real picture of the concept for which the
report is prepared. We would like to make a special mention of
support, help and encouragement received from our project mentor
Dr. Puli Kishore Kumar.




Name of Student : Mehul Garg, Manik Chawla , Aditya Gahlaut
Enrollment Number : 9911102255 9911102249 9911102157









7





Table of Contents

Chapter 1
1.1 Introduction 10
1.1.1 General Introduction 10
1.1.2 Problem Statement 11

Chapter 2
2.1 Robotic Component 12
2.1.1 Introduction 12
2.1.2 Arduino 13
2.1.3 Arduino IDE 14
2.1.4 Dual H-Bridge 15
2.1.5 Infrared Sensors 16
2.2 DC Geared Motor 17
2.2.1 Working Principle of DC geared Motors 17
2.2.2 Force & Torque Calculation 19
2.3 Control Unit 20
2.3.1 Microcontroller 21
2.3.2 L293D Motor Driver IC Chip 22

Chapter 3
3.1 Algorithm 23
3.2 Algorithm Flowchart 24
8

3.3 Arduino Code 26

Chapter 4
4.1 Circuit Assembly 28
4.2 Robotic Arm Applications 30
4.2 Future Scope 31

References 32






















9


List of Figures

Figure 2.1: Freeduino Board
Figure 2.2: Arduino Board
Figure 2.3: Arduino IDE example
Figure 2.4: Dual H-Bridge
Figure 2.5: Infrared Sensor Circuit
Figure 2.6-2.7: DC Geared Motor
Figure 2.8- 2.9: Working of DC motor
Figure 2.10: Control Unit
Figure 2.11 Atemga8 Pin Configurations
Figure 2.12: L293D Motor Driver IC
Figure 4.1: L293D with Arduino
Figure 4.2: L293D Dual H-Bridge Circuit
Figure 4.3 Final Circuit












10

Chapter 1

1.1 Introduction

1.1 .1 General Introduction
This report presents robotic arm system with 3 DOF assembled
from the commercially available parts. Other than the previous
research works where a complex systems were designed, we have
designed a very simple arm which is able to move in any direction
and can remove an obstacle in its path by simply picking it up and
moving it clearing its path for further movement. The given robotic
arm system is low cost implementation compared to the previous
ones. In this system, a two Infra-Red sensors are used perceive the
obstacle ahead. Program is written in C language using Arduino
library functions which runs in a specialized Arduino IDE on a
computer. The program sends control commands over the serial
port to the controller of robotic arm via RS-232 port.

1.1.2 Problem Statement

Although seemingly an easy thing to do, A robotic arm poses
major challenges as it has to be regularly calibrated according to
the dimensions of the obstacle. Also as there are many ways to
produce a viable robotic arm, doing so using the most innovative
and cost effective, as well as energy efficient way was a difficult
task. Selecting the most efficient motor of the many available
motors was another major challenge as we had to look at the
advantages and disadvantages and then select the most profitable


11


Chapter 2

2.1 Robotic Arm Components

2.1.1 Introduction
The various components used to design and complete a Three DOF robotic
arm are mentioned below. The study of these has been an additional bonus to
making this project as these are vital in the electronics industry and thus
provided us a hands on experience to study and work on them.
2.1.2 Arduino Board
Arduino is a single-board microcontroller to make using electronics in
multidisciplinary projects more accessible. The hardware consists of an
open-source hardware board designed around an 8-bit Atmel AVR
microcontroller, or a 32-bit Atmel ARM. The software consists of a standard
programming language compiler and a boot loader that executes on the
microcontroller.

A 3rd-party Arduino board with a RS-232 serial interface (upper left) and an
Atmel ATmega8 microcontroller chip (black, lower right); the 14 digital I/O
pins are located at the top and the six analog input pins at the lower right.


Figure 2.1: Freeduino Board
Figure 2.2: Arduino Board
Figure 2.1 Figure 2.2
12

An Arduino board consists of an Atmel 8-bit AVR microcontroller with
complementary components to facilitate programming and incorporation into
other circuits. An important aspect of the Arduino is the standard way that
connectors are exposed, allowing the CPU board to be connected to a variety
of interchangeable add-on modules known as shields. An Arduino's
microcontroller is also pre-programmed with a boot loader that simplifies
uploading of programs to the on-chip flash memory, compared with other
devices that typically need an external programmer.

Current Arduino boards are programmed via USB, implemented using USB-
to-serial adapter chips such as the FTDI FT232. Some variants, such as the
Arduino Mini and the unofficial Freeduino, use a detachable USB-to-serial
adapter board or cable, Bluetooth or other methods. (When used with
traditional microcontroller tools instead of the Arduino IDE, standard AVR
ISP programming is used.)
The Arduino board exposes most of the microcontroller's I/O pins for use by
other circuits.


2.1.3 Arduino Software
The Arduino integrated development environment (IDE) is a cross-
platform application written in Java, and is derived from the IDE for
the Processing programming language and the Wiring projects. It is designed
to introduce programming to artists and other newcomers unfamiliar with
software development. It includes a code editor with features such as syntax
highlighting, brace matching, and automatic indentation, and is also capable
of compiling and uploading programs to the board with a single click. A
program or code written for Arduino is called a "sketch".

Arduino programs are written in C or C++. The Arduino IDE comes with
a software library called "Wiring" from the original Wiring project, which
makes many common input/output operations much easier. Users only need
define two functions to make a runnable cyclic executive program:

setup(): a function run once at the start of a program that can initialize
settings
loop(): a function called repeatedly until the board powers off


13



Figure 2.3: Arduino IDE


2.1.4 Dual H-Bridge
An H bridge is an electronic circuit that enables a voltage to be applied
across a load in either direction. These circuits are often used in robotics and
other applications to allow DC motors to run forwards and backwards.

Most DC-to-AC converters (power inverters), most AC/AC converters, the
DC-to-DC pushpull converter, most motor controllers, and many other
kinds of power electronics use H bridges. In particular, a bipolar stepper
motor is almost invariably driven by a motor controller containing two H
bridges.
Figure 2.3
14



Figure 2.4: Dual H-Bridge

A solid-state H bridge is typically constructed using opposite polarity
devices, such as PNP BJTs or P-channel MOSFETs connected to the high
voltage bus and NPN BJTs or N-channel MOSFETs connected to the low
voltage bus.

The most efficient MOSFET designs use N-channel MOSFETs on both the
high side and low side because they typically have a third of the ON
resistance of P-channel MOSFETs.

2.1.5 Infrared Sensors
IR Distance sensors are a low-cost, easy to use analog distance sensor. IR
Sensors produce a constantly updated analog output signal depending upon
the intensity of the reflected IR, which in turn can be used to calculate
approximate range. These sensors are perfect for obstacle avoidance, line
following, and even map building! Browse a large selection of IR Sensors
with different distance ranges, applications, and output types. IR Photo
reflectors are generally used in line following or encoder application, at
short distances to detect white or black colors. These sensors are easy to
Figure 2.4
15

Figure 2.5: Infrared Sensor Circuitry
use and low in cost, making them the perfect addition to our next
autonomous robot project.

2.2 DC Geared Motors
A DC motor is a mechanically commutated electric motor powered
from direct current (DC). The stator is stationary in space by definition and
therefore the current in the rotor is switched by the commutator to also be
stationary in space. This is how the relative angle between the stator and
rotor magnetic flux is maintained near 90 degrees, which generates the
maximum torque. In this project we have used two types of variations of the
DC motorone conventional and the other a high torque low rpm motor.

Figure 2.6 Figure 2.7
Figure 2.5
16

Figure 2.6: DC Geared Motor (Low RPM)
Figure 2.7: DC Geared Motor (Low RPM High Power)

2.2.1 Working Principle of DC motors
It is based on the principle that when a current-carrying conductor is placed
in a magnetic field, it experiences a mechanical force whose direction is
given by Fleming's Left-hand rule and whose magnitude is given by Force,
F = B I l newton
Where B is the magnetic field in weber/m
2

I is the current in amperes
l is the length of the coil in meter
The force, current and the magnetic field are all in different directions. If an
Electric current flows through two copper wires that are between the poles of
a magnet, an upward force will move one wire upend a downward force will
move the other wire down.


Figure 2.8
17


Figure 2.8(a): Force in DC Motor
Figure 2.8(b): Magnetic Field in DC Motor
Figure 2.9(a): Torque in DC Motor
Figure 2.9(b): Current Flow in DC Motor
The loop can be made to spin by fixing a half circle of copper which is known as
commutator, to each end of the loop. Current is passed into and out of the loop by brushes
that press onto the strips. The brushes do not go round so the wire does not get
twisted. This arrangement also makes sure that the current always passes down on the
right and back on the left so that the rotation continues. This is how a simple Electric
motor is made
2.2.2 Force and Torque Calculations
Force and Torque Calculator

Mass
(lbs)
Length
(in)
Center
of Mass
Linkage 1 1 5 2.5

Linkage 2 1 5 2.5

note: the center of mass, estimated to
be half of length
Joint 2 1
Object 1

Efficiency 90%

Joint 1
Acc 10
Joint 2
Acc 10 deg/s^2


calculating:
Joint 1 Torque 64.139 lbs/in
Joint 2 Torque 14.394 lbs/in

Figure 2.9
18



2.3 Control Unit

Control unit refers to an electronic system which takes inputs from the
various sensors which collect data from the environment and can drive
the output devices according to the conditions which are applied due to
various constraints. The control unit consists of a programmable logic
device called microcontroller. The microcontroller is a type of electronic
device which can be pre-programmed according to our requirements.
Every microcontroller has various input and output pins where
different I/O devices can be connected. The microcontroller also has
other peripherals like ADC, USART, PWM, etc. embedded inside the
same chip. Therefore microcontroller is nothing but a microprocessor
with all other peripherals embedded inside the same chip. Whenever
we have to control the systems dynamically according to the conditions
of system environment, we use a microcontroller as the control unit.













Figure 2.10: Control Unit for Robot


Microcontroller
Microprocessor
Peripherals
Output
devices like
Motors etc.
Input
Devices like:
IR sensors
etc.
Figure 2.10
19

2.3.1 Microcontroller
A microcontroller is a small computer on a single integrated
circuit containing a processor core, memory, and programmable output
peripherals. In this project we have used Atemga8 Microcontroller which has
been used to contruct the Arduino board purchased. Atmega8 has 8 Kb of
Flash program memory (10,000 Write/Erase cycles durability), 512
Bytes of EEPROM (100,000 Write/Erase Cycles). 1Kbyte Internal
SRAM, 23 I/ line, two External Interrupt source, 19 different
interrupt vectors supporting 19 events generated by internal
peripherals. Three Internal Timers are available, two 8 bit, one 16 bit,
supporting internal or external clocking. Analog Comparator: A
comparator module is integrated in the IC that provides comparison
facility between two voltages connected to the two inputs of the
Analog comparator via External pins attached to the micro controller.
An inbuilt analog to digital converter can convert an analog input
signal into digital data of 10bit resolution.

Figure 2.11: Pin Diagram for Atmega8



Figure 2.11
20


2.3.2 L293D Motor Driver IC chip
L293D is a dual H-bridge motor driver integrated circuit (IC). Motor drivers
act as current amplifiers since they take a low-current control signal and
provide a higher-current signal. This higher current signal is used to drive
the motors.

L293D contains two inbuilt H-bridge driver circuits. In its common mode of
operation, two DC motors can be driven simultaneously, both in forward and
reverse direction. The motor operations of two motors can be controlled by
input logic at pins 2 & 7 and 10 & 15. Input logic 00 or 11 will stop the
corresponding motor. Logic 01 and 10 will rotate it in clockwise and
anticlockwise directions, respectively.

Figure 2.12:L293D Circuit for 2 motor Control


Enable pins 1 and 9 (corresponding to the two motors) must be high for
motors to start operating. When an enable input is high, the associated driver
gets enabled. As a result, the outputs become active and work in phase with
their inputs. When the enable input is low, that driver is disabled, and their
outputs are off and in the high-impedance state.

Figure 2.12
21

EN 1A 2A FUNCTION
H L H Turn right
H H L Turn left
H L L Fast motor stop
H H H Fast motor stop
L X X Fast motor stop
















22

Chapter 3

3.1 Algorithm
1. Firstly the robot starts moving and checking for obstruction
with the help of the infrared sensors.

2. If the obstruction is present then the wheel motor stops and the
robotic arm motor starts.

3. The robotic arm completes its movemets and waits for the IR
sensor to be in RESET

4. The process is repeated as many times as the the code requires


23

3.2 Algorithm Flowchart
































24

3.3 Arduino Code
The code mentioned below is the basic layout for the arm to pick up an object and
place it on the right side. This code can be modified to do any pick-and-place
procedure.
const int rs = 10;
const int ls = 11;
const int rmotor1 = 2;
const int lmotor1 = 3;
const int motor21 = 4;
const int motor22 = 5;
const int motor31 = 6; // Arm
const int motor32 = 7;
const int motor41 = 8; // Flap
const int motor42 = 9;


int lsState = 0;
int rsState = 0;

void setup()
{
pinMode(ls, INPUT);
pinMode(rs, INPUT);
pinMode(lmotor1, OUTPUT);
pinMode(rmotor1, OUTPUT);
pinMode(motor21, OUTPUT);
pinMode(motor22, OUTPUT);
pinMode(motor31, OUTPUT);
pinMode(motor32, OUTPUT);
pinMode(motor41, OUTPUT);
pinMode(motor42, OUTPUT);
}

void loop()
{
lsState = digitalRead(ls);
rsState = digitalRead(rs);

if ((lsState == LOW)&&(rsState == LOW))
{
digitalWrite(lmotor1, HIGH);
digitalWrite(rmotor1, HIGH); // Move Forward
}
if ((lsState == HIGH)&&(rsState == HIGH)) // when obstacle is detected
{
digitalWrite(lmotor1, LOW);
digitalWrite(rmotor1, LOW); // Stop

digitalWrite(motor41, LOW);
digitalWrite(motor42, HIGH); // Open flap
delay(1000);
digitalWrite(motor41, LOW);
digitalWrite(motor42, LOW);

digitalWrite(motor31, LOW);
digitalWrite(motor32, HIGH); // Arm down
25

delay(1000);
digitalWrite(motor31, LOW);
digitalWrite(motor32, LOW);

digitalWrite(motor42, LOW);
digitalWrite(motor41, HIGH); // Close flap
delay(1000);
digitalWrite(motor42, LOW);
digitalWrite(motor41, LOW);

digitalWrite(motor32, LOW);
digitalWrite(motor31, HIGH); // Arm up
delay(1000);
digitalWrite(motor32, LOW);
digitalWrite(motor31, LOW);

digitalWrite(motor21, LOW);
digitalWrite(motor22, HIGH);
delay(1000);
digitalWrite(motor22, LOW);
digitalWrite(motor21, LOW);

digitalWrite(motor31, LOW);
digitalWrite(motor32, HIGH); // Arm down
delay(1000);
digitalWrite(motor31, LOW);
digitalWrite(motor32, LOW);

digitalWrite(motor41, LOW);
digitalWrite(motor42, HIGH); // Open flap
delay(1000);
digitalWrite(motor41, LOW);
digitalWrite(motor42, LOW);

digitalWrite(motor32, LOW);
digitalWrite(motor31, HIGH); // Arm up
delay(1000);
digitalWrite(motor32, LOW);
digitalWrite(motor31, LOW);

digitalWrite(motor22, LOW);
digitalWrite(motor21, HIGH);
delay(1000);
digitalWrite(motor22, LOW);
digitalWrite(motor21, LOW);

digitalWrite(motor31, LOW);
digitalWrite(motor32, HIGH); // Arm down
delay(1000);
digitalWrite(motor31, LOW);
digitalWrite(motor32, LOW);


} }


26

Chapter 4
4.1 Circuit Assembly
Firstly the L293D IC was connected to the Arduino and is checked if
it can drive the dc motor properly.

Figure 4.1: L293D with Arduino Board
Then we checked if the h-bridge was able to drive two motors
simultaneously.


Figure 4.2: Arduino, Dual H- Bridge and Motors.
Figure 4.1
Figure 4.2
27






Then we assembled the final circuit using the arduino board, h-bridge,
L293D IC and dc motors.

4.2 Robotic Arm Applications

Robotic Arm can be used to reach out to areas inaccessible to the reach of
a human, such as in a manhole deep enough to be a danger to the rescue
workers. In that case a robotic arm can be used to reach out to the depths
and perform the required activity such as rescuing, searching etc.

The robotic arm can be designed to perform any desired task such as
welding, gripping, spinning etc., depending on the application. For
example robot arms in automotive assembly line perform a variety of
tasks such as wielding and parts rotation and placement during assembly.

In space the space shuttle Remote Manipulator System have multi degree
of freedom robotic arms that have been used to perform a variety of tasks
such as inspections of the Space Shuttle using a specially deployed boom
with cameras and sensors attached at the end effector.


The robot arms can be autonomous or controlled manually and can be
used to perform a variety of tasks with great accuracy. The robotic arm
can be fixed or mobile (i.e. wheeled) and can be designed for industrial or
home applications. Robotic hands often have built-in pressure sensors
that tell the computer how hard the robot is gripping a particular object.
This keeps the robot from dropping or breaking whatever it's carrying.
Other end effectors include blowtorches, drills and spray painters. This
improves their performance.

In medical science: "Neuroarm" uses miniaturized tools such as laser
scalpels with pinpoint accuracy and it can also perform soft tissue
28

manipulation, needle insertion, suturing, and cauterization.

4.3 Future work that can be done:

Increasing the degrees of freedom of the robotic arm by implanting
more DC motors.
Increasing the weight capacity of the Robotic Arm so as to enable it to
pick up heavier loads such as even a human being.
Implementing the inverse kinematics technique in robotic arm.
Developing the graphical user interface for making the arm more user
friendly
Developing a web interface so that arm could be controlled in remote
place by your web browser.

















29

References

For pwm generation through atmega microcontroller
http://enricorossi.org/blog/2010/avr_atmega16_fast_pwm/
2. For developing the graphical user interface using the opencv
The best way to learn opencv is to read the oreilly s book Learning
OpenCV:computer
vision with opencv library.
http://opencv.willowgarage.com/documentation/highgui._highlevel_gui_and
_media_io.htm
http://www.aishack.in/


3. For articles related to robotics and the servo motors
http://www.robosapiens-
india.com/cookbook/robotics%20virtual%20book/index.html
http://www.engineersgarage.com/articles/servo-motor
http://www.engineersgarage.com/embedded/avr-microcontroller-
projects/atmega16-
servo-motor-circuit

Anda mungkin juga menyukai