Line followers are one of the most prominent kinds of robots. They have existed for a long time, but the technologies used for building them have changed significantly. In earlier versions, controller boards the size of bricks were used, but they have since shrunk and become tremendously powerful. Now, technology allows you to build a line follower in just under 10 minutes if you have the parts for it. Have fun with this quick and easy DIY hacking tutorial!
How Does the Line Follower Robot Work?The workings of a line follower robot are pretty straightforward. These robots have the capability to detect a black or dark line on a lighter surface depending on the contrast. They estimate whether the line underneath them is shifting toward their left or right as they move over them. Based on that estimation, they give respective signals to the motors to turn left or right so as to maintain a steady center with respect to the line.
These robots usually use an array of IR (infrared) sensors in order to calculate the reflectance of the surface beneath them. The basic criteria is that the black line has a lesser reflectance value (black absorbs light) than the lighter surface around it. This low value of reflectance is the parameter used to detect the position of the line by the robot. The higher value of reflectance will be the surface around the line. So in this linear array of IR sensors, if the leftmost or rightmost IR sensor presents the low value for reflectance, then the black line is toward the left or right of the robot correspondingly. The controller then compensates for this by signaling the motor to go in the opposite direction of the line.
The IR sensor array consists of individual IR LEDs and IR photodiodes. The IR light emitted by the LED strikes the surface and is reflected back to the IR photodiode. The photodiode then gives an output voltage proportional to the reflectance of the surface (high value for a light surface and low for a black or dark surface).
Making the Sensor Array for the Line Follower (Optional)*Only if you don't want to buy the Pololu reflectance sensor.
To make an IR sensor array, take the six IR LEDs and connect them in parallel with each other. Now, take the IR photodiodes and place each of them just below the six IR LEDs. Wrap each pair together using black insulation tape and leaving their tips exposed. Take these six pairs of IR LEDs and photodiodes and join them in a straight line. Each pair should be 1.5cm apart from the next.
Connecting the Components Together for the Line FollowerSet up the hardware connections with the Arduino and the servo motors. The continuous rotation servo motors are those types of servo motors that cannot be controlled or set at a particular angle, unlike normal servos. Servos have three wires coming from them: Red=Power, Black=Ground, White/Yellow=PWM/PPM Signal. The left servo motor (white/yellow wire) is hooked up to Arduino digital pin 9 and the right servo motor (white/yellow wire) to Arduino digital pin 10. The black wires of both the motors are connected to Arduino GND and the red wires to the positive terminal of the battery holder.
Using Pololu QTR-8A Reflectance Array SensorIf you are using the Pololu sensor, and you don't need all eight IR detectors. You can remove two of them by cutting at the indicated perforation line on the board. The code we are using is only for six of them. Then solder some header pins to the board for VCC, GND, and signals 1,2,3,4,5,6. Connect the VCC and GND of this sensor to the Arduino's VCC and GND. The signals 1,2,..6 are connected to the Arduino's analog input pins A0, A1, A2, ...A5.
Using the Custom Fabricated Sensor ArrayIf you are using the custom fabricated sensor array, then short the anode terminals of all the IR LEDs together and connect to the Arduino VCC through a 220Ohm resistor. Next, short the cathode terminals together and connect to Arduino GND. Now, connect a 10K resistor to the cathode of each of the IR photodiodes. Short the free ends of all the 10K resistors together and connect it to Arduino Gnd. Now, short the anode terminals of the IR photodiodes together and connect it to Arduino VCC. Last, connect a wire to the cathode of each of the IR photodiodes (between the cathode and the 10K resistor). Connect each of the wires in sequence to Arduino's analog input pins A0, A1,..A5.
Uploading the Code for Your Line FollowerYou can find the code for the line follower here. After uploading the code, sweep/move the sensor array over the black line from left to right for roughly 3 seconds. This is done in order to calibrate and find the max and min values for reflectance. After that, place the robot on the line and watch the bot follow it. If you're using the Pololu QTR-8A reflectance array sensor, then no significant changes may be required. Try to check the values coming from the sensor through the serial monitor. Based on those values, adjust the values in the code correspondingly.
For those who made the custom board, find the rough values of reflectance over the black line and the outer surface. Substitute these values in the code and calibrate it. You can use normal black insulation tape as the line for your robot to follow. See the line follower in action below.