You are on page 1of 51

BAHIR DAR UNIVERSITY

BAHIR DAR INSTITUTE OF TECHNOLOGGY

FACULTY OF ELECTRICAL AND COMPUTER ENGINEERING

Project Title: Design and Simulation of microcontroller based pick and


place mobile Robot

Name Id

1. Bamlaku Gedefaw 0701422

2. Bantigegn Ayichew 0701426

3. Behulu Yenealm 0701435

4. Lingerew Fenta 0701966

Project adviser: Mr.Gashay.L


February ,2011
Bahir Dar,Ethiopia

ii
DECLARATION

We, students of Bahir Dar Institute of technology (BiT), faculty of Electrical and Computer
Engineering declare that this project has done on the topic of “Design and Simulation of
Microcontroller Based pick and place robot for industrial purpose ” is our original work. And all
sources and materials that are used for this project work is fully acknowledged.
Approved And Date of Submission:
This project is being submitted to our advisor for examination and his approval.
Name Date Signature
1. Bamlaku Gedefaw ____________ ____________

2. Bantigegn Ayichew ____________ ____________

3. Behulu Yenealem ____________ ___________

4. Lingerew Fenta ____________ ____________

Project advisor Date Signature


Mr. Gashaye L. _________ ___________

i
Acknowledgment

First, we would like to thank our God. Next to God we would like to convey our deep sense of
gratitude and thanks to our advisor Mr. Gashay.L for his excellent guidance and advice to
complete this project. ; without him we would not have been able to complete our project work
successfully. He gave us best skill and knowledge of doing the project. We would like to express
our gratitude to all those who gave our possibility to complete this project. And also we would
like to say thanks to our friends for their effort of knowledge which we have got them valuable.
The guidance and support received from all the members who contributed and who are
contributing to this project, was vital for the success of the project. Finally, we are grateful for
their constant support and help.

ii
Abstract

This project deals with the design and simulation of mobile pick and place robot to control the
robot arm and end effector position of the robot manipulator by controlling the position and the
angles and an attempt of developing automated equipment to pick or place materials. Mobile
robots are versatile instruments of technology that work to make the life of human beings easy.
Pick and place systems are highly advantageous due to their consistency, accuracy, precision,
repeatability, reliability, resolution and efficiency. A robot arm is fixed to a base and operates in
its workspace to achieve the migration towards its pick location. It opens its gripper upon arrival
to grasp the object and move with it to the depot location. Upon arrival at the destination it opens
its claws to release the object. The microcontroller sets the servo motors to rotate at calibrated
angles that place the arm at the desired position in space and time to commit to the task .A
robotic arm is designed using Arduino to pick and place the objects via user commands. It will
pick and place an object from source to destination safely. The soft catching gripper used in the
arm will not apply any extra pressure on the objects. The robot uses four servo motors for arm
moment and two DC motors for the wheel motion interfaced with the microcontroller. A robot is
usually electromechanical machine that is guided by computer and electronic programing. Based
on the program, robot motion can be controlled. The constituent output of a robotic system along
with quality and repeatability are unmatched. A robot can be reprogrammable, multi-functional
device which is primarily designed to do work like human such as pick and place, loading and
unloading, healthcare, welding, industrial and aerospace application.

iii
Table of Contents
DECLARATION..............................................................................................................................i
Acknowledgment.............................................................................................................................ii
Abstract..........................................................................................................................................iii
CHAPTER ONE..............................................................................................................................1
1.Introduction...................................................................................................................................1
1.1Background Information.........................................................................................................1
1.2 System Background...............................................................................................................2
1.3 Problem statement.................................................................................................................2
1.4 Objective................................................................................................................................3
1.4.1 General objective:...........................................................................................................3
1.4.2 Specific objective:..........................................................................................................3
1.5 Methodology..........................................................................................................................3
1.6 Scope of the project...............................................................................................................4
1.7 Organization..........................................................................................................................4
CHAPTER TWO.............................................................................................................................5
2.LITERATURE REVIEW.............................................................................................................5
CHAPTER THREE.........................................................................................................................8
3.SYSTEM COMPONENT AND DESIGN...................................................................................8
3.1 SYSTEM COMPONENT AND OPERATION....................................................................8
3.1.1 Description of Hardware components and their operation.............................................8
3.2 System Design and Analysis...............................................................................................14
3.2.1 KINEMATICS ANALYSIS.........................................................................................16
CHAPTER FOUR.........................................................................................................................21
4.Result and Discussion.................................................................................................................21
4.1 System analysis and simulation...........................................................................................21
CHAPTER FIVE...........................................................................................................................23
5. Conclusion and Recommendations for future work..................................................................23
5.1 Conclusion...........................................................................................................................23
5.2 Recommendations for Future work.....................................................................................23

iv
References:....................................................................................................................................25
Appendix........................................................................................................................................26

