Hackster is hosting Impact Spotlights: Industrial Automation. Watch the stream live on Thursday!Hackster is hosting Impact Spotlights: Industrial Automation. Stream on Thursday!
PROFESSORHULK
Published © GPL3+

Line Follower Tank

The Line follower Bot is a mobile machine that can detect and follow the line drawn on the floor.

IntermediateFull instructions provided2 hours464
Line Follower Tank

Things used in this project

Hardware components

Arduino UNO R3
×1
Black Gladiator - Tracked Robot Chassis
×1
IR Proximity Sensor
×2
L293D Motor Driver/Servo Shield for Arduino
×1
18650 Battery Li-ion 3.7V Battery
×2
Jumper Wire 30 wire Pack
×1

Software apps and online services

Arduino IDE
Arduino IDE

Story

Read more

Schematics

line_follower_robot_bb_lu4lAmB8Lv.jpg

Code

Line Follower

C/C++
//Modified by ProfessorHulk//
//ARDUINO LINE FOLLOWER //
// YOU HAVE TO INSTALL THE AFMOTOR LIBRARY BEFORE UPLOAD THE CODE//
// GO TO SKETCH >> INCLUDE LIBRARY >> ADD .ZIP LIBRARY >> SELECT AF MOTOR ZIP FILE //
 
//including the libraries
#include <AFMotor.h>

//defining pins and variables
#define left A0
#define right A1

//defining motors
AF_DCMotor M1(1); 

AF_DCMotor M4(4);




void setup() {
  //declaring pin types
  pinMode(left,INPUT);
  pinMode(right,INPUT);
  //begin serial communication
  Serial.begin(9600);
  
}

void loop(){
  //printing values of the sensors to the serial monitor
  Serial.println(digitalRead(left));
  
  Serial.println(digitalRead(right));

  //line detected by both
  if(digitalRead(left)==0 && digitalRead(right)==0){
    //Forward
    M1.run(FORWARD);
    M1.setSpeed(150);

    M4.run(FORWARD);
    M4.setSpeed(150);
   
  }
  //line detected by left sensor
  else if(digitalRead(left)==0 && !analogRead(right)==0){
    //turn left
    M1.run(FORWARD);
    M1.setSpeed(200);
   
    M4.run(BACKWARD);
    M4.setSpeed(200);
   
    
  }
  //line detected by right sensor
  else if(!digitalRead(left)==0 && digitalRead(right)==0){
    //turn right
    M1.run(BACKWARD);
    M1.setSpeed(200);
    
    M4.run(FORWARD);
    M4.setSpeed(200);
    
   
  }
  //line detected by none
  else if(!digitalRead(left)==0 && !digitalRead(right)==0){
    //stop
    M1.run(RELEASE);
    M1.setSpeed(0);
   
    M4.run(RELEASE);
    M4.setSpeed(0);
    
   
  }
  
}

Credits

PROFESSORHULK
10 projects • 9 followers
Contact

Comments

Please log in or sign up to comment.