Vous êtes sur la page 1sur 41

PICK AND PLACE ROBOT USING ARDUINO

CHAPTER 1 INTRODUCTION

1.1 INTRODUCTION

Since many years people try to replace human work with machines. Machines called robots
are faster and more effective than people. The term robotics is practically defined as the
study, design and use of robot systems for manufacturing. Robots are generally used to
perform unsafe, hazardous, highly repetitive, and unpleasant tasks. They have many different
functions such as material handling, assembly, arc welding, resistance welding and machine
tool load and unload functions, painting, spraying, etc. Many elements of robots are built with
inspiration from the nature. Construction of the manipulator as the arm of the robot is based
on human arm. The robot has the ability to manipulate objects such as pick and place
operations. It is also able to function by itself. The development of electronic industry robot
system technology has been expanded increasingly. As one such application, the service robot
with machine vision capability has been developed recently.

In this highly developing society time and man power are critical constrains for completion of
task in large scales. The automation is playing important role to save human efforts in most of
the regular and frequently carried works. One of the major and most commonly performed
works is picking and placing of jobs from source to destination.

Present day industry is increasingly turning towards computer-based automation mainly due
to the need for increased productivity and delivery of end products with uniform quality. The
inflexibility and generally high cost of hard-automation systems, which have been used for
automated manufacturing tasks in the past, have led to a broad based interest in the use of
mechanical arm capable of performing a variety of manufacturing functions in a flexible
environment and at lower costs.

DEPT. OF ELECTRICAL AND ELECTRONICS, K.L.E.I.T, HUBBALLI. Page 1


PICK AND PLACE ROBOT USING ARDUINO

The use of Industrial mechanical arm characterizes some of contemporary trends in


automation of the manufacturing process. However, present day industrial mechanical arm
also exhibit a monolithic mechanical structure and closed-system software architecture. They
are concentrated on simple repetitive tasks, which tend not to require high precision.

The pick and place mechanical arm is a human controlled based system that detects the
object, picks that object from source location and places at desired location. For detection of
object, human detect presence of object and move machine accordingly.

1.2 LITERATURE SURVEY

John Iovine [1],inthis book various aspects of designing a Robot is described. It deals with
different types of Arm design, controlling techniques, vehicle design etc. ER. Rajput[5], in
this book the operation and control of robots is discussed. ARDUINO COOKBOOK [6], in
this book details and methods of interfacing hardware components such as DC motor, Servo
motor and RF Transmitter and Receiver is been discussed. The other references listed in the
references section discusses similar concepts in its various fields such as color identification
and segregation robot, robot for surveillance, pick and place robot controlled using android
etc.

1.3 PROBLEM STATEMENT

The pick and place robot being implemented to ease the process of sorting, process of moving
heavy materials etc. Usually the transfer process of the heavy materials is being carried out,
using man power and if the transfer process is repeated for a period of time , it can cause
injuries to the operator. By using the particular robot the operator, will no longer have to bent
and lift up heavy loads thus preventing injuries and increasing the efficiency of the work.
Operator will make mistakes whether small or big in a while. In the industrial world, the
industry cannot afford to take any kind of mistakes. As every mistake is costly whether
interns of time, money and material.

DEPT. OF ELECTRICAL AND ELECTRONICS, K.L.E.I.T, HUBBALLI. Page 2


PICK AND PLACE ROBOT USING ARDUINO

1.4 OBJECTIVE

The main objectives of this project are

 To control the displacement of the robotic arm so that the arm can be used to
pick and place the elements from any source to destination.
 To control the displacement and movement of robotic arm using RF Transmitter and
Receiver.
 To implement a robotic arm with two degrees of freedom.

1.5 MEHODOLOGY

TRANSMITTER

RECIVER

REGULATE
D DC
POWER
SUPPLY

DC
DC MOTOR DRIVER CIRCUIT

DC MO DC
MOTOR-3 TO MOTOR-1
R
ROBO-ARDUINO
DRI
MICROCONTROLLER
VE
DC R DC
MOTOR -4 CIR MOTOR-2
CUI
T

SERVO MOTOR - SERVO MOTOR -


1 1

Fig 1.1 Block diagram of proposed concept

DEPT. OF ELECTRICAL AND ELECTRONICS, K.L.E.I.T, HUBBALLI. Page 3


PICK AND PLACE ROBOT USING ARDUINO

The block diagram of the proposed system is shown in Fig1.1. It consists of an


Atmega328Micro controller IC, four DC Motors with driver IC, two servo motors and power
supply.

The pick and place robotic arm consists of a robotic arm placed on a moving vehicle
(chassis). The vehicle is able to move along any type of surfaces irrespective of it is smooth
or rough. The pick and place robot uses four motors for the operation of the chassis, two
servo motors for the operation pick and place operation. The pick and place arm consists of
an arm assembly with a jaw, which is only able to move in up and down direction .There are
two motors are for the arm assembly, one for the up and down motion and other for jaw
opening and closing.