v
List of figure

Figure 2. 1 LYNX 5 robotic arm.....................................................................................................6


Figure 2. 2 KUKA KRC1 Robotic Arm..........................................................................................6
Figure 2. 3 Robarm..........................................................................................................................7
YFigure 3. 1 Block diagram of overall system................................................................................8
Figure 3. 2 Arduino Uno AT mega 328p.........................................................................................9
Figure 3. 3 power supply (9v battery)...........................................................................................10
Figure 3. 4 power supply...............................................................................................................10
Figure 3. 5 servo motor SG 90.......................................................................................................12
Figure 3. 6 dc motor driver............................................................................................................13
Figure 3. 7 DC motor.....................................................................................................................13
Figure 3. 8 Reference frame .......................................................................................................165
Figure 3.9 shows kinematics of robotic arm……………………………………………………..16
Figure 4.1 proteus simulation……………………………………………………………………22

vi
List of Acronyms
AC………………………………………………………Alternating current
DC………………………………………………………Direct current
DH………………………………………………………Denavit-Hartenberg
DOF……………………………………………………...Degree of freedom
IC………………………………………………………...integrated circuit

vii
CHAPTER ONE

1.Introduction

1.1Background Information

Robotics is one of the branches of technology and deals with designing, creation, operations and
applications of robots. When we think of a robot, the first thing that comes to our mind is that it
is a machine that imitates a human. But in real terms, there is no standard definition for a robot.
Robots are designed to move parts, materials and tools and to perform a variety of tasks in
manufacturing and production. They can carry a load around hundred pounds and move it very
quickly with repeatability. There are many types of robots available in the market today such as
serial type, mobile type, and parallel type and walking type. But the one what we are going to do
for our project is mobile type robot. The elements of robots are manipulators, end effectors,
grippers, sensors, power supply and controllers.

Robotics gained more importance in the modern era since it requires less cost to operate than a
human labor to do the same task, also once programmed robot will perform better than an
experienced human labor. Now a day’s industry is turning towards computer based monitoring of
tasks mainly due to the need for the increased productivity and delivery of the final products with
maximum quality. Due to the inflexibility and generally high cost of hard computerization
systems lead to the use of industrial robots. In this paper we are introducing a robotic arm which
is capable of picking up and placing the objects. The soft catching gripper used here handle
objects safely. Thus based on the user commands the robot moves, picks and places the objects.
The robotic arm used here is similar to a human arm which is programmed to perform the pick
and place functions.

Robots handle tasks that are difficulty, dangerous or boring to human beings. The most common
robot is the robotic arm.
The pick and place robot is a microcontroller based mechatronic system that detects the object,
picks that object from source location and places at desired location. For detection of object,
android object detection application is been developed by using java language. Pick and place
robots are robots that can be programmed to literally pick an object up and place it

1
Somewhere. These robots are popular among business owners who require speedy and precise
automation applications and material handling systems.
The existing pick and place robots are based on:

[1] . Sensors to detect the objects. Sensors such as infrared sensor and pyro electric sensor can be
used. These sensors cannot work when the object is placed at very far distance.

[2]. Human intervention is required in order to move the robot from one place to other which
requires the need of pc and internet connections. Thus these factors result in complexity and cost.
Thus all these drawbacks are overcome by designing a pick and place robot that works on
android via object detection application development. Robotic arm is type of mechanical model
arm, it is usually programmed, like that of a human arm. The links of such a manipulator are
connected by joints allowing either rotational motion (such as in an articulated robot) or linear
displacement.

1.2 System Background

The project is a Robotic Arm that can identify the degrees written in the code and repeatedly
doing the task until the work is done then after it can be stopped using a stop button installed on
the system. To peak the object first we need to calculate the position of the object then we insert
the degrees for each link and run in the program

1.3 Problem statement

Today humans are performing tasks that are too dangerous. They do all tasks involved in the
manufacturing industry by themselves. Reduction in speed and accuracy of manufacturing is
another problem. In the context of our country, most people are still using manual processes for
picking, placing and moving heavy materials. These manual processes are difficult and time
consuming. Usually the process of picking, placing and moving heavy materials is being carried
out using man power. This results in loss of energy and if such process is repeated for a period of
time, it can cause injuries to the operator. To reduce these problems a pick and place robot is
being designed and implemented. By using such particular robot, the operator will no longer
have to bent and lift up heavy loads and thus preventing injuries and increasing the efficiency of
the work. Operators will make mistakes whether small or big in a while. In the industrial world,

2
the industry cannot afford to take any kind of mistakes. As every mistake is costly whether
interns of time, money and material. The robot may be designed with fixed in one position to
detect the presence of an object but the one we are going to design is movable and able to detect
the presence of objects.

1.4 Objective

1.4.1 General objective:

The general objective of our project is to design and simulate microcontroller based pick and
place mobile robot.

