Arduino line following robot is an easy Arduino based robot project. Line follower using Arduino is easy to code Arduino project. This is the project guide about Arduino line following robot. A line follower robot using Arduino Uno and IR sensor. The line follower robot program is an easy Arduino code. We will discuss step by step that how we can make smart and fast Arduino line following robot.
Arduino Line following Robot
Line Following Robot is the most common icon for building any robot. Line followers are the stepping stone towards robotics. The most basic, easy and very first part in robotics starts with line following. The most common Robot all the time.
Well Making line follower for the first time is not really easy as we thought. Some of the things could be turned to make simple stuff into the complex. I mean some times sensor calibration, comparison, and other related things could be more difficult. For this we have to be smarter and more tricky.
We have to choose those parts that can not create any sort of disturbance for us. I’m talking about those days when there were not much revolution in Robotics. We had to make robots using circuits with LDR’S IR’S and other messy and complex things.
Now we have been blessed with Arduino and bunch of good not just good but great sensors.so be smart and don’t waste your time in making complex circuits with separate sensors. There are a bunch of sensor modules available in the market with built in comparators. So wisely choose what you are going to do and what you have to do.
We will see some of the very common and effective ways of making a line following robot. We will start from basics and in further tutorials we will follow some complex algorithms. We will see PID implemented robots and some advanced techniques in making smart robots.
00: Gather all the Stuff at one place
Required Components:
- Arduino board/Uno/Nano/mega
- 3x IR sensor modules
- 2x Dc/servo motors
- Chassis
- Wheels
- Battery
- Caster wheel
- Jumper wires
These are the basic components you have to buy before making any further decision for Arduino line following robot. Now I will explain how to choose the right component and which one will be more suitable.
01: Arduino board:
As Arduino is the main part so we have to be clear about which Arduino board we are going to use for Arduino line following robot. The Arduino Uno is the best choice. We don’t need a lot of pins or very few pins that’s why we are not going for the Nano and mega.
For Arduino guidance and Example, codes understanding go through these following posts.
Getting started with Arduino microcontroller
02: IR Sensor Modules:
IR sensor module is the best choice for making Arduino line following robot. Instead of using IR LEDs we have to buy IR modules.
The pin out Configuration for IR modules and Arduino is very simple. Below is the pinout for Line follower robot using Arduino Uno and IR sensor.
If you are using 3 sensors connect 3 in the same manner. The IR module has 1-pin for input and other 2 are VCC and ground.
So join all VCC and ground separately at one place and then connect to the Arduino. And the input pins are placed randomly on the digital pins of Arduino.
03: DC/Servo motors
The selection of motors depends upon your choice. If you are going to but the LFR Kit then you got the servo motors within the package. But my recommendation is to use DC geared motors. As I have used in this project we can handle more weight and current as compared to simple motors.so there are other several benefits of using these motors.
DC gear motors having high rpm and high torque they are PMDC typed. The advantages of these motors are a constant magnetic field which is uncontrolled by an external source.
04: Line follower KIT
There are lots of LFR kits are available in the market. Buying a kit is the easiest solution for any mechanical workload or any sort of disturbance.
05: Chassis:
Chassis could be of any thing. I’m not going in the depth there are so many things already discussed over the internet. The chassis could be of an acrylic sheet or use any home made things for robot base.
06: Wheels:
There are standard size wheels are available in the market. If you are using KIT then you don’t need to worry about these things.
07: Ball caster:
For making 2 wheel LFR you have to buy an extra wheel that is caster wheel the ball caster. For balancing the robot.
08: Battery:
The battery is the most important part of this project. We need a good and an efficient timing battery. The dry lithium-ion 12-volt rechargeable battery is the best choice. We can also go for other choices use simple rechargeable two 4-volts batteries in series.
09: Pin out Configuration and Assembling:
Assemble all the parts. Place everything on your kit and now wire up.
Connect 3 IR modules with your Arduino board. The Vin pin of IR module will be connected on any of analog or digital pin of Arduino remember these pin configurations you have to use in the code.so if you are connecting to analog pins then you have to write analog in the code.
10: Motor Driver:
The motor driver we are using here is an L298N module. This is my recommendation to use this module instead of going for any shield or downloading libraries and other stuff this one is the simplest and easy.
For the working principle pin out configuration and why we are using this module you have to read this following post.
Motor Driver Dual H-Bridge L298
11: Code Construction:
There are three main steps in the construction of coding for Arduino line following robot.
1-defining the pins according to the connecting / inputs and outputs
2-Logic for sensors / The switch case
3-functions for motor directions
The very first part Before coding is to calibrate the sensor. Set a threshold for a sensor.
For working principle of a line follower, you must have some knowledge about how we move motors according to the logic.
12: Logic and Sensors placement:
We have to place all the sensor with equal distance lets says 1.5 in each. You middle sensor must be at the center of the line;
This is the basic principle for line following robot. Now we will move towards Arduino code.
13: Arduino Code:
For three sensors the logic will be :
010 Robot is on the line drive forward
100 turn medium Left
001 turn medium Right
110 Sharp turn left
011 Sharp turn Right
000 stop
14: Complete Code:
#define LS 2 // left sensor #define MS 3 // middle sensor #define RS 4 // right sensor /*-------Outputs------*/ #define LM1 5 // left motor #define LM2 6 // left motor #define LM3 7 // left motor Enable pin for controlling speed #define RM1 8 // right motor #define RM2 9 // right motor #define RM3 10 // right motor Enable pin for controlling speed void setup() { pinMode(LS, INPUT); pinMode(MS, INPUT); pinMode(RS, INPUT); pinMode(LM1, OUTPUT); pinMode(LM2, OUTPUT); pinMode(LM3, OUTPUT); pinMode(RM1, OUTPUT); pinMode(RM2, OUTPUT); pinMode(RM3, OUTPUT); } void loop() { if(!(digitalRead(LS)) && digitalRead(MS) && !(digitalRead(RS))) // Move Forward (010) { digitalWrite(LM1, HIGH); digitalWrite(LM2, LOW); digitalWrite(LM3,250); digitalWrite(RM1, HIGH); digitalWrite(RM2, LOW); digitalWrite(RM3,250); } if(!(digitalRead(LS)) && !(digitalRead(MS)) && digitalRead(RS)) // Turn medium right (001) { digitalWrite(LM1, HIGH); digitalWrite(LM2, LOW); digitalWrite(LM3,230); digitalWrite(RM1, HIGH); digitalWrite(RM2, LOW); digitalWrite(RM3,80); } if(digitalRead(LS) && !(digitalRead(MS)) && !(digitalRead(RS))) // turn medium left (100) { digitalWrite(LM1, HIGH); digitalWrite(LM2, LOW); digitalWrite(LM3,80); digitalWrite(RM1, HIGH); digitalWrite(RM2, LOW); digitalWrite(RM3,230); } if(!(digitalRead(LS)) && !(digitalRead(MS)) && !(digitalRead(RS))) // stop (000) { digitalWrite(LM1, LOW); digitalWrite(LM2, LOW); digitalWrite(LM3,0); digitalWrite(RM1, LOW); digitalWrite(RM2, LOW); digitalWrite(RM3,0); } if(digitalRead(LS) && (digitalRead(MS) && !(digitalRead(RS)))) // Turn Sharp left 90 degree (110) { digitalWrite(LM1, LOW); digitalWrite(LM2, LOW); digitalWrite(LM3,0); digitalWrite(RM1, HIGH); digitalWrite(RM2, LOW); digitalWrite(RM3,250); } if(digitalRead(RS) && (digitalRead(MS) && !(digitalRead(LS))) ) // Turn Sharp Right 90 degree (011) { digitalWrite(LM1, HIGH); digitalWrite(LM2, LOW); digitalWrite(LM3,250); digitalWrite(RM1, LOW); digitalWrite(RM2, LOW); digitalWrite(RM3,0); } }
Upload the code and test it. Before testing check your connection and compare with your code.
I have skipped most of the mechanical parts in this guide about Arduino line following robot. You have to take them on your own. These were some common and unnecessary steps. I hope you got the concept. If you have any query comment below to notify. Read the coming post about:
Advance line following Robot
and PID implemented line following Robot. Follow to get the latest updates. Subscribe to our YouTube channel for video Tutorials.