For the controlling of motor, motor driver IC and Atmega328 micro controller is used. The
input signal or controlling signal is given from an wireless play station, which is interfaced
with the microcontroller by a RF receiver module. When the signal is sent from the play
station it is decoded in the controller and proper controlling signal is sent to actuators (dc
motors or servo motor) in the system.

DEPT. OF ELECTRICAL AND ELECTRONICS, K.L.E.I.T, HUBBALLI. Page 4


PICK AND PLACE ROBOT USING ARDUINO

CHAPTER 2 ROBOTICS

2.1 INTRODUCTION

A robotic arm is a type of mechanical arm, usually programmable, with similar functions to a
human arm; the arm may be the sum total of the mechanism or may be part of a more
complex robot. The links of such a manipulator are connected by joints allowing either
rotational motion (such as in an articulated robot) or translational (linear) displacement. The
links of the manipulator can be considered to form a kinematic chain. The terminus of the
kinematic chain of the manipulator is called the end effectors and it is analogous to the
human hand.

2.2 DEGREES OF FREEDOM (DOF)

The degrees of freedom, or DOF, is a very important term to understand. Each degree of
freedom is a joint on the arm, a place where it can bend or rotate or translate. The number of
degrees of freedom can be typically identified by the number of actuators on the robot arm.

2.3 DENAVIT-HARTENBERG (DH) CONVENTION THE ROBOT ARM FREE BODY


DIAGRAM (FBD)

The Denavit-Hartenberg (DH) Convention is the accepted method of drawing robot arms in
FBD's. There are only two motions a joint could make: translate and rotate. There are only
three axes this could happen on: x, y, and z (out of plane). A few robot arms are shown below,
and their FBD next to it, to demonstrate the DOF relationships and symbols. Note that the
DOF on the gripper (otherwise known as the end effector) is not counted. The gripper is often
complex with multiple DOF, so for simplicity it is treated as separate in basic robot arm
design.

DEPT. OF ELECTRICAL AND ELECTRONICS, K.L.E.I.T, HUBBALLI. Page 5


PICK AND PLACE ROBOT USING ARDUINO

Fig 2.1 Robotic Arm with four and three degrees of freedom

Notice between each DOF there is a linkage of some particular length. Sometimes a joint can
have multiple DOF in the same location. An example would be the human shoulder. The
shoulder actually has three coincident DOF. If you were to mathematically represent this, you
would just say link length = 0.

DEPT. OF ELECTRICAL AND ELECTRONICS, K.L.E.I.T, HUBBALLI. Page 6


PICK AND PLACE ROBOT USING ARDUINO

Fig 2.2 Degrees of freedom on human hand

Also note that a DOF has its limitations, known as the configuration space. Not all joints can
swivel 360 degrees! A joint has some max angle restriction. For example, no human joint can
rotate more than about 200 degrees. Limitations could be from wire wrapping, actuator
capabilities, servo max angle, etc. It is a good idea to label each link length and joint max
angle on the FBD.

2.4 ROBOT WORKSPACE

The robot workspace (sometimes known as reachable space) is all places that the end effector
(gripper) can reach. The workspace is dependent on the DOF angle/translation limitations, the
arm link lengths, the angle at which something must be picked up at, etc. The workspace is
highly dependent on the robot configuration.

Since there are many possible configurations for the robot arm, we will only concentrate on
the 3 DOF configuration.

Fig 2.3 Robotic Arm with three degrees of freedom

DEPT. OF ELECTRICAL AND ELECTRONICS, K.L.E.I.T, HUBBALLI. Page 7


PICK AND PLACE ROBOT USING ARDUINO

Now let us assume that all joints rotate a maximum of 180 degrees, because most servo
motors cannot exceed that amount. To determine the workspace, trace all locations that the
end effectors can reach as in the image below.

Fig 2.4 Robotic Arm with three degrees of freedom

If you change the link lengths you can get very different sizes of workspaces, but this would
be the general shape. Any location outside of this space is a location the arm can’t reach. If
there are objects in the way of the arm, the workspace can get even more complicated.

DEPT. OF ELECTRICAL AND ELECTRONICS, K.L.E.I.T, HUBBALLI. Page 8


PICK AND PLACE ROBOT USING ARDUINO

CHAPTER 3 HARDWARE IMPLEMENTATION

3.1 COMPONENTS USED

Table 3.1 List of components used

SI.N NAME SPECIFICATION QUANTITY


O
1. ROBO-ARDUINO ARDUINO UNO R3 with motor 1
driver circuit shield

2. Standard Dual Ball Bearing S 3003 2


Servo

3. DC Gear Motor 48:1 90 Degree Shaft 4

4. Lithium-Ion Rechargeable 7.4V 1500mAh (2C) 1


Battery Pack

5. Wheels Omni wheels 4

6. Playstation 2 robot controller 2.4 G Hz 1

7. Robotic Gripper for arm General 1

8. High strength unbreakable - 1 SET


PVC alloy body
(Top, Bottom
and side
Body)

DEPT. OF ELECTRICAL AND ELECTRONICS, K.L.E.I.T, HUBBALLI. Page 9


PICK AND PLACE ROBOT USING ARDUINO

3.1 ARDUINO

Fig 3.1 Electronic circuit of Robo-Arduino