1.4.2 Specific objective:

Some of the specific objectives are

 To calculate the Denavit-Hartenberg (DH) parameters of robotic manipulator.


 To control the movement of a robotic arm joints using Arduino programming.
 Modeling and simulation in proteus.

1.5 Methodology

This topic is focused on the methodology process which is the sets of methods to design and
simulate our robot. The design that has been implemented is needed to specify certain criteria to
achieve project objectives. The information in the literature review is interpreted to select the
suitable design for the robotic arm.
The methodology for this project performed as follows.
Problem identification: This means that clearly stating of the problem about this project.
Literature Reviewing: This includes reading books and documents on related areas.
System modeling: It realizes combining different components to describe the system.
System analysis and simulation: This indicates how the system behaves using proteus.
Proposing Solution: The system solves the problem by designing pick and place mobile robot .

3
Procedure of our project
Collection of data: - data collection about microcontroller based pick and place robot had
been carried out.

Data analysis: - We analyze the gathered information and this helps us to learn from the
drawback of other projects and makes our project effective.

Design Materials: - an overall design of this robot system is being carried out using
Components. The design and material selection portion is divided into two. The first part is the
architecture of the robot arm that includes what the arm looks like, what kind off end effector
will be used and also how many degree of freedom will the robot has. It is all about the physical
and the movement mechanism of the robot. The second part is the programing section. In this
section the program to manipulate the servo motors and DC motors will be coded using Arduino
software.

Result and Discussion: - dealing with the result or output of the project and discussion on it.

Conclusion and recommendations: - is made based on proteus and Micro programming


language.

1.6 Scope of the project


we made a design and simulation of the robot arm using proteus software. Our scope is up to
making a design and simulation that can effectively replies to our code.

1.7 Organization

Our project contains 5 chapters. The 1st chapter describes about the introduction part of the project
with the statements of the problem and its objectives. The 2nd chapter describes about literatures
related to microcontroller based pick and place robot. The 3rd chapters explain about material
descriptions and over all operation. The 4th chapter Results and Discussions about program and
proteus circuit. The last chapter describes about conclusion and recommendation of our project.

4
CHAPTER TWO

2.LITERATURE REVIEW

J. Heintze et all [1] explained about design of industrial robot and discussed about the tight
performance claims which have been imposed by the task specification, constitute the basis for
the research on control of hydraulically driven manipulators. Manta B. Rajkot et all [2] A general
framework for robot control; IEEE Transactions on Robotics and Automation, industry is a labor
intensive. Masonry G. Pritschow et all [3] explained about design of robot control system. The
dramatic shortage of skilled workers and a strong need of improving productivity and efficiency
characterize the situation of masonry construction in Germany today. Carlos Balaguer [4]
discussed about the open issues and the main barriers to introducing automation in the
construction industry are analyzed. This paper explained about the possibilities in automating the
construction. G. Pritschowa et all here report is given about the progress in research and
development of a mobile bricklaying robot for use on the construction site. Seung-Nam Y et all
explained about the brick handling in construction road paving site or building construction site
is traditionally performed by the handwork of humans features: high quality, variety of designs,
mass production, reasonable cost, and etc. B. Kahane and Y. Rosenfeld [4] explained about
comparison of various ways to use a robotic system for picking materials. Yukio Hasegawa
explained about the construction automation and robotization effort.

Previous work in this field: Before designing and simulating our robot, we reviewed the
previous works of robotic arms. Here we show some of those robotic arms and compare them to
our robot,

LYNX 5 Robotic Arm: This is a 5 DOF robotic arm. The links are actuated using servo
Motors. This lead to reducing the size of the robot. The robot is interfaced using a driver circuit
and connected to PC using serial port.

5
Figure 2. LYNX 5 robotic arm

KUKA KR C1: This is a famous industrial robotic arm with 6 DOF and used to carry Heavy
weights. Its main applications: Arc welding, Machining, Polishing, grinding, Assembly and
Cutting.

Figure 2. KUKA KRC1 Robotic Arm

Rob arm the robotic arm


Giandomenico De Sanctis, made a really clever robot arm, source and schematics included. It is
5 DOF arm actuated with servo motors and has a gripper as end-effector.

6
Figure 2. Robarm

7
CHAPTER THREE

3.SYSTEM COMPONENT AND DESIGN

3.1 SYSTEM COMPONENT AND OPERATION

3.1.1 Description of Hardware components and their operation

Voltage regulator

Motor 1

Drive 1
Motor 2

Microcontr
Servo Motor 1
oller
At mega16

Servo Motor 2

Servo Motor 3

Servo Motor 4

Figure 3. Block diagram of overall system

8
 Arduino Uno
 Power supply
 DC Motor Driver L293D
 DC Motors
 Servo motors

