Introduction
An Obstacle Avoiding Robot is an autonomous robot that can detect obstacles in its path and navigate around them without human intervention. This project is a fundamental robotics application that uses sensors and motor control to prevent collisions.
It is widely used in robotics competitions, industrial automation, and intelligent vehicles.
Objective of the Project
- To design an autonomous robot capable of detecting and avoiding obstacles.
- To understand sensor integration and motor control with Arduino.
- To implement real-time obstacle detection and navigation logic.
- To provide a practical application of robotics in automation.
Working Principle
The Obstacle Avoiding Robot works on sensor-based navigation.
Step-by-Step Working
- Ultrasonic or IR sensors detect obstacles in the robot’s path.
- Arduino continuously reads sensor data to determine distance.
- When an obstacle is detected, Arduino changes the direction of the robot to avoid collision.
- Motors are controlled via a motor driver to move forward, backward, left, or right.
- The robot moves autonomously and continues obstacle detection.
Components Required
- Arduino Uno
- Ultrasonic Sensor (HC-SR04) or IR Sensors
- DC Motors with Wheels
- Motor Driver Module (L298N / L293D)
- Robot Chassis
- Jumper Wires
- Battery Pack (6V or 12V)
Circuit Diagram
Connections
Ultrasonic Sensor (HC-SR04):
VCC -> 5V
GND -> GND
Trig -> D9 (Arduino)
Echo -> D10 (Arduino)
Motor Driver L298N:
IN1 -> D8 (Left Motor Forward)
IN2 -> D7 (Left Motor Backward)
IN3 -> D6 (Right Motor Forward)
IN4 -> D5 (Right Motor Backward)
ENA -> 5V / PWM control (optional)
ENB -> 5V / PWM control (optional)
Motors connected to motor driver outputs
Battery + Arduino GND connected to motor driver GND
Arduino Code for Obstacle Avoiding Robot
#define trigPin 9
#define echoPin 10
#define motorLeftForward 8
#define motorLeftBackward 7
#define motorRightForward 6
#define motorRightBackward 5
long duration;
int distance;
void setup() {
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(motorLeftForward, OUTPUT);
pinMode(motorLeftBackward, OUTPUT);
pinMode(motorRightForward, OUTPUT);
pinMode(motorRightBackward, OUTPUT);
Serial.begin(9600);
}
void loop() {
// Ultrasonic distance measurement
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance = duration * 0.034 / 2;
Serial.print("Distance: ");
Serial.println(distance);
// Obstacle avoidance logic
if (distance < 15) { // obstacle detected
stopRobot();
delay(200);
moveBackward();
delay(500);
turnRight();
delay(500);
} else {
moveForward();
}
}
void moveForward() {
digitalWrite(motorLeftForward, HIGH);
digitalWrite(motorLeftBackward, LOW);
digitalWrite(motorRightForward, HIGH);
digitalWrite(motorRightBackward, LOW);
}
void moveBackward() {
digitalWrite(motorLeftForward, LOW);
digitalWrite(motorLeftBackward, HIGH);
digitalWrite(motorRightForward, LOW);
digitalWrite(motorRightBackward, HIGH);
}
void turnRight() {
digitalWrite(motorLeftForward, HIGH);
digitalWrite(motorLeftBackward, LOW);
digitalWrite(motorRightForward, LOW);
digitalWrite(motorRightBackward, HIGH);
}
void stopRobot() {
digitalWrite(motorLeftForward, LOW);
digitalWrite(motorLeftBackward, LOW);
digitalWrite(motorRightForward, LOW);
digitalWrite(motorRightBackward, LOW);
}
Code Explanation
- Ultrasonic sensor measures distance to obstacle.
- If distance < 15 cm, robot stops, moves backward, and turns.
- DC motors are controlled via motor driver for navigation.
- Robot continuously avoids obstacles autonomously.
Advantages
- Fully autonomous operation
- Real-time obstacle detection
- Can be integrated with other sensors for smart robotics
- Simple and effective for learning robotics
Applications
- Autonomous robots for competitions
- Industrial robots for obstacle navigation
- Smart vehicles
- Educational robotics projects
Future Enhancements
- Add multiple sensors for better obstacle detection
- Implement GPS or path planning algorithms
- IoT-based monitoring and control
- Voice or app-controlled obstacle avoiding robot
Conclusion
The Obstacle Avoiding Robot is a practical robotics project that combines sensors, motors, and Arduino programming. It demonstrates autonomous navigation and is an excellent project for students learning robotics, automation, and smart systems.