Arduino is a tool for making computers that can sense and control more of the physical world
than your desktop computer. It's an open-source physical computing platform based on a
simple microcontroller board, and a development environment for writing software for the
board. Arduino can be used to develop interactive objects, taking inputs from a variety of
switches or sensors, and controlling a variety of lights, motors, and other physical outputs.
Arduino projects can be stand-alone, or they can be communicate with software running on
your computer (e.g. Flash, Processing, Max MSP.) The boards can be assembled by hand or
purchased preassembled; the open-source IDE can be downloaded for free. The Arduino
programming language is an implementation of Wiring, a similar physical computing
platform, which is based on the Processing multimedia programming environment.

3.2 WHY ARDUINO ?

There are many other microcontrollers and microcontroller platforms available for physical
computing. Parallax Basic Stamp, Netmedia's BX-24, Phidgets, MIT's Handyboard, and
many others offer similar functionality. All of these tools take the messy details of
microcontroller programming and wrap it up in an easy-to-use package. Arduino also
simplifies the process of working with microcontrollers, but it offers some advantage for
teachers, students, and interested amateurs over other systems

Inexpensive -
Arduino boards are relatively inexpensive compared to other microcontroller platforms.
The least expensive version of the Arduino module can be assembled by hand, and even
the pre-assembled Arduino modules cost less than $50.

DEPT. OF ELECTRICAL AND ELECTRONICS, K.L.E.I.T, HUBBALLI. Page 10


PICK AND PLACE ROBOT USING ARDUINO

Cross-platform –
The Arduino software runs on Windows, Macintosh OSX, and Linux operating
systems. Most microcontroller systems are limited to Windows.

Simple, clear programming environment


The Arduino programming environment is easy-to-use for beginners, yet flexible
enough for advanced users to take advantage of as well. For teachers, it's conveniently
based on the Processing programming environment, so students learning to program in
that environment will be familiar with the look and feel of Arduino.

Open source
The Arduino is based on Atmel's ATMEGA8 andATMEGA168 microcontrollers. The
plans for the modules are published under a Creative Commons and shown in Table.
Table 3.2 Specifications of Arduino

PARAMETER SPECIFICATION

Operating Voltage 5V

Input Voltage (recommended) 7-12V

Input Voltage (limits) 6-20V

Digital I/O Pins 14 (of which 6 provide PWM (output)

Analog Input Pins 6

DC Current per I/O Pin 40 mA

DC Current for 3.3V Pin 50 mA

Flash Memory 32 KB (ATmega328)

SRAM 2KB

EEPROM 1 KB (ATmega328)

Clock Speed 16 MHz

Length 68.6 mm

Width 53.4 mm

DEPT. OF ELECTRICAL AND ELECTRONICS, K.L.E.I.T, HUBBALLI. Page 11


PICK AND PLACE ROBOT USING ARDUINO

Weight 25 g
The power pins are as follows:

VIN: The input voltage to the Arduino board when it's using an external power source (as
opposed to 5 volts from the USB connection or other regulated power source). You can
supply voltage through this pin, or, if supplying voltage via the power jack, access it through
this pin.
5V: This pin outputs a regulated 5V from the regulator on the board. The board can be
supplied with power either from the DC power jack (7 - 12V), the USB connector (5V), or
the VIN pin of the board (7-12V). Supplying voltage via the 5V or 3.3V pins bypasses the
regulator, and can damage your board. We don't advise it.

3V3: A 3.3 volt supply generated by the on-board regulator. Maximum current draw is 50ma.

GND: Ground pins.

IOREF: This pin on the Arduino board provides the voltage reference with which the
microcontroller operates. A properly configured shield can read the IOREF pin voltage and
select the appropriate power source or enable voltage translators on the outputs for working
with the 5V or 3.3V.
MEMORY: The ATmega328 has 32 KB (with 0.5 KB used for the boot loader). It also has 2
KB of SRAM and 1 KB of EEPROM (which can be read and written with the EEPROM
library.
Input and Output: Each of the 14 digital pins on the Uno can be used as an input or output,
using pin mode(), digital write(), and digital read() functions. They operate at 5 volts. Each
pin can provide or receive a maximum of 40ma and has an internal pull-up resistor
(disconnected by default) of 20-50k Ohms. In addition, some pins have specialized functions:

Serial: 0 (RX) and 1 (TX): Used to receive (RX) and transmit (TX) TTL serial data. These
pins are connected to the corresponding pins of the ATmega8U2 USB-to-TTL Serial chip.

External Interrupts 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. See the attach interrupt () function for
details.

PWM: 3, 5, 6, 9, 10, and 11: Provide 8-bit PWM output with the analog write() function.

DEPT. OF ELECTRICAL AND ELECTRONICS, K.L.E.I.T, HUBBALLI. Page 12


PICK AND PLACE ROBOT USING ARDUINO

SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK): These pins support SPI communication
using the SPI library.

LED 13: There is a built-in LED connected to digital pin 13. When the pin is HIGH value the
LED is on, when the pin is LOW it’s off.

The Uno has 6 analog inputs, labelled A0 through A5, each of which provide 10 bits of
resolution (i.e. 1024 different values). By default they measure from ground to 5 volts,
though is it possible to change the upper end of their range using the AREF pin and
the analog Reference () function. Additionally, some pins have specialized functionality:

TWI A4 or SDA pin and A5 or SCL pin: Support TWI communication using the Wire
library. There are a couple of other pins on the board:

AREF: Reference voltage for the analog inputs. Used with analog reference.

Reset: Bring this line LOW to reset the microcontroller.

3.3 SERVOMOTORS

Fig 3.2 Servomotors

DEPT. OF ELECTRICAL AND ELECTRONICS, K.L.E.I.T, HUBBALLI. Page 13


PICK AND PLACE ROBOT USING ARDUINO

FEATURES
Table 3.3 Specifications of Servo Motor

SI.NO PARAMETER SPECIFICATION


1. Operating Voltage 4.8- 6.0VDC

2. Operating Speed 0.20sec/60degree (4.8V), 0.16sec/60degree (6.0V)

3. Stall Torque 5.3kg*cm (4.8V), 7kg*cm (6.0V)

4. Temperature Range 20°C ~60°C

5. Dead Band Width 4ms

6. Dimension 41x20x38mm

7. Weight 41g

8. Cable in Length 30cm

High Torque Standard Servo Motor with Dual Ball Bearing. Provides 7kg/cm at 6V. Exact
replacement for Futaba S3003 and Hitec HS-311.

Servomotors are DC motors with built in gearing and feedback control loop circuitry. And no
motor drivers required. A servomotor is a rotary actuator that allows for precise control of
angular position. They consist of a motor coupled to a sensor for position feedback, through a
reduction gearbox. They also require a relatively sophisticated controller, often a dedicated
module designed specifically for use with servomotors. Servomotors are used in applications
such as robotics, CNC machinery or automated manufacturing. . The servo motor has some
control circuits and a potentiometer (a variable resistor) that is connected to the output shaft.
This pot allows the control circuitry to monitor the current angle of the servo motor. Servos
are DC motors with built in gearing and feedback control loop circuitry. And no motor drivers
required. A servomotor is a rotary actuator that allows for precise control of angular position.
They consist of a motor coupled to a sensor for position feedback, through a reduction
gearbox. They also require a relatively sophisticated controller, often a dedicated module
designed specifically for use with servomotors.

DEPT. OF ELECTRICAL AND ELECTRONICS, K.L.E.I.T, HUBBALLI. Page 14


PICK AND PLACE ROBOT USING ARDUINO

Servomotors are used in applications such as robotics, CNC machinery or automated


manufacturing. . The servo motor has some control circuits and a potentiometer (a variable
resistor) that is connected to the output shaft. This pot allows the control circuitry to monitor
the current angle of the servo motor. If the shaft is at the correct angle, then the motor shuts
off. If the circuit finds that the angle is not correct, it will turn the motor the correct direction
until the angle is correct. The output shaft of the servo is capableof traveling somewhere
around 180 degrees. Usually, its somewhere in the 210 degree range, but it varies by
manufacturer. A normal servo is used to control an angular motion of between 0 and 180
degrees. A normal servo is mechanically not capable of turning any farther due to a
mechanical stop built on to the main output gear. The amount of power applied to the motor
is proportional to the distance it needs to travel. So, if the shaft needs to turn a large distance,
the motor will run at full speed. If it needs to turn only a small amount, the motor will run at a
slower speed.

This is called proportional control. As the name suggests, a servomotor is a servomechanism.


More specifically, it is a closed-loop servomechanism that uses position feedback to control
its motion and final position. The input to its control is some signal, either analogue or
digital, representing the position commanded for the output shaft. The motor is paired with
some type of encoder to provide position and speed feedback. In the simplest case, only the
position is measured. The measured position of the output is compared to the command
position, the external input to the controller.

If the output position differs from that required, an error signal is generated which then
causes the motor to rotate in either direction, as needed to bring the output shaft to the
appropriate position. As the positions approach, the error signal reduces to zero and the motor
stops. The very simplest servomotors use position-only sensing via a potentiometer and bang-
bang control of their motor; the motor always rotates at full speed (or is stopped). This type
of servomotor is not widely used in industrial motion control, but they form the basis of the
simple and cheap servos used forradio controlled models. More sophisticated servomotors
measure both the position and also the speed of the output shaft.

DEPT. OF ELECTRICAL AND ELECTRONICS, K.L.E.I.T, HUBBALLI. Page 15


PICK AND PLACE ROBOT USING ARDUINO

They may also control the speed of their motor, rather than always running at full speed. Both
of these enhancements, usually in combination with a PID control algorithm, allow the
servomotor to be brought to its commanded position more quickly and more precisely, with
less overshooting.

The servo turn rate, or transit time, is used for determining servo rotational velocity. This is
the amount of time it takes for the servo to move a set amount, usually 60 degrees. For
example, suppose you have a servo with a transit time of 0.17sec/60 degrees at no load.

Fig 3.3 Different positions of servo motors

This means it would take nearly half a second to rotate an entire 180 degrees. More if the
servo were under a load. It is also useful for determining the maximum forward velocity of
your robot if your servo is modified for full rotation. Remember, the worst case turning time
is when the servo is at the minimum rotation angle and is then commanded to go to maximum
rotation angle, all while under load. This can take several seconds on a very high torque
servo.

DEPT. OF ELECTRICAL AND ELECTRONICS, K.L.E.I.T, HUBBALLI. Page 16


PICK AND PLACE ROBOT USING ARDUINO

3.4 MECHANICAL GRIPPERS


One of the most common effectors is the gripper. In its simplest manifestation it consists of
just two fingers which can open and close to pick up and let go of a range of small objects.
Fingers can for example be made of a chain with a metal wire run trough it.

Fig 3.4 Gripper

3.5 DC MOTORS
An electric motor converts electrical energy into mechanical energy. The Fig 2.3 shows DC
motor most electric motors operate through interacting magnetic fields and current-carrying
conductors to generate force, although electrostatic motors use electrostatic forces.

Electric motors are found in applications as diverse as industrial fans, blowers and pumps,
machine tools, household appliances, power tools, and disk drives. They may be powered by
direct (e.g., a battery powered portable device or motor vehicle), or by alternating current
from a central electrical distribution grid.

Brushless DC motors use a rotating permanent magnet in the rotor, and stationary electrical
magnets on the motor housing. A motor controller converts DC to AC. This design is simpler
than that of brushed motors because it eliminates the complication of transferring power
from outside the motor to the spinning rotor.

DEPT. OF ELECTRICAL AND ELECTRONICS, K.L.E.I.T, HUBBALLI. Page 17


PICK AND PLACE ROBOT USING ARDUINO

Advantages of brushless motors include long life span, little or no maintenance, and high
efficiency. Disadvantages include high initial cost, and more complicated motor speed
controllers

3.6 L293D MOTOR DRIVER


The Fig 2.4 shows circuitry board of L293D motor driver which is used to control the wheel
of the robot.

Fig 3.5 Motor Driver IC

PIN DIAGRAM OF MOTOR DRIVER


The Fig 2.5 shows pin diagram of motor driver circuit.

Fig. 3.6 Pin Diagram L293D of motor driver.

H-BRIDGE.
An H-bridge is an electronic circuit which enables DC electric motors to be run forwards or
backwards .The Fig 2.6 H-bridge of L293D motor driver circuits are often used in robotics.
H-bridges are available as integrated circuits, or can be built from discrete components.

DEPT. OF ELECTRICAL AND ELECTRONICS, K.L.E.I.T, HUBBALLI. Page 18


PICK AND PLACE ROBOT USING ARDUINO

Fig. 3.6 Internal circuit of L293D of motor driver

An H-bridge is built with four switches. When the switches S1 and S4 are closed a positive
voltage will be applied across the motor. By opening S1 and S4 switches and closing S2 and
S3 switches, this voltage is reversed, allowing reverse operation of the motor. The H-Bridge
arrangement is generally used to reverse the polarity of the motor, but can also be used to
'brake' the motor, where the motor comes to a sudden stop, as the motors terminals are
shorted, or to let the motor 'free run' to a stop, as the motor is effectively disconnected from
the circuit.

3.7 WIRELESS PLAY STATION 2 STYLE CONTROLLER

Fig. 3.7 Internal wireless play station 2 style controller

This is a 2.4 G Hz wireless Play Station 2 style controller works perfectly with our Rhino
robot control board. Up to four of them can be used at the same time. They have a range of
10 meters, more when used outdoors in open space. Two analog joysticks and 16 buttons
available for robot control. Dual vibration motors are also provided inbuilt for feedback.

DEPT. OF ELECTRICAL AND ELECTRONICS, K.L.E.I.T, HUBBALLI. Page 19


PICK AND PLACE ROBOT USING ARDUINO

This controller is ready to use with our Rhino Robot Controller Board. You can also use it for
your custom projects of remote control.
PINOUTS:

1. Black - GND
2. Red - VCC
3. Blue - Clock
4. Green- Attention
5. Grey - Command
6. White –Data

3.8 GENERAL PURPOSE ROBOTIC GRIPPER

Fig. 3.8 General Purpose Robotic Gripper

Ability to be used with 2 servo motors for gripper open/close and wrist rotate. Can grip and
lift upto 200 gm of load in form of small objects. Maximum opening 3.5cm.

This board incorporates both Arduino Uno R3 and 20A motor driver into a single all in one
control board. It is versatile and expandable platform for robotics. Due to its expansion
capabilities the board can be used to control all robots starting from beginners robot to
advanced robots with multiple functionality such as Psx or IR controlled robot.
It can control up to 20Amp of current on each channel. It can drive 2 robot driving motors
(Connect two motors in parallel for 4 wheeled robot) in skid steer control with analog speed
control.

DEPT. OF ELECTRICAL AND ELECTRONICS, K.L.E.I.T, HUBBALLI. Page 20


PICK AND PLACE ROBOT USING ARDUINO

3.9 LITHIUM-ION RECHARGEABLE BATTERY PACK 7.4V 2200MAH (2C)

Fig. 3.9 Lithium ion rechargeable battery

SPECIFICATIONS:
Table 3.3 Specifications of Lithium Battery
SI.NO PARAMETER SPECIFICATIONS
1. Battery Type 18X650 battery pack
2. Nominal voltage 7.4V
3. Nominal Capacity 2200mah
4. Maximum size 19*38*70mm(with PCM)
5. Weight 86grams
6. Maximum charging current 2200mA
7. Discharging current 2200mA
8. Max. discharging current 4400mA
9. Charging Temperature 0°C to 45°C
10. Discharging Temperature 20°C to 60°C

DEPT. OF ELECTRICAL AND ELECTRONICS, K.L.E.I.T, HUBBALLI. Page 21


PICK AND PLACE ROBOT USING ARDUINO

CHAPTER 4 SOFTWARE IMPLEMENTATION

4.1 FLOWCHART

START

MONITOR RECIVER FLAG FOR NEW


SIGNAL

IF RECIVER FLAG
=1
FALSE

TRUE

READ THE RECIVED SIGNAL


DATA = Psx.read ()

IF
DATA= Psx.Up TRUE
MOVE THE CHASIS
FORWARD
[M-1,M-2, M-3,M-4] -

FALSE

DEPT. OF ELECTRICAL AND ELECTRONICS, K.L.E.I.T, HUBBALLI. Page 22


PICK AND PLACE ROBOT USING ARDUINO

IF
TRUE
DATA= Psx.Down MOVE THE CHASIS REVERSE
[M-1,M-2, M-3,M-4] - REVERSE

FALSE
IF
TRUE
DATA= Psx.Left
MOVE THE CHASIS LEFT
[M-1,M-2] - REVERSE
[M-3,M-4] - FORWARD

FALSE

IF
DATA= Psx.Right TRUE
MOVE THE CHASIS RIGHT
[M-1,M-2] - FORWARD
[M-3,M-4] - REVERSE

FALSE

DEPT. OF ELECTRICAL AND ELECTRONICS, K.L.E.I.T, HUBBALLI. Page 23


PICK AND PLACE ROBOT USING ARDUINO

IF TRUE
DATA= Psx.R1
MOVE THE SERVO - 1 UPWARD

TO LIFT THE ARM UPWARD

FALSE

IF
TRUE
DATA= Psx.L1 MOVE THE SERVO - 1 DOWNWARD

TO THROW THE ARM DOWNWARD

FALSE

IF
TRUE
DATA= Psx.R2 MOVE THE SERVO - 2 CLOCKWISE

TO OPEN THE GRIPPER

FALSE

DEPT. OF ELECTRICAL AND ELECTRONICS, K.L.E.I.T, HUBBALLI. Page 24


PICK AND PLACE ROBOT USING ARDUINO

FALSE
IF
TRUE
DATA= Psx.L2 MOVE THE SERVO - 2 ANTI CLOCKWISE

TO CLOSE THE GRIPPER

FALSE

END

Fig. 4.1 Flowchart of implemented source code

The above Fig 4.1 depicts the methodology in which the system is programmed. In the
Arduino platform the signal sent from play station can be read on Arduino using built in
function Psx.read() by including Psx.h header file during including the supporting files for
execution. The receiver flag of the Arduino controller is monitored to detect any instruction
is applied to the controller.

Once the receiver flag becomes high it indicates a control signal is sent to the robot. The next
task is to decode the instruction been requested to perform. The signal been applied is read
and stored in the variable called “DATA” further the algorithm searches for the opcode that
executes when it is matched with the code stored in “DATA”.

Example: As we know that when UP button of the play station is pressed the code been read
on Arduino by function is DATA = Psx.read(); , due to which the value or data stored in
variable DATA is Psx.Up now the programme is constructed such that what the controller
should perform when data is read as Psx.Up.
DEPT. OF ELECTRICAL AND ELECTRONICS, K.L.E.I.T, HUBBALLI. Page 25
PICK AND PLACE ROBOT USING ARDUINO

In this case all the four motors are instructed to move in the forward direction by the
controller. Hence chassis moves in forward direction.

Similarly if data been read and stored in the variable is Psx.Down then all the dc motors re
instructed to move in the reverse direction. Hence the chassis moves in reverse direction.

Such eight conditions are programmed and depicted in the flowchart.

DEPT. OF ELECTRICAL AND ELECTRONICS, K.L.E.I.T, HUBBALLI. Page 26


PICK AND PLACE ROBOT USING ARDUINO

CONCLUSION

The proposed concept of pick and place robot using Arduino is implemented via RF play
station. It is found that, the robot so implemented has the ability to locate itself to the
location where the object to be lifted is available with the help of chassis and four dc motors.
Further depending upon controlling action provided to servo motor it lifts the object and
locates the same at required destination.

The following figure depicts the image of the pick and place robot implemented using the
Arduino.

Fig. 5.1 Implemented project model

DEPT. OF ELECTRICAL AND ELECTRONICS, K.L.E.I.T, HUBBALLI. Page 27


PICK AND PLACE ROBOT USING ARDUINO

FUTURE SCOPE

The robot so programmed for pick and place operation can be made versatile and more
efficient by providing the feedback and making it to work on own than any human
interventions. It can be made possible by image processing tool interfaced with this Arduino.
The features that can be added on to improve its efficiency, make it operate on its own
thought without any human intervention are line follower, wall hugger, obstacle avoider,
metal detector, bomb diffuser etc.

DEPT. OF ELECTRICAL AND ELECTRONICS, K.L.E.I.T, HUBBALLI. Page 28


PICK AND PLACE ROBOT USING ARDUINO

APPENDIX

1) DATASHEETS
1.1) ROBO-ARDUINO

DEPT. OF ELECTRICAL AND ELECTRONICS, K.L.E.I.T, HUBBALLI. Page 29


PICK AND PLACE ROBOT USING ARDUINO

DEPT. OF ELECTRICAL AND ELECTRONICS, K.L.E.I.T, HUBBALLI. Page 30


PICK AND PLACE ROBOT USING ARDUINO

1.2) DC MOTORS

DEPT. OF ELECTRICAL AND ELECTRONICS, K.L.E.I.T, HUBBALLI. Page 31


PICK AND PLACE ROBOT USING ARDUINO

DEPT. OF ELECTRICAL AND ELECTRONICS, K.L.E.I.T, HUBBALLI. Page 32


PICK AND PLACE ROBOT USING ARDUINO

1.3) PS2 PLAYSTATION

DEPT. OF ELECTRICAL AND ELECTRONICS, K.L.E.I.T, HUBBALLI. Page 33


PICK AND PLACE ROBOT USING ARDUINO

1.4) DC MOTOR DRIVER CIRCUIT

DEPT. OF ELECTRICAL AND ELECTRONICS, K.L.E.I.T, HUBBALLI. Page 34


PICK AND PLACE ROBOT USING ARDUINO

DEPT. OF ELECTRICAL AND ELECTRONICS, K.L.E.I.T, HUBBALLI. Page 35


PICK AND PLACE ROBOT USING ARDUINO

1.5) SERVO MOTOR

DEPT. OF ELECTRICAL AND ELECTRONICS, K.L.E.I.T, HUBBALLI. Page 36


PICK AND PLACE ROBOT USING ARDUINO

2) PROJECT CODE

int motorPin11 = 13;


int motorPin12 = 12;
int motorPin1P = 11;
int motorPin2P = 10;
int motorPin21 = 9;
int motorPin22 = 8;
int motorPin31 = 7;
int motorPin32 = 6;
int motorPin3P = 5;
int motorPin41 = 4;
int motorPin4P = 3;
int motorPin42 = 2;
int motorPin51 = 14;
int motorPin52 = 15;
int motorPin61 = 16;
int motorPin62 = 17;
int state;
int flag=0; //makes sure that the serial only prints once the state

void setup() {
// sets the pins as outputs:
pinMode(motorPin11, OUTPUT);
pinMode(motorPin12, OUTPUT);
pinMode(motorPin1P, OUTPUT);
pinMode(motorPin21, OUTPUT);
pinMode(motorPin22, OUTPUT);
pinMode(motorPin2P, OUTPUT);
pinMode(motorPin31, OUTPUT);
pinMode(motorPin32, OUTPUT);
pinMode(motorPin3P, OUTPUT);
pinMode(motorPin41, OUTPUT);
pinMode(motorPin42, OUTPUT);
pinMode(motorPin4P, OUTPUT);
pinMode(motorPin51, OUTPUT);
pinMode(motorPin52, OUTPUT);
pinMode(motorPin61, OUTPUT);
pinMode(motorPin62, OUTPUT);

// initialize serial communication at 9600 bits per second:


Serial.begin(9600);
}

void loop() {
//if some date is sent, reads it and saves in state
if(Serial.available() > 0){
state = Serial.read();
flag=0;
}

DEPT. OF ELECTRICAL AND ELECTRONICS, K.L.E.I.T, HUBBALLI. Page 37


PICK AND PLACE ROBOT USING ARDUINO

// if the state is '0' the DC motor will turn off


if (state == '0') {
digitalWrite(motorPin11, LOW);
digitalWrite(motorPin12, LOW);
analogWrite(motorPin1P, 00);
digitalWrite(motorPin21, LOW);
digitalWrite(motorPin22, LOW);
analogWrite(motorPin2P, 00);
digitalWrite(motorPin31, LOW);
digitalWrite(motorPin32, LOW);
analogWrite(motorPin3P, 00);
digitalWrite(motorPin41, LOW);
digitalWrite(motorPin42, LOW);
analogWrite(motorPin4P, 00);
digitalWrite(motorPin51, LOW);
digitalWrite(motorPin52, LOW);
digitalWrite(motorPin61, LOW);
digitalWrite(motorPin62, LOW);
if(flag == 0){
Serial.println("Motor: off");
flag=1;
}
}
// if the state is '1' the motor will turn right
else if (state == '1') {
digitalWrite(motorPin11, HIGH);
digitalWrite(motorPin12, LOW);
analogWrite(motorPin1P, 128);
digitalWrite(motorPin21, HIGH);
digitalWrite(motorPin22, LOW);
analogWrite(motorPin2P, 128);
digitalWrite(motorPin31, HIGH);
digitalWrite(motorPin32, LOW);
analogWrite(motorPin3P, 128);
digitalWrite(motorPin41, HIGH);
digitalWrite(motorPin42, LOW);
analogWrite(motorPin4P, 128);

if(flag == 0){
Serial.println("Motor: straight");
flag=1;
}
}
// if the state is '2' the motor will turn backward
else if (state == '2') {
digitalWrite(motorPin11, LOW);
digitalWrite(motorPin12, HIGH);
analogWrite(motorPin1P, 128);
digitalWrite(motorPin21, LOW);
digitalWrite(motorPin22, HIGH);

DEPT. OF ELECTRICAL AND ELECTRONICS, K.L.E.I.T, HUBBALLI. Page 38


PICK AND PLACE ROBOT USING ARDUINO

analogWrite(motorPin2P, 128);
digitalWrite(motorPin31, LOW);
digitalWrite(motorPin32, HIGH);
analogWrite(motorPin3P, 128);
digitalWrite(motorPin41, LOW);
digitalWrite(motorPin42, HIGH);
analogWrite(motorPin4P, 128);
if(flag == 0){
Serial.println("Motor: backward");
flag=1;
}
}
// if the state is '3' the motor will turn left
else if (state == '3') {
digitalWrite(motorPin11, HIGH);
digitalWrite(motorPin12, LOW);
analogWrite(motorPin1P, 255);
digitalWrite(motorPin21, HIGH);
digitalWrite(motorPin22, LOW);
analogWrite(motorPin2P, 255);
digitalWrite(motorPin31, LOW);
digitalWrite(motorPin32, HIGH);
analogWrite(motorPin3P, 255);
digitalWrite(motorPin41, LOW);
digitalWrite(motorPin42, HIGH);
analogWrite(motorPin4P, 255);
if(flag == 0){
Serial.println("Motor: left");
flag=1;
}
}
// if the state is '4' the motor will turn right
else if (state =='4') {
digitalWrite(motorPin11, LOW);
digitalWrite(motorPin12, HIGH);
analogWrite(motorPin1P, 255);
digitalWrite(motorPin21, LOW);
digitalWrite(motorPin22, HIGH);
analogWrite(motorPin2P, 255);
digitalWrite(motorPin31, HIGH);
digitalWrite(motorPin32, LOW);
analogWrite(motorPin3P, 255);
digitalWrite(motorPin41, HIGH);
digitalWrite(motorPin42, LOW);
analogWrite(motorPin4P, 255);
if(flag ==0){
Serial.println("Motor: Right");
flag=1;
}
}

DEPT. OF ELECTRICAL AND ELECTRONICS, K.L.E.I.T, HUBBALLI. Page 39


PICK AND PLACE ROBOT USING ARDUINO

// if the state is '7' the arm will move up


else if (state =='7') {
digitalWrite(motorPin51,HIGH); //2
digitalWrite(motorPin52,LOW); //7
if(flag ==0){
Serial.println("Motor: Up");
flag=1;
}
}
//if the state is '9' the arm will move down
else if (state =='9') {
digitalWrite(motorPin51,LOW);
digitalWrite(motorPin52,HIGH);
if(flag ==0){
Serial.println("Motor: Down");
flag=1;
}
}
//if the state is '8' the gripper will stretch
else if (state =='8') {
digitalWrite(motorPin61,HIGH);
digitalWrite(motorPin62,LOW);
if(flag ==0) {
Serial.println("Motor: Stretch");
flag=1;
}
}
//if the state is 'A' the gripper will compress
else if (state =='A') {
digitalWrite(motorPin61,LOW);
digitalWrite(motorPin62,HIGH);
if(flag ==0) {
Serial.println("Motor: Compress");
flag=1;
}
}
}

DEPT. OF ELECTRICAL AND ELECTRONICS, K.L.E.I.T, HUBBALLI. Page 40


PICK AND PLACE ROBOT USING ARDUINO

3) PROJECT COST

SI.N NAME SPECIFICATION QUANTITY COST


O
1. ROBO-ARDUINO ARDUINO UNO R3 with 1 750/-
motor driver circuit shield
2. Standard Dual Ball S 3003 2 1000/-
Bearing Servo
3. DC Gear Motor 48:1 90 Degree Shaft 4 400/-

4. Lithium-Ion 7.4V 1500mAh (2C) 1 500/-


Rechargeable Battery
Pack
5. Wheels Omni wheels 4 200/-

6. Playstation 2 robot 2.4 G Hz 1 1,100/-


controller
7. Robotic Gripper for arm General 1 200/-

8. High strength - 1 SET


unbreakable PVC alloy
(Top, Bottom 600/-
body
and side
Body)

TOTAL COST: 4750/-

NOTE: The above said cost is excluding basic components required for project such as
wires, soldering gun, lead, soldering wax etc.

DEPT. OF ELECTRICAL AND ELECTRONICS, K.L.E.I.T, HUBBALLI. Page 41

Vous aimerez peut-être aussi