mohammadsohail0008
Published © GPL3+

DIY Edge Avoider Robot

Table Edge Avoidance Robot

IntermediateFull instructions provided338
DIY Edge Avoider Robot

Things used in this project

Hardware components

Arduino UNO
Arduino UNO
×1
L293D motor shield
×1
DC Motor, 12 V
DC Motor, 12 V
×4
Maker Essentials - Micro-motors & Grippy Wheels
Pimoroni Maker Essentials - Micro-motors & Grippy Wheels
×4
IR Transceiver (Generic)
×2
HC-05 Bluetooth Module
HC-05 Bluetooth Module
×1
Battery Holder, 18650 x 2
Battery Holder, 18650 x 2
×1
18650 battery
×2
Android device
Android device
×1

Software apps and online services

Arduino IDE
Arduino IDE

Hand tools and fabrication machines

Hot glue gun (generic)
Hot glue gun (generic)

Story

Read more

Schematics

Circuit Diagram

Code

Code

Arduino
// https://www.youtube.com/channel/UCaXI2PcsTlH5g0et67kdD6g  //
// Edge Avoider Robot //
// By MOHD SOHAIL //

#include <AFMotor.h>

#define IR1 A2
#define IR2 A1


AF_DCMotor motor1(1, MOTOR12_1KHZ); 
AF_DCMotor motor2(2, MOTOR12_1KHZ); 
AF_DCMotor motor3(3, MOTOR34_1KHZ);
AF_DCMotor motor4(4, MOTOR34_1KHZ);


char command; 

void setup() 
{       
  Serial.begin(9600);  //Set the baud rate to your Bluetooth module.
  pinMode(IR1, INPUT);
  pinMode(IR2, INPUT);
    
}

void loop(){
    
  if(Serial.available() > 0){ 
    command = Serial.read(); 
    Stop(); 
    
    Serial.println(command);
    
    
    switch(command){
    case 'F':  
      forward();
      break;
    case 'B':  
       back();
      break;
    case 'L':  
      left();
      break;
    case 'R':
      right();
      break;
      case 'S':  
      Stop();
      break;
    }
    
    
   
    int Right = digitalRead(IR1);
    int Left = digitalRead(IR2);
    
    if(Right == 1 || Left == 1 ) {
      motor1.setSpeed(255);
      motor1.run(BACKWARD);
      motor2.setSpeed(255);
      motor2.run(BACKWARD);
      motor3.setSpeed(255);
      motor3.run(BACKWARD);
      motor4.setSpeed(255);
      motor4.run(BACKWARD);
      
    }else if(Right == 0 || Left == 0) {
      command = Serial.read();
    }
 }
}

void forward()
{
  motor1.setSpeed(150); //Define maximum Speed
  motor1.run(FORWARD); //rotate the motor clockwise
  motor2.setSpeed(150); //Define maximum Speed
  motor2.run(FORWARD); //rotate the motor clockwise
  motor3.setSpeed(150);//Define maximum Speed
  motor3.run(FORWARD); //rotate the motor clockwise
  motor4.setSpeed(150);//Define maximum Speed
  motor4.run(FORWARD); //rotate the motor clockwise
}

void back()
{
  motor1.setSpeed(150); //Define maximum Speed
  motor1.run(BACKWARD); //rotate the motor anti-clockwise
  motor2.setSpeed(150); //Define maximum Speed
  motor2.run(BACKWARD); //rotate the motor anti-clockwise
  motor3.setSpeed(150); //Define maximum Speed
  motor3.run(BACKWARD); //rotate the motor anti-clockwise
  motor4.setSpeed(150); //Define maximum Speed
  motor4.run(BACKWARD); //rotate the motor anti-clockwise
}

void left()
{
  motor1.setSpeed(200); //Define maximum Speed
  motor1.run(BACKWARD); //rotate the motor anti-clockwise
  motor2.setSpeed(200); //Define maximum Speed
  motor2.run(BACKWARD); //rotate the motor anti-clockwise
  motor3.setSpeed(200); //Define maximum Speed
  motor3.run(FORWARD);  //rotate the motor clockwise
  motor4.setSpeed(200); //Define maximum Speed
  motor4.run(FORWARD);  //rotate the motor clockwise
}

void right()
{
  motor1.setSpeed(200); //Define maximum Speed
  motor1.run(FORWARD); //rotate the motor clockwise
  motor2.setSpeed(200); //Define maximum Speed
  motor2.run(FORWARD); //rotate the motor clockwise
  motor3.setSpeed(200); //Define maximum Speed
  motor3.run(BACKWARD); //rotate the motor anti-clockwise
  motor4.setSpeed(200); //Define maximum Speed
  motor4.run(BACKWARD); //rotate the motor anti-clockwise
} 

void Stop()
{
  motor1.setSpeed(0); //Define minimum Speed
  motor1.run(RELEASE); //stop the motor when release the button
  motor2.setSpeed(0); //Define minimum Speed
  motor2.run(RELEASE); //rotate the motor clockwise
  motor3.setSpeed(0); //Define minimum Speed
  motor3.run(RELEASE); //stop the motor when release the button
  motor4.setSpeed(0); //Define minimum Speed
  motor4.run(RELEASE); //stop the motor when release the button
}

Credits

mohammadsohail0008
42 projects • 32 followers

Comments