Arduino Uno
The Arduino UNO is a widely used open-source microcontroller board based on the
ATmega328P microcontroller and developed by the board is equipped with sets of digital and
analog input/output (I/O) pins that may be interfaced to various expansion boards (shields) and
other circuits. The board features 14 Digital pins and 6 Analog pins. It is programmable with the
(Integrated Development Environment) via a type B USB cable. It can be powered by a USB
cable or by an external 9 volt battery, though it accepts voltages between 7 and 20 volts.

Figure 3. Arduino Uno AT mega 328p

POWER SUPPLY
The primary function of a power supply is to convert from a source to the correct voltage,
current, and frequency to power the load. As a result, power supplies are sometimes referred to
as some power supplies are separate standalone pieces of equipment, while others are built into

9
the load appliances that they power. Examples of the latter include power supplies found in
devices. Other functions that power supplies may perform include limiting the current drawn by
the load to safe levels, shutting off the current in the event of a power conditioning to prevent. It
has a rectangular prism shape with rounded edges and a polarized snap connector at the top.

Figure 3. power supply (9v battery)


Transformer is a device used to convent AC at high voltage into low voltage & vice versa. They
are used in telegraph, television, wireless transmitting and receiving sets etc. Here a high voltage
AC is converted in to low voltage AC with the help of a step-Down transformer. That is low AC
converted into 5V DC. Voltage regulators are used to provide an constant output voltage.

Figure 3. power supply

10
Servo motors

Servo motor is a tiny and lightweight with high output power. Servo can rotate
approximately 180 degrees (90 in each direction), and works just like the standard kinds
but smaller. You can use any servo code, hardware or library to control these servos.
Good for who want to make stuff move without building a motor controller with
feedback & gear box, especially since it will fit in small places. It comes with a 3 horns
(arms) and hardware.
Working principle of Servo Motors:

A servo consists of a Motor (DC or AC), a potentiometer, gear assembly and a


controlling circuit. First of all we use gear assembly to reduce RPM and to increase
torque of motor. Say at initial position of servo motor shaft, the position of the
potentiometer knob is such that there is no electrical signal generated at the output port
of the potentiometer. Now an electrical signal is given to another input terminal of the
error detector amplifier. Now difference between these two signals, one comes from
potentiometer and another comes from other source (Arduino), will be processed in
feedback mechanism and output will be provided in term of error signal. This error
signal acts as the input for motor and motor starts rotating. Now motor shaft is connected
with potentiometer and as motor rotates so the potentiometer and it will generate a
signal. So as the potentiometer’s angular position changes, its output feedback signal
changes. After sometime the position of potentiometer reaches at a position that the
output of potentiometer is same as external signal provided. At this condition, there will
be no output signal from the amplifier to the motor input as there is no difference
between external applied signal and the signal generated at potentiometer, and in this
situation motor stops rotation.

11
Figure 3. servo motor SG 90
DC Motor Driver (L293D) : The voltage to flow in either direction. It has four channels.
Every motor requires two L293D is a typical motor driver IC that works on the concept of dual
H-bridge i.e. it allows channels to control in both directions. It can switch the output voltage up
to 4.5v to 36v. IC L293D allows DC motor to drive both in forward and reverse direction. It 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 IC.L293D converts a low-current control signal
to high-current signal which is used to drive the motor.
 It follows dual H-bridge principal, it takes low current control signal as input and provids
a high current output signal which is used to drive the dc motor.
 L293D has quadruple high current half-H drivers.
 Wide Supply-Voltage Range: 4.5 V to 36 V

12
Figure 3. dc motor driver
DC Motor

