Professional Documents
Culture Documents
Mankind has always strived to give life like qualities to its artifacts in an attempt to find
substitutes for himself to carry out his orders and also to work in a hostile environment.
The popular concept of a robot is of a machine that looks and works like a human
being.The industry is moving from current state of automation to Robotization, to
increase productivity and to deliver uniform quality. The industrial robots of today may
not look the least bit like a human being although all the research is directed to provide
more and more anthropomorphic and humanlike features and super-human capabilities in
these.Here is one such robot which performs the operation as that of a fork lift but the
floor space required has been drastically reduced.
CONTENTS
Sr.No.
Heading
I.
Page No.
LIST OF FIGURES......................................................................................
ii
Chapter 1. INTRODUCTION......
1.2. OBJECTIVE.............................................................................................
......
3.1.3. SENSORS........................................................................................
4.2.1. DESCRIPTION..................................................................................
11 4.4.3.
WORKING OF L294D.........................................................................
12
12
4.4. DC MOTORS..................................................................................................
13
13
14
14
14
DESCRIPTION............................................................................... 15
4.6.
23
23
6.1.1.1. OVERVIEW.........................................................................
23
23
24
24
25
25
28
28
REFERENCES 51
LIST OF FIGURES
FIG. NO.
NO.
HEADING
PAGE
3.1.
BLOCK DIAGRAM.................................................................
4.1.
ACRYLIC SHEET....................................................................
4.2.
4.3.
10
4.4.
PINOUT OF L293D....................................................................
11
4.5.
12
4.6.
DC MOTOR..................................................................................
13
4.7.
14
4.8.
4.9.
4.10.
OBJECT SENSOR............................................................................ 18
4.11.
5.1.
6.1.
6.2.
6.3.
PROTEUS INTERFACE..................................................................... 26
LIST OF TABLES
TABLE NO.
HEADING
PAGE. NO
4.1.
15
4.2.
16
9.1.
COMPONENTS LIST.........................................................................
51
1. INTRODUCTION
1.1 PROJECT OVERVIEW
A warehouse management system (WMS) is a key part of the supply chain
and primarily aims to control the movement and storage of materials within a
warehouse and process the associated transactions, including shipping, receiving,
putaway and picking. The systems also direct and optimize stock putaway based
on real-time information about the status of bin utilization.
What we have tried to, is design a robot which comprises of three different
projects altogether clubbed into a single package which can serve a better
purpose. The different projects which are clubbed are Line Follower Bot, Pick and
Place Robot and Warehouse management.
LINE FOLLOWER : The Bot will track its destination with the help of line. It will
return to its original location after the operation is completed.
PICK AND PLACE : The Bot will perform the pick and place operation with the
help
WAREHOUSE MANAGEMENT : The Bot being intelligent will remember the
location where it has placed the package and will avoid that location in future
cases.
1.2. OBJECTIVE
The main purpose of every project is to deliver a product which is better than
or an
current
alternative to the current industry scenario. Our project is better than the
warehouse management tools according to the following points:
2. LITERATURE SURVEY
2.1.LIMITATION IN LITERATURE REVIEWED:
The
most
Poisoning
Nausea and vomiting
Headache
Skin rashes, such as dermatitis
Chemical burns
Birth defects
Disorders of the lung, kidney or liver
Nervous system disorders.
Today, no doubt, forklifts are used in the industry and that too widely. But the
problem is the forklifts used are along with tele-operators. Tele-operators are none
other than the people who control the forklifts and carry out the activities.
But the problem with tele-operators is that
sometimes the activity goes unnoticed and hazards may take place. This may
lead to unwanted consequences.
3.SYSTEM MODEL
3.1.1. MICROCONTROLLER : The controller is the heart as well as the brain of the
system. It senses the object if it is placed on the plate. As soon as the object is sensed, the
object (rack) is lifted from its ground position to some height. Then the controller sends
commands to direct the bot the desired location. On reaching the destination, it unloads the
rack and return to its home position.
3.1.2. RACK AND PINION ASSEMBLY : This assembly is also very important in
our project as it is used to lift the objects in a prismatic motion. The detailed specification of
the Rack and Pinion Assembly is explained in section 4.2.
5
3.1.3 SENSORS : Sensors play an important role in our project. There are 2 sensors which
are used. The 1st one is the path array sensor used to detect the line. This sensor gives analog
inputs to the microcontroller according to the light reflected. The 2nd one is the object sensor
which will sense diiferent objects at the start point and then place them at the desired location.
4.1. ROBOT CHASSIS: The robot chassis is the body of the robot. In our case the
robot chassis has to lift the weight of its own and also the object. We designed the
robot chassis in sketchup and with little tweaking we arrived at the final model.
FRAME
The frame of the robot is the basic structure to which we attach everything
else. It is probably the largest part of the robot, so we made sure it is made of
a light weight rigid material.
MOUNTING
Mounting is done such a way that the the appearance of the robot is not
suffered. Also while mounting it is kept in notice that it is easy to replace the
wore out parts.
4.1.1. ACRYLIC SHEET
The above shown acrylic sheet is used to prepare the chassis for the robot.The
thickness of the acrylic sheet is around 10mm. The reason we chose the acrylic
sheet is because it is sturdy and more firm. Also the transparent acrylic sheet
looks attractive than the wooden counterpart.
4.2 ARDUINO UNO R3 SMD
The other is a not connected and is reserved for future purposes. The Uno R3
works with all existing shields but can adapt to new shields which use these
additional pins.
Arduino is an open-source physical computing platform based on a simple i/o
board and a development environment that implements the
Processing/Wiringlanguage. Arduino can be used to develop stand-alone
interactive objects or can be connected to software on your computer (e.g. Flash,
Processing, MaxMSP). The open-source IDE can be downloaded for free (currently
for Mac OS X, Windows, and Linux).
The
8U2.
3.2.2. SPECIAL SMD VERSION
Because Atmel is moving more and more of their production capacity to
surface mount ICs, the DIP packaged ATmega is becoming more and more difficult
to get. To keep up with demand, we now offer the Arduino Uno R3 with an SMD
10
ATmega. The board is identical to the PTH version of the Uno, but you won't be
able to remove the ATmega without some hot-air. This change shouldn't affect
most users.
4.2.4. FEATURES
Atmega 328 Microcontroller.
6 Analog Inputs.
FIGURE
4.4.:
PINOUT OF L293d
4.3.1. DESCRIPTION
OF L293D MOTOR
DRIVER
L293D is a typical Motor driver or Motor Driver IC which allows DC motor to
drive on either direction. L293D is a 16-pin IC which can control a set of two DC
motors simultaneously in any direction. It means that you can control two DC
motor with a single L293D IC.The l293d can drive small and quiet big motors as
well
4.3.2. CONCEPT
It works on the concept of H-bridge. H-bridge is a circuit which allows the voltage
to be flown in either direction. As you know voltage need to change its direction
for being able to rotate the motor in clockwise or anticlockwise direction, Hence
H-bridge IC are ideal for driving a DC motor.In a single l293d chip there two hBridge circuit inside the IC which can rotate two dc motor independently. Due its
size it is very much used in robotic application for controlling DC motors. Given
below is the pin diagram of a L293D motor controller.
Enable pins on l293d. Pin 1 and pin 9, for being able to drive the motor, the pin 1
and 9 need to be high. For driving the motor with left H-bridge you need to enable
pin 1 to high. And for right H-Bridge you need to make the pin 9 to high. If anyone
of the either pin1 or pin9 goes low then the motor in the corresponding section
will suspend working. Its like a switch.
12
FIGURE 4.5.:
CIRCUIT
DIAGRAM FOR
L293d.
4.3.3. Working of
L293D
There 4 input pins for this l293d, pin 2,7 on the left and pin 15 ,10 on the right as
shown on the pin diagram. Left input pins will regulate the rotation of motor
connected across left side and right input for motor on the right hand side. The
motors are rotated on the basis of the inputs provided across the input pins as
LOGIC 0 or LOGIC 1.
13
14
The LINE SENSOR is reflectance sensor array is intended as a line sensor, but
it can be used as a general-purpose proximity or reflectance sensor. The module
is a convenient carrier for five IR emitter and receiver (phototransistor) pairs. With
sensors spaced at intervals of 0.375 (9.525 mm) along of the boards longer axis,
this array works well as a minimal detector for line-following robots, as linefollowing courses are commonly made using 3/4 (19 mm) black electrical tape.
The middle sensor is slightly offset along the short axis of the board.
Each phototransistor is connected to a pull-up resistor to form a voltage divider that
produces an analog voltage output between 0 V and VCC (which is typically 5 V)
as a function of the reflected IR. Lower output voltage is an indication of greater
reflection.
Cases encountered during line following i.e. while traversing from one node to
another
Senso
r
Sensor
2
Sensor
3
Sensor
Sensor
5
Keep going
forward
16
17
FIGURE 4.9.:
RACK AND
PINION
ASSEMBLY
4.6.1. GEOMETRIC
RELATION :
Its fairly simple to derive the geometric relation for the rack and pinion assembly.
Let assume:
Round Gear of radius R, and N as the number of teeth.
For rotation of "Alpha = a" deg we have a linear movement of 2*pi*R*a/360=L.
For example:
A pinion gear of R=100mm turns for 60 deg.
What is the linear movement of the rack.
Ans. 2*3.14*100*60/360=104.72mm
radiation from the emitter only when a reflective object passes within its field of
view.
contrast ratio and immunity to background irradiance. LED versions are designed
for near-field applications. The VCSEL version is designed for longer distances.
19
FIGURE
4.11.:
5.ADOPTED METHODOLOGY
The operation of the pick and place robot is quite simple. Initially the
robot checks for 2 conditions. The first one is whether the rack is present or
not. If the rack is present it will look for the direction to go in. Here the
direction is either left or either right.
met , the 3rd condition it checks for is the node. For example, if the bot wants
to place the object in the 2nd row on the right side. The bot will keep on
tracking the node. After the 1st node is detected it checks with the condition.
If the condition is met with it will take the right turn. If the condition is not
met the robot will keep moving in the forward direction.
Similarly, the arm operation takes place. The arm
initially is in the down position. Once the object is sensed it lifts the object to
a certain height and then performs the line following operation. Once the bot
reaches its destination, the arm is again brought down to its home position.
21
Serial.print(). The result is a single Intel hex file, which contains the specific
bytes that need to be written to the program memory of the chip on the
Arduino board. This file is then uploaded to the board: transmitted over the
USB or serial connection via the bootloader already on the chip or with
external programming hardware.
6.1.1.2. Multi-file sketches
A sketch can contain multiple files (tabs). To manage them, click on the
right-facing arrow just above the scroll bar near the top of the environment.
Tabs have one of four extensions: no extension, .c, .cpp, or .h (if you provide
any other extension, the period will be converted to an underscore). When
your sketch is compiled, all tabs with no extension are concatenated together
to form the "main sketch file". Tabs with .c or .cpp extensions are compiled
separately. To use tabs with a .h extension, you need to #include it (using
"double quotes" not <angle brackets>).
6.1.1.3. Transformations to the main sketch file:
The Arduino environment performs a few transformations to your main
sketch file (the concatenation of all the tabs in the sketch without extensions)
before passing it to the avr-gcc compiler.
First, #include "Arduino.h", or for versions less than
1.0, #include "WProgram.h" is added to the top of your sketch. This header
file (found in <ARDUINO>/hardware/cores/<CORE>/) includes all the
defintions needed for the standard Arduino core.
Next, the environment searches for function
definitions within your main sketch file and creates declarations (prototypes)
for them. These are inserted after any comments or pre-processor statements
(#includes or #defines), but before any other statements (including type
declarations). This means that if you want to use a custom type as a function
argument, you should declare it within a separate header file. Also, this
generation isn't perfect: it won't create prototypes for functions that have
default argument values, or which are declared within a namespace or class.
Finally, the contents of the current target's main.cxx file are
appended to the bottom of your sketch.
6.1.1.4. Targets
23
The Arduino environment supports multiple target boards with different chips
(currently, only AVRs), CPU speeds, or bootloaders. These are defined in a
board preferences file. Relevant variables include:
<BOARD>.name: the name to display in the Boards menu
<BOARD>.build.mcu: the microcontroller on the board (normally
"atmega8" or "atmega168").
<BOARD>.f_cpu: the clock speed at which the microcontroller
operates (normally "16000000L", or, for anATmega168 running on its internal
clock, "8000000L").
24
6.2.1.PROTEUS_8.1.
25
interact with the design using on screen indicators such as LED and LCD
displays and actuators such as switches and buttons. The simulation takes
place in real time (or near enough to it): a 1GMHz Pentium III can simulate a
basic 8051 system clocking at over 12MHz. Proteus VSM also provides
extensive debugging facilities including breakpoints, single stepping and
variable display for both assembly code and high level language source.
Proteus VSM includes a number of virtual
instruments including an Oscilloscope, Logic Analyser, Function Generator,
Pattern Generator, Counter Timer and Virtual Terminal as well as simple
voltmeters and ammeters. In addition, we provide dedicated
Master/Slave/Monitor mode protocol analysers for SPI and I2C- simply wire
them onto the serial lines and monitor or interact with the data live during
simulation. A truly invaluable (and inexpensive!) way to get your
communication software right prior to hardware prototyping.
26
7.SYSTEM CODE
int XA = 12;
int YA = 13;
int ENA = 11;
int SA = 255;
int Xl = 4;
int Yl = 5;
int Xr = 6;
int Yr = 7;
int ENl = 9;
int ENr = 10;
int slm = 140;
int srm = 140;
void setup()
{
27
Serial.begin(9600);
pinMode(XA, OUTPUT);
pinMode(YA, OUTPUT);
pinMode(ENA,OUTPUT);
pinMode(8,INPUT);
pinMode(Xl, OUTPUT);
pinMode(Yl, OUTPUT);
pinMode(Xr, OUTPUT);
pinMode(Yr, OUTPUT);
pinMode(ENl, OUTPUT);
pinMode(ENr,OUTPUT);
}
void halt()
{
digitalWrite(Xl,HIGH);
digitalWrite(Yl,HIGH);
analogWrite(ENl,slm);
digitalWrite(Xr,HIGH);
digitalWrite(Yr,HIGH);
analogWrite(ENr,srm);
}
28
void anticlockwise()
{
digitalWrite(Xl,HIGH);
digitalWrite(Yl,LOW);
analogWrite(ENl,slm);
digitalWrite(Xr,LOW);
digitalWrite(Yr,HIGH);
analogWrite(ENr,srm);
}
void clockwise()
{
digitalWrite(Xl,LOW);
digitalWrite(Yl,HIGH);
analogWrite(ENl,slm);
digitalWrite(Xr,HIGH);
digitalWrite(Yr,LOW);
analogWrite(ENr,srm);
}
void forward()
{
digitalWrite(Xl,LOW);
digitalWrite(Yl,HIGH);
29
analogWrite(ENl,slm);
digitalWrite(Xr,LOW);
digitalWrite(Yr,HIGH);
analogWrite(ENr,srm);
}
void backward()
{
digitalWrite(Yl,LOW);
digitalWrite(Xl,HIGH);
analogWrite(ENl,slm);
digitalWrite(Yr,LOW);
digitalWrite(Xr,HIGH);
analogWrite(ENr,srm);
}
void linefollow(int l,int r )
{
if( l<500 && r<500 ) //FORWARD
{
forward();
}
else if( l>500 && r<500 )
{
30
clockwise();
}
else if( l<500 && r>500 )
{
anticlockwise();
}
}
void turn360()
{
halt();
delay(400);
backward();
delay(180);
halt();
delay(400);
anticlockwise();
delay(2000);
halt();
delay(1000);
}
void turnl90()
{
31
halt();
delay(800);
forward();
delay(220);
halt();
delay(600);
clockwise();
delay(1050);
halt();
delay(1000);
}
void turnr90()
{
halt();
delay(800);
forward();
delay(220);
halt();
delay(600);
anticlockwise();
delay(1050);
halt();
32
delay(1000);
}
void haltA()
{
digitalWrite(XA,HIGH);
digitalWrite(YA,HIGH);
analogWrite(ENA,SA);
}
void up(
{
digitalWrite(XA,LOW);
digitalWrite(YA,HIGH);
analogWrite(ENA,SA);
}
void down()
{
digitalWrite(XA,HIGH);
digitalWrite(YA,LOW);
analogWrite(ENA,SA);
}
void loop()
33
{
int ML = digitalRead(8);
int r1 = analogRead(A0);
int m1 = analogRead(A1);
int l1 = analogRead(A2);
int n = 0;
int node = 2;
// node no of address
int d = 0;
// 0 right, 1 left
int r = 1;
int add = 0;
// address
if(r == 1)
{
up();
// lift at root
delay(1100);
haltA();
delay(1200);
follow:
//forward on stem
if (r == 1)
{
int r1 = analogRead(A0);
int m1 = analogRead(A1);
int l1 = analogRead(A2);
linefollow(l1,r1);
if( (l1 > 500) && (m1 > 500) && (r1 > 500))
{
n = n+1;
if(n == node)
{
halt();
delay(200);
if(d == 0)
turnr90();
35
if(d == 1)
turnl90();
goto skip;
}
forward();
delay(1000);
goto follow;
}
else
{
goto follow;
}
}
skip:
halt();
delay(200);
follow1:
If
(r
== 1)
//forward on branch
{
36
int r1 = analogRead(A0);
int m1 = analogRead(A1);
int l1 = analogRead(A2);
linefollow(l1,r1);
if( (l1 < 500) && (m1 < 500) && (r1 < 500))
{
halt();
delay(1000);
down();
delay(1200);
haltA();
delay(1200);
turn360();
goto skip1;
}
else
{
goto follow1;
}
skip1:
halt();
37
delay(20);
follow2:
if (r == 1)
{
int r1 = analogRead(A0);
int m1 = analogRead(A1);
int l1 = analogRead(A2);
linefollow(l1,r1);
if( (l1 > 500) && (m1 > 500) && (r1 > 500))
{
halt();
if(d == 0)
turnl90();
if(d == 1)
turnr90();
goto skip2;
}
else
{
goto follow2;
}
38
}
skip2:
halt();
delay(10);
follow3:
if (r == 1)
{
int r1 = analogRead(A0);
int m1 = analogRead(A1);
int l1 = analogRead(A2);
linefollow(l1,r1);
if( (l1 < 500) && (m1 < 500) && (r1 < 500))
{
n = n-1;
if (n == 0)
{
halt();
delay(1200);
turn360();
//stop on root
39
goto skip3;
}
forward();
delay(1000);
goto follow3;
}
else
{
goto follow3;
}
skip3:
halt();
haltA();
while(1);
}
}
}
40
The bot is a smart and an intelligent device. It keeps the record of locations filled
place.
Easy to install.
Cost effective and time efficient.
Provides better use of warehouse.
Consumes less energy and is efficient
Increases the overall efficiency of the system
Works at higher speed.
Has wider range of applications.
8.2. Conclusion
41
42
9. APPENDIX
9.1. DATASHEETS
9.1.1. ARDUINO UNO
Summary
Microcontroller
ATmega168
Operating Voltage
5V
Input Voltage
(recommended)
7-12V
6-20V
40 mA
50 mA
16 KB (ATmega168) or 32 KB (ATmega328) of which
2 KB used by bootloader
SRAM
1 KB (ATmega168) or 2 KB (ATmega328)
EEPROM
Clock Speed
16 MHz
43
Memory
The ATmega168 has 16 KB of flash memory for storing code (of which 2 KB is
used for the bootloader); theATmega328 has 32 KB, (also with 2 KB used for
the bootloader). The ATmega168 has 1 KB of SRAM and 512 bytes of EEPROM
(which can be read and written with the EEPROM library); the ATmega328 has
2 KB of SRAM and 1 KB of EEPROM.
Physical Characteristics
The maximum length and width of the Duemilanove PCB are 2.7 and 2.1
inches respectively, with the USB connector and power jack extending
beyond the former dimension. Three screw holes allow the board to be
attached to a surface or case. Note that the distance between digital pins 7
44
and 8 is 160 mil (0.16"), not an even multiple of the 100 mil spacing of the
other pins
9.1.2. L293d
45