abtheinvador18
Published © CC BY

Obstacle Avoider Robo

This robo can detect objects present in front of them from 15 cms in front of it and then changes its path.

BeginnerFull instructions provided258
Obstacle Avoider Robo

Things used in this project

Hardware components

Arduino UNO
Arduino UNO
×1
Dual H-Bridge motor drivers L293D
Texas Instruments Dual H-Bridge motor drivers L293D
×1
SG90 Micro-servo motor
SG90 Micro-servo motor
×1
DC Motor, Miniature
DC Motor, Miniature
×1
Ultrasonic Sensor - HC-SR04 (Generic)
Ultrasonic Sensor - HC-SR04 (Generic)
×1
Jumper wires (generic)
Jumper wires (generic)
×1

Hand tools and fabrication machines

Hot glue gun (generic)
Hot glue gun (generic)
Multitool, Screwdriver
Multitool, Screwdriver
Extraction Tool, 6 Piece Screw Extractor & Screwdriver Set
Extraction Tool, 6 Piece Screw Extractor & Screwdriver Set

Story

Read more

Schematics

Obstacle Avoiding Robo

Just connect it with a battery and it avoids all obstacles and moves freely

Code

Obstacle Avoiding Robo

Arduino
This code is for Obstacle Avoiding Robo... Just paste it to Arduino app and upload it to the Arduino Uno circuit and it runs just fine.
#include <Servo.h>
Servo myservo;
int triggerPin = 11;
int echoPin = 7;
int revleft4 = 2;
int fwdleft5 = 4;
int revright6 = 5;
int fwdright7 = 6;
float distance;
float duration;
float distancelt;
float distancert;
void setup() {
pinMode(revleft4, OUTPUT);
pinMode(fwdleft5, OUTPUT);
pinMode(revright6, OUTPUT);
pinMode(fwdright7, OUTPUT);
pinMode(triggerPin, OUTPUT);
pinMode(echoPin, INPUT);
Serial.begin(9600);
myservo.write(90);
myservo.attach(3);
}
void goesforward() {
  Serial.println("Going Forward");
  digitalWrite(fwdleft5, HIGH);
  digitalWrite(fwdright7, HIGH);
}
void goesbackward() {
  Serial.println("Going Backward");
  digitalWrite(revleft4, HIGH);
  digitalWrite(revright6, HIGH);
  delay(500);
  digitalWrite(revleft4, LOW);
  digitalWrite(revright6, LOW);
  Serial.println("Going Backward Stopped");
}
void turnright() {
  Serial.println("Turning Right");
  digitalWrite(fwdleft5, HIGH);
  digitalWrite(revright6, HIGH);
  delay(500);
  Serial.println("Turning Right Stopped");
  digitalWrite(fwdleft5, LOW);
  digitalWrite(revright6, LOW);
}
void turnleft() {
  Serial.println("Turning Left");
  digitalWrite(fwdright7, HIGH);
  digitalWrite(revright6, HIGH);
  delay(500);
  Serial.println("Turning Left Stopped");
  digitalWrite(fwdright7, LOW);
  digitalWrite(revright6, LOW);
}
void checkdistance() {
  digitalWrite(triggerPin, 0);
  delayMicroseconds(2);
  digitalWrite(triggerPin, 1);
  delayMicroseconds(10);
  duration = pulseIn(echoPin, 1);
}
void loop() {
  checkdistance();
  distance = duration / 58.2;
if (distance >=15.00) {
  goesforward();
}
else if (distance = 0) {
  Serial.println("Please input the Ultrasonic Sound Sensor");
}
else {
  myservo.write(180);
  delay(400);
  checkdistance();
  distancelt = duration / 58.2;
  delay(400);
  myservo.write(90);
  delay(400);
  myservo.write(0);
  checkdistance();
  distancert = duration / 58.2;
  delay(400);
  myservo.write(90);
  delay(250);
  if (distancert >= distancelt) {
    goesbackward();
    turnright();
  }
  else {
    goesbackward();
    turnleft();
  }
}
}

Credits

abtheinvador18
1 project • 0 followers
Contact

Comments

Please log in or sign up to comment.