A DC motor is a device that converts electrical energy into mechanical energy. It works on the
principle of Fleming’s left hand rule to determine the direction of force. DC motors with built in
gearing Arrangement is used in this work. It is because it is simple to control and have higher
torque compared to servomotors. To use a DC motor, we need motor driver IC. To drive the
motor simply connect the one wire to one of the driver terminals and the other to other terminal.
 It receives a required current from the drive to rotate the wheel and to activate the griper.
 10 to 200RPM 12V DC motors with Gearbox
 6mm shaft diameter with internal hole
 No-Load Current=60mA(max)
 Load Current=300mA(max

Figure 3. DC motor

13
3.2 System Design and Analysis

Particular case of robotic arms in motion, the resulting end-effectors' trajectory is Robotics
involves the simultaneous motion in 3D space of several objects. It is caused by the synchronous
activation of several motors along the robotic mechanism. A Joint is the part of the arm that
connects two links together. Each link represents one degree-of-freedom (DOF). The application
of the arm decides how many DOF are required. Larger number of DOF gives great flexibility
but more complexity. Each joint requires an actuator (usually a motor) to perform its required
job; bend or rotate or translate (L3). It is a 3-DOF robotic arm, two main links (L1, L2)
connected to a link that holds the End-effector. The end-effector is a gripper that opens and
closes as required which makes the arm capable of holding the required objects. The Base Moves
around the Real Z-Axis causing an angel ofƟ 1. The first joint is placed on the base and moves
the First Link around X- Axis causing an angle of Ɵ 1 . The second joint is directly connected to
the First Link and Second Link and makes an angle of Ɵ 2. It is connected to the second gripper.
The Gripper has no DOF and it just opens and closes. To analyze the motion of robot
manipulators, reference frames; a frame is 3-axis group[X, Y ,Z], the frames are attached to each
link starting at frame F 0, attached to the fixed link (the base), all the way to frame F n, attached to
the robot end effector (assuming the robot has n joints).The process followed in assigning frames
to links is based on the Denavit-Hartenberg parameters. Given two consecutive link frames on a
robot manipulator, frames F i−1 and F i, frame F i will be uniquely determined from frame F i−1 by
using the parametersd i, a i

14
Figure 3. 8 Reference frame
As shown in fig, any link connects two joints together (except last link), from the above figure
we conclude the following results,
• The Z vector of any link frame is always on a joint axis. The only exception to this rule is the
end-effector of the robot which does not have a joint axis.
• d i is the algebraic distance along axis Zi−1 to the point where the common perpendicular
intersects axis Zi−1.

• a iis the length of the common perpendicular to axes Zi−1 and Zi .

•Ɵ i is the angle, about Zi−1, that the common perpendicular makes with vector X i−1.

• α i is the angle, about X i , that vector Zi makes with vector Zi−1.


The DH parameter of our robot will be;
Ɵi αi ai di
Ɵ1 π 0 L1
2
Ɵ2 0 L2 0
Ɵ3 0 L3 0

15
Figure 3. shows kinematics of our robotic arm

3.2.1 KINEMATICS ANALYSIS

The goal of this project is to make a 3-link robotic arm reach a target position that is controlled a
program. The first thing we need is to get an idea about all the parameters we need. The robot is
capable of moving in 3 dimensions. A large part of robot kinematics is concerned with the
establishment of various coordinate systems to represent the positions and orientations of rigid
objects, and with transformations among these coordinate systems. Indeed, the geometry of
three-dimensional space and of rigid motions plays a central role in all aspects of robotic
manipulation. In this chapter we study the operations of rotation and translation, and introduce
the notion of homogeneous transformations. Homogeneous transformations combine the
operations of rotation and translation into a single matrix multiplication, and are used to derive
inverse kinematic equations of the manipulators. We can get its forward and inverse kinematics
from the transformation matrix.

16
The general equation of transformation matrix is;

cos θ −sin θ cos α sin θ sin α acos θ


H i−1
i =
[
sin θ cos θ cos α −cos θ sin α a sinθ
0 sin α
0 0
cos α d
0 1
]
Then based on the above transformation matrix we can develop a matrix for frame i with respect
to the previous frame i-1.

cos θ 1 0 sin θ 1 0

[
sin θ 1 0 −cos θ 1 0
H 01= 0
0
1 0
0 0 1
l1
]
cos θ 2 −sin θ 2 0 l 2 cos θ 2
H 12=
[sin θ 2 cos θ 2 0 l 2 sin θ 2
0 0
¿0 00
1 0
1
]
cos θ 3 −sinθ 3 0 l 3 cos θ 3
H 23=
[ sin θ 3
0
0
cos θ 3
0
0
0 l 3 sin θ 3
1
0
0
1
]
H 03= H 01 H 12 H 23, this is the homogeneous transformation matrix of the robot.

c 1 c 2 c 3−c 1 s 2 s3 −c1 c 2 s 3−c 1 s2 c 3 s 1 l 3 c 1 c2 c 3−l 3 c1 s 2 s 3+l 2 c 1 c2

where
[
s c c −s s s −s1 c 2 s 3−s 1 s 2 c 3 −c 1 l 3 s1 c 2 c 3−l 3 s1 s 2 s3 +l 2 s1 c 2
H 03= 1 2 3 1 2 3
s 2 c3 + c2 s 3 c 2 c 3−s2 s 3
0 0
0 l 3 s 2 c 3 +l 3 c2 s 3 +l 2 s2 +l 1
0 1
]
c i=cos Ɵ i, i=1, 2, 3.
si=sin Ɵi , i=1, 2, 3.
From the above transformation matrix:

17
X c=l 3 c1 c 2 c3 −l 3 c 1 s 2 s3 +l 2 c1 c 2

Y c =l 3 s 1 c 2 c3 −l 3 s1 s 2 s3 +l 2 s 1 c 2

Z c=l 3 s 2 c 3 +l 3 c2 s 3 +l 2 s2 +l 1

To find the inverse kinematics solution of the robot we use geometrical approach analysis by
looking the manipulator from the top and from the side.

Top view

Y 03
Y0

X0 X 30

Let X c= X 30 and Y c = Y 03

Yc
tanƟ 1=
Yc
Xc
−1
;Ɵ 1=tan X c ¿ ( )
¿
Ɵ 1= tan−1 ( Xc , Yc ) ………………………………………………….1

Side view

r3 φ3 a3

φ1 φ2 r2
a2

Ɵ2

18
Ɵ2 r1
Ɵ3

a1

Let Z c=Z30 , L1=a 1, L2=a 2 and L3= a 3.


Ɵ 2=φ 2−φ1………………………………... i

r2
φ 2= tan−1
( ) r1
……………………………… ii

From the top view we can get r 1 .

r 1=√ X c 2 +Y c 2. ……………………………….iii

From the side view


r 2= Z c −a1…………………………………...iv

r 3=√ r 12+ r 22

Appling cosine law from side view (blue color).

a 32 =a 22+r 32-2a 2 r 3 cos φ1 ……………………v

r 32+ a22−a 32
cos φ1= =D
2 a2 r 3

a32−a 22−r 32
φ 1=cos−1
( −2 a 2 r 3 ).

r 32+ a22−a 32
φ 1=cos −1
( 2 a2 r 3) , from trigonometric function: sin φ12 +cos φ12=1

sin φ1 =± √ 1−D2

φ 1=tan−1 ( cos φ1 , sin φ 1 )= tan−1 ( D ,± √ 1−D2 )

Ɵ 2=tan−1 ( r 1 , r 2 ) −tan −1 ( D , ± √1− D2) ……………………………….2

Applying cosine law from the side view .

r 32=a 22 +a 32 -2a 2 a3 cos φ3…………………….vi

19
a32 +a22−r 32
cos φ3= =E, from trigonometric Identity: sin φ32 +cos φ32=1
2a 2 a 3

r 32−a22−a32
φ 3=cos −1
( −2 a2 a3 )=cos−1 ( E )……………………………..*

sin φ3 =± √1−E2

φ 3=sin−1 ( ± √ 1−E2 )………………………………....................**

By combining equation * and equation **:


φ 3= tan−1 ( E ,± √ 1−E2 )

Ɵ 3=1800-φ 3

Ɵ 3=1800- tan−1 ( E ,± √ 1−E2 )……………………………………3

20
CHAPTER FOUR

4.Result and Discussion

4.1 System analysis and simulation

we use a proteus library to analyses and simulate the system. The proposed system is
implemented using the Arduino mega 2560 microcontroller. It has 54 input output pins. The
operating voltage of mega microcontroller is 5v. The two DC and four servo motors are
interfaced with the microcontroller. Motor driver L293D receive 12V from power supply and
drive the motors. Each motors are connected to that of the driver IC. Movement of the robotic
vehicle and arm is based on the direction of rotation of motors. By giving digital high or low
values to the motor pins we can rotate it to any direction.

The main part of our project is controlling the motors, rotating to a certain angle that we
intended. And collaborating the two dc motor and three servo motors to make the robot motion
perfect. The other important point is timing the order that the motors actuate to make the robot
movement smooth and accurate. We used Proteus simulation software to see the motors
movement and in this simulation we were able to achieve the above points. To determine the
angle of the joints we used Maple software it helped us to analyses the invers kinematics of the
end effector

21
Figure 4. proteus circuit simulation

22
CHAPTER FIVE

5. Conclusion and Recommendations for future work

5.1 Conclusion

The aim of this project is the development of microcontroller based mobile pick and place robot.
Thus implementation of pick and place robot is been done by finding the inverse kinematics and
putting the value obtained from inverse kinematics into microcontroller code. The micro
controller used is an Atmega16. The robot was tested successfully and was capable of picking
objects and migrating them across to a required position with accuracy, precision and efficiency.
The repeatability and speed of operation was high making the robot suitable for dexterous tasks.
A robotic arm is implemented using Arduino to pick and place objects more safely without
incurring much damage. The robotic arm used here contains a soft catching gripper which safely
handles the object. In the modern era time and man power are major constraints for the
completion of a task. By the use of our product the industrial activities and hazardous operations
can be done easily and safely in a short span of time. The use of soft catching gripper and robot
mobility makes our system more effective when compared to other systems. The proposed
system is capable of lifting only small weights, by introducing high torque providing motor large
weights can be picked. A wireless camera can also be implemented to track the movement of the
vehicle and thus it can be used in defense purposes. The range is also a limitation it can be
enhanced by using a wireless communication technology

5.2 Recommendations for Future work

In this chapter we introduce all the possibilities of improving our system, including possible
updates in its motion, components, and visual system. These improvements will increase the
project's accuracy, performance quality, and accuracy.
The improvements will be in the fields of:
 Model identification
 On-line tuning

23
 Real time operation
 Image processing

24
References:

[1].AnushaRonanki , M. Kranthi,”Design and Fabrication of Pick and Place Robot to Be


Usedin Library”, International Journal of Innovative Research in Science, Engineering and
Technology (An ISO 3297: 2007 Certified Organization) Vol. 4, Issue 6, June2015

[2].B.O.Omijeh,R.Uhunmwangho,M.Ehikhamenle,”Design Analysis of a Remote Controlled


Pick and Place RoboticVehicle”,International Journal of Engineering Research and Development
e-ISSN: 2278-067X, p-ISSN: 2278-800X,
www.ijerd.com Volume 10, Issue 5 (May 2014), PP.57-68
[3]. Mohamed Naufal bin Omar,“Pick and place robotic arm controlled by Computer”,
UniversititeknikalMalaysia, Melaka April 2007.
[4]. N.F Begum,”Autonomous Android controlled robo design using wireless energy”,
International Journal of Innovative Research inAdvanced Engineering (IJIRAE) ISSN: 2349-
2163 Issue 2, Volume 2 (February 2015)
[5]. Takashi Yoshimi, Naoyuki Iwata, Makoto Mizukawa and Yoshinobu Ando, Member,
IEEE,” Picking up Operation of Thin Objects by Robot Arm with Two-Fingered Parallel
SoftGripper”, Proceedings of the 2012 IEEE International Workshop on AdvancedRobotics and
its Social Impacts, Technische Universität München, Munich, Germany, May 21 - 23, 2012

25
Appendix

#include <Servo.h>

const int in1Pin = 5; // H-Bridge input pins

const int in2Pin = 4;

const int in3Pin = 3; // H-Bridge pins for second motor

const int in4Pin = 2;

Servo myservo;

Servo mservo;

Servo mservo3;

Servo myservo1;

void setup (){

pinMode(in1Pin, OUTPUT);

pinMode(in2Pin, OUTPUT);

pinMode(in3Pin, OUTPUT);

pinMode(in4Pin, OUTPUT);

myservo.attach(10);

mservo.attach(9);

myservo1.attach(8);

mservo3.attach(11);

void loop (){

digitalWrite(in1Pin,LOW); // first motor cw


26
digitalWrite(in2Pin,HIGH);

digitalWrite(in3Pin,LOW);//second motor

digitalWrite(in4Pin,HIGH);

delay(2000);

digitalWrite(in1Pin,LOW); //STOP MOTOR

digitalWrite(in2Pin,LOW);

digitalWrite(in3Pin,LOW);

digitalWrite(in4Pin,LOW);

myservo.attach(10);

myservo.write(40);

delay (100);

mservo.attach(9);

mservo.write (90);

delay (100);

mservo.write (85);

delay (100);

mservo.write (80);

delay (100);

mservo.write (75);

delay (100);

mservo.write (70);

delay (100);

27
mservo.write (65);

delay (10000);

mservo.write (70);

delay (100);

mservo.write (75);

delay (100);

mservo.write (80);

delay (100);

mservo.write (85);

delay (100);

mservo.write (90);

delay (100);

mservo.detach ();

myservo.write (35);

delay (100);

myservo.write (30);

delay (100);

myservo.write (25);

delay (100);

myservo.write (20);

delay (100);

myservo.write (15);

delay (100);

28
myservo.write (10);

delay (100);

myservo.write (5);

delay (100);

delay (100);

myservo1.write (35);

delay (100);

myservo1.write (30);

delay (100);

myservo1.write (25);

delay (100);

myservo1.write (20);

delay (100);

myservo1.write (15);

delay (100);

myservo1.write (10);

delay (100);

myservo1.write (5);

delay (100);

delay (1000);

myservo1.detach ();

mservo3.attach(11);

mservo3.write (90);

29
delay (100);

mservo3.write (85);

delay (100);

mservo3.write (80);

delay (100);

mservo3.write (75);

delay (100);

mservo3.write (70);

delay (100);

mservo3.write (65);

delay (100);

mservo3.write (60);

delay (100);

mservo3.write (55);

delay (100);

mservo3.write (50);

delay (100);

mservo3.write (45);

delay (100);

mservo3.write (40);

delay (100);

mservo3.write (35);

delay (100);

30
mservo3.write (30);

delay (100);

mservo3.write (25);

delay (100);

mservo3.write (20);

delay (100);

mservo3.write (15);

delay (100);

mservo3.write (10);

delay (100);

mservo3.write (5);

delay (100);

mservo3.write (0);

delay (5000);

mservo3.detach ();

myservo.attach(10);

myservo.write (5);

delay (100);

myservo.write (10);

delay (100);

myservo.write (15);

delay (100);

myservo.write (20);

31
delay (100);

myservo.write (25);

delay (100);

myservo.write (30);

delay (100);

myservo.write (35);

delay (100);

myservo.write (40);

delay (100);

delay (1000);

myservo.write (35);

delay (100);

myservo.write (30);

delay (100);

myservo.write (25);

delay (100);

myservo.write (20);

delay (100);

myservo.write (15);

delay (100);

myservo.write (10);

delay (100);

myservo.write (5);

32
delay (1000);

myservo.detach ();

mservo3.attach(11);

mservo3.write (5);

delay (100);

mservo3.write (10);

delay (100);

mservo3.write (15);

delay (100);

mservo3.write (20);

delay (100);

mservo3.write (25);

delay (100);

mservo3.write (30);

delay (100);

mservo3.write (35);

delay (100);

mservo3.write (45);

delay (100);

mservo3.write (50);

delay (100);

mservo3.write (55);

delay (100);

33
mservo3.write (60);

delay (100);

mservo3.write (65);

delay (100);

mservo3.write (70);

delay (100);

mservo3.write (75);

delay (100);

mservo3.write (80);

delay (100);

mservo3.write (85);

delay (100);

mservo3.write (90);

delay (100);

delay (1000);

myservo.detach ();

delay (1000);

mservo3.detach ();

delay (1000);

delay(2000);

digitalWrite(in1Pin,HIGH); //CCW

digitalWrite(in2Pin,LOW);

34
digitalWrite(in3Pin,HIGH);

digitalWrite(in4Pin,LOW);

delay(2000);

digitalWrite(in1Pin,LOW); //STOP MOTOR

digitalWrite(in2Pin,LOW);

digitalWrite(in3Pin,LOW);

digitalWrite(in4Pin,LOW);

myservo.attach(10);

myservo.write(40);

delay (100);

mservo.attach(9);

mservo.write (90);

delay (100);

mservo.write (85);

delay (100);

mservo.write (80);

delay (100);

mservo.write (75);

delay (100);

mservo.write (70);

delay (100);

35
mservo.write (65);

delay (10000);

mservo.write (70);

delay (100);

mservo.write (75);

delay (100);

mservo.write (80);

delay (100);

mservo.write (85);

delay (100);

mservo.write (90);

delay (100);

mservo.detach ();

myservo.write (35);

delay (100);

myservo.write (30);

delay (100);

myservo.write (25);

delay (100);

myservo.write (20);

delay (100);

myservo.write (15);

delay (100);

36
myservo.write (10);

delay (100);

myservo1.write (35);

delay (100);

myservo1.write (30);

delay (100);

myservo1.write (25);

delay (100);

myservo1.write (20);

delay (100);

myservo1.write (15);

delay (100);

myservo1.write (10);

delay (100);

myservo1.write (5);

delay (100);

delay (1000);

myservo1.detach ();

mservo3.attach(11);

mservo3.write (90);

delay (100);

mservo3.write (85);

delay (100);

37
mservo3.write (80);

delay (100);

mservo3.write (75);

delay (100);

mservo3.write (70);

delay (100);

mservo3.write (65);

delay (100);

mservo3.write (60);

delay (100);

mservo3.write (55);

delay (100);

mservo3.write (50);

delay (100);

mservo3.write (45);

delay (100);

mservo3.write (40);

delay (100);

mservo3.write (35);

delay (100);

mservo3.write (30);

delay (100);

mservo3.write (25);

38
delay (100);

mservo3.write (20);

delay (100);

mservo3.write (15);

delay (100);

mservo3.write (10);

delay (100);

mservo3.write (5);

delay (100);

mservo3.write (0);

delay (5000);

mservo3.detach ();

myservo.attach(10);

myservo.write (5);

delay (100);

myservo.write (10);

delay (100);

myservo.write (15);

delay (100);

myservo.write (20);

delay (100);

myservo.write (25);

delay (100);

39
myservo.write (30);

delay (100);

myservo.write (35);

delay (100);

myservo.write (40);

delay (100);

delay (1000);

myservo.write (35);

delay (100);

myservo.write (30);

delay (100);

myservo.write (25);

delay (100);

myservo.write (20);

delay (100);

myservo.write (15);

delay (100);

myservo.write (10);

delay (100);

myservo.write (5);

delay (1000);

myservo.detach ();

mservo3.attach(11);

40
mservo3.write (5);

delay (100);

mservo3.write (10);

delay (100);

mservo3.write (15);

delay (100);

mservo3.write (20);

delay (100);

mservo3.write (25);

delay (100);

mservo3.write (30);

delay (100);

mservo3.write (35);

delay (100);

mservo3.write (45);

delay (100);

mservo3.write (50);

delay (100);

mservo3.write (55);

delay (100);

mservo3.write (60);

delay (100);

mservo3.write (65);

41
delay (100);

mservo3.write (70);

delay (100);

mservo3.write (75);

delay (100);

mservo3.write (80);

delay (100);

mservo3.write (85);

delay (100);

mservo3.write (90);

delay (100);

delay (1000);

myservo.detach ();

delay (1000);

mservo3.detach ();

delay (1000);

delay(2000);

42

You might also like