Solar Using Line Follower-567
Solar Using Line Follower-567
Abstract: The Line follower robot is a mobile machine that can detect and follow the line drawn on the floor.
Generally, the path is predefined and can be either visible like a white line on a black surface. Therefore, this kind
of Robot should sense the line with its Infrared Ray (IR) sensors that installed under the robot. After that, the data
is transmitted to the processor by specific transition buses. Hence, the processor is going to decide the proper
commands and then it sends them to the driver and thus the path will be followed by the line follower robot.
Keywords: Line Follower; Circuit; Actuator; Programming.
I. INTRODUCTION
Generally, the line follower robot is one of the self operating mobile machines that follows a line drawn on the floor. The
path can be a visible white line on a black/dark surface (reverse). The basic operations of the line follower are as follows:
Capturing the line position with optical sensors mounted at the front end of the robot. Most are using several numbers of
photo-reflectors. Therefore, the line sensing process requires high resolution and high robustness. Steering the robot to
track the line with any steering mechanism. This is just a servo operation; actually, any phase compensation will be
required to stabilize tracking motion by applying digital PID filter or any other servo algorithm. Controlling the speed
according to the lane condition. The speed is limited during passing a curve due to the friction of the tire and the floor.
USES:
This kind of robot can be used for military purposes, delivery services, transportation systems, blind assistive
applications. Moreover, there are many annual line follower robots competitions organized by universities or industries
around the world. They usually ask robotic teams for building a small robot with specific dimensions and weight
according to the competition rules.
robots, the processing resources available are quite limited so simpler models and 11 techniques, such as visual servoing,
are used to reduce the processing load. The following sections contain a brief overview of the research done in path
following, including autonomous driving and the research in visual servoing that can be applied to path following for
autonomous robots.
BLOCK DIAGRAM:
SENSORS:
This kind of robot uses Infrared Ray sensors to find the path and direction; Infrared Ray sensors contain a match infrared
transmitter and infrared receiver pair. White surfaces generally reflect well, but while black surfaces reflect poorly. If the
receiver receives the reflection ray, it means that the robot is on white and if it cannot receive it, so the robot is on black.
These devices work by measuring the amount of light that is reflected into the receiver. Because the receiver also
responds to ambient light, the device works best when well shielded from ambient light, and when the distance between
the sensor and the reflective surface is small (less than10mm). IR reflectance sensors are often used to detect white and
black surfaces. White surfaces generally reflect well, but while black surfaces reflect poorly. Hence, the distance between
sensors and ground surface is important and it is more important that how we put sensors near each other. The distance
between sensors and ground surface must be 2 to 10 mm and the distance between each sensor is dependent on the line
width.
Page | 37
Novelty Journals
ISSN 2394-9678
International Journal of Novel Research in Electrical and Mechanical Engineering
Vol. 3, Issue 1, pp: (35-44), Month: January-April 2016, Available at: www.noveltyjournals.com
PROCESSOR:
For very small line follower that has 2 to 4 sensors, we can use electrical gate such as AND/OR to decide and send simple
instruction to the driver but it hasn’t any precision and its speed for processing is very low. Moreover, it can not follow
bad curves or cycloid lines. It is momentous to use a processor, undoubtedly. We have used the Atmel's microcontroller
"AT89s52" in our project. The AT89s52 is a low-power, high-performance CMOS 8-bit microcontroller with 4K bytes of
programmable Flash memory and erasable read only memory (PEROM). The device is manufactured using Atmel’s high-
density nonvolatile memory technology and is compatible with the industry- standard MCS-51 instruction set and pin out.
The on-chip Flash allows the program memory to be reprogrammed in-system or by a conventional nonvolatile memory
programmer. By combining a versatile 8-bit CPU with Flash on a monolithic chip, the Atmel AT89s52 is a powerful
microcontroller which provides a highly-flexible and cost-effective solution to many embedded control applications.
THE DRIVER:
Robot needs a driver IC for controlling and giving power to the motors. The microcontroller sends a signal to the driver
which acts as a switch. The microcontroller only sends a signal to the switch and then the switch must give required
voltage to the motors. If the received signal by the driver is high, it will rotate the motors. A good motor driver is IC L298
which can be used to control two motors. It is an integrated monolithic circuit in 15-lead Multi watt and Power SO20
packages. It is a high voltage, high-current dual full-bridge driver designed to accept standard TTL logic levels and drive
inductive loads such as relays, solenoids, DC, and stepping motors. Two enable inputs are provided to enable or disable
the device independently of the input signals. L298 has 2 amperes per channel current capacity and it can support up to 45
volts for outputting. Moreover, L298 works happily up to 16 volts without any heat sink.
The microcontroller sends instructions to the driver after processing the data coming from sensors part. The driver gives
voltage to the motors according to the inputs. Actually the diver gives positive voltage to one of the motor pins and gives
negative voltage to another one which there is five states:
Both of the motors are turn on and rotate forward imultaneously. (Move Forward)
The right motor is turn on and the left motor is turn off. (Move Left)
The left motor is turn on and the right motor is turn off. (Move Right)
The right motor rotates forward and the left motor rotates backward. (Move Left Fast)
The left motor is rotate forward and the right motor rotates backward. (Move Right Fast)
THE ACTUATORS (MOTORS AND WHEELS):
The movement system is an important part of a robot and its objective is how to move robot from one point to another
point. This system has some details which show us how to use motors and wheels. There are many kinds of motors and
wheels. Our choice is dependent on the robot function, power, speed, and precision. At the beginning of the project, at
first, we wanted to use two step motors for gaining the best speed and a remarkable control but it was too hard and
sometimes impossible to write a good program for two step motors because each step motor has at least four inputs, and
Page | 39
Novelty Journals
ISSN 2394-9678
International Journal of Novel Research in Electrical and Mechanical Engineering
Vol. 3, Issue 1, pp: (35-44), Month: January-April 2016, Available at: www.noveltyjournals.com
moreover we must use two motor drivers, L298, for getting the required voltage to the motors. Actually, it is better to use
gearbox motors instead of common DC motors because it has gears and an axle and its speed does not change towards the
top of a hill or downhill. Pay attention that the more speed is, the less precision will be; thus it is better to choose a motor
that has authentic RPM. Eventually, we used two DC gearbox motors.
In general, a programming technique is used in this project to control the speed of motors and it will be explained in the
programming part, section 3.Usually there are two movement systems for robots:
Wheel &Tank system It is better to use wheels for line follower robots. We can use three or four wheels. In our project we
use four wheels. Two of them are joined to the motors and installed rear the robot and the other two wheel are free and
installed in cross section of the robot.
Which can be seen in below:-
IV. PROGRAMMING
Every microcontroller has own special compiler which we can write program with the language C or Basic for them. After
compiling, we must send the compiled program to the microcontroller with programmer. A programmer is a device that
can be connected with a computer and we must put the microcontroller on the programmer and then the programmer
sends the program into the microcontroller's ROM. A program has been written for our robot with the language C in Code
vision and the summary of the program has been shown below. In this project, we use “AT89s52” that has four ports. Port
A and port B have been used for inputs and outputs, respectively. The data the perform from sensors after Analog to
Digital Converting will sends to the microcontroller in port A and after processing with microcontroller the instruction
will send to the driver from port B. Below we offer our program to you. For writing the program easily, we define new
name for port A's pins and port B's pins. The speed of the motors can be easily adjusted by using PWM pulses fed to the
motor through the Enable Pins of the driver. We know that each channel has its own independent Enable Pin; therefore
the speed of each motor can be controlled easily. For controlling the speed of a DC motor, we need to have a variable
Page | 40
Novelty Journals
ISSN 2394-9678
International Journal of Novel Research in Electrical and Mechanical Engineering
Vol. 3, Issue 1, pp: (35-44), Month: January-April 2016, Available at: www.noveltyjournals.com
voltage DC power source. If you take 12 volts motor and switch on the power to it, the motor will start to speed up. The
motors do not respond immediately so it will take a small time to reach full speed. If you switch the power off before the
motor reaches full speed, the motor will start to slow down. If you switch the power ON and OFF enough quickly, the
motor will run at some speed between zero and full speed. This is exactly what a PWM controller does; it switches the
motor on in a series of pulses.
#include <AT89X52.h>
/*
Sensors input port - P1
P1_0 --------> Left sensor
P1_4 --------> Right sensor
Motors output port - P0
P0_0 --------> Enable pin of the left half of the H-bridge
P0_1 --------> will drive the left motor in forward direction
P0_2 --------> will drive the left motor in reverse direction
P0_3 --------> will drive the right motor in forward direction
P0_4 --------> Enable pin of the right half of the H-bridge
P0_5 --------> will drive the right motor in reverse direction
*/
/*Delay function runs an idle loop to create a time delay. If the crystal used is of 11.0592 MHz then the argument passed
in delay is in 'milliseconds'.*/
void Delay(unsigned int time)
{
unsigned int i,j;
for(i=0;i<itime;i++)
for(j=0;j<1275;j++); //Idle loop
}
void Forward()
{
P0_1=1;
P0_2=0;
P0_3=1;
P0_5=0;
}
/*Generally for turning we use a pulsated wave so the bOt doesn’t get out of control i.e. we run the motor for sometime
then again stop it and this is done very quickly to create an effective pulse. See the function below.*/
void TurnLeft()
{
P0_1=0; /*Left motor is not running in any direction.*/
P0_2=0;
Page | 41
Novelty Journals
ISSN 2394-9678
International Journal of Novel Research in Electrical and Mechanical Engineering
Vol. 3, Issue 1, pp: (35-44), Month: January-April 2016, Available at: www.noveltyjournals.com
P0_3=1; /*Right motor is running in forward direction. bOt will eventually turn left*/
P0_5=0;
Delay(50); /* Wait for 50 ms*/
P0_1=0; /*Motors are not running*/
P0_2=0;
P0_3=0;
P0_5=0;
Delay(50); /*Delay of another 50 ms*/
}
/*So in the above program we have effectively created a pulse of 100ms which is on for 50ms and off for another 50ms.
You can change this value to suit your needs*/
/*Similarly we can write a function to turn right*/
void TurnRight()
{
P0_1=1; /*Left motor running in forward
direction.*/
P0_2=0;
P0_3=0; /*Right motor is not running.*/
P0_5=0;
Delay(50); /*50ms time delay*/
P0_1=0; /*Motors not running in any
direction*/
P0_2=0;
P0_3=0;
P0_5=0;
Delay(50); /*50ms time delay*/
}
void main()
{
/* The pins which are receiving inputs from the sensors should be initially set to logic 1.*/
P1_0=1; /*Left sensor input*/
P1_4=1; /*Right sensor input*/
P0_0=1; /*Enable pin of the left half of the H-bridge*/
P0_4=1; /*Enable pin of the right half of the H-bridge*/
//main loop of the program
while(1)
{
if((P1_0==0)&&(P1_4==1))
TurnRight();
Page | 42
Novelty Journals
ISSN 2394-9678
International Journal of Novel Research in Electrical and Mechanical Engineering
Vol. 3, Issue 1, pp: (35-44), Month: January-April 2016, Available at: www.noveltyjournals.com
else if((P1_0==1)&&(P1_4==0))
TurnLeft();
else
Forward();
}
}
WORKING MODEL:
ADVANTAGES:
a. Robot movement is automatic.
Page | 43
Novelty Journals
ISSN 2394-9678
International Journal of Novel Research in Electrical and Mechanical Engineering
Vol. 3, Issue 1, pp: (35-44), Month: January-April 2016, Available at: www.noveltyjournals.com
V. CONCLUSION
The most abundant and non hazardous source of energy on our planet is being used today in many fields & its not far
when it will become prime source of energy. Many applications are under development consuming this source and will be
technologically and practically implemented in day to day life in near future.
REFERENCES
[1] Mohd Firdaus bin Mohd Yasin , “Line Follower Robot With Solar Application,” November 2010.
[2] M. Agarwal, P. Agrawal, K. Nanda Gupta and H. Meghani, “Line Follower Robot,” Robotics Workshop (EEE Dept,
NIT Trichy), 15 March 2008.
[3] Andris Piebalgs, Janez Potocnik, “Photovoltaic Solar Energy: Development and current research”, European Union,
2009.
[4] S.P.Sukhatme, “Solar Energy Principals Of Thermal Collection and Storage”, Tata McGraw-Hill Publishing Co,
2002.
Page | 44
Novelty Journals