0% found this document useful (0 votes)
103 views12 pages

Final Report ph102

Uploaded by

Dhruva Kumar
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
103 views12 pages

Final Report ph102

Uploaded by

Dhruva Kumar
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 12

`

Obstacle Avoider Car

Team Members:

- Daksh Beniwal (Entry No. 2024EEB1194) – Improvement in Coding and Wiring

- Deo Dev (Entry No. 2024EEB1195) – Soldering and Wiring

- Dhruva Kumar (Entry No. 2024EEB1196) – Coding, Wiring and Material Gathering

- Durga Prasad (Entry No. 2024EEB1197) - Motivation

- Ekjot (Entry No. 2024EEB1198) – Report Writing and Information Gathering


OBJECTIVE: THE ARDUINO ULTRASONIC Such a project serves as a practical

SENSOR CAR PROJECT EXPLORES THE application of embedded systems

INTEGRATION OF ROBOTICS, SENSORS, and sensor-based navigation, skills


that are foundational in fields like
AND MICROCONTROLLERS TO CREATE
robotics and IoT (Internet of Things).
AN AUTONOMOUS, OBSTACLE-
Beyond building a functional
AVOIDING VEHICLE. THIS PROJECT
prototype, this project enhances
DEMONSTRATES A FUNDAMENTAL
understanding of sensor operations,
CONCEPT IN AUTONOMOUS SYSTEMS,
motor control, and basic
WHERE REAL-TI ME DATA IS USED TO programming with Arduino. With
MAKE NAVIGATI ON DECISIONS WITHOUT applications spanning from
HUMAN INTERVENTION. USING AN autonomous vehicles to security and

ULTRASONIC SENSOR, THE CAR DETECTS industrial automation, the Ultrasonic

OBSTACLES IN ITS PATH AND ALTERS ITS Sensor Car provides a glimpse into

COURSE TO AVOID COLLIS IONS. the capabilities of modern robotic


systems and the potential for future
innovations in smart, self-guided
technologies.
Material Required
 Arduino Uno
 Ultra-Sonic Sensor
 L293D Motor Driver Shield
 DC Motors × 4
 Wheels × 4
 6 Volts Sources × 2
 3D Printed Chassis
 Jumper Wires
 Switch

Arduino Uno

The Arduino Uno is a popular open-source microcontroller


board developed by Arduino.cc, based on the ATmega328P
microcontroller. It is widely used in electronics projects and
embedded systems due to its simplicity, flexibility, and large
supportive community

Ultra-Sonic Sensor (HC-


SR04)

An ultrasonic sensor is a
device that uses ultrasonic
sound waves to measure
distance. It’s widely used in
robotics, automation, and
security applications for
obstacle detection and
ranging. The most common
ultrasonic sensor module is
the HC-SR04, which is
inexpensive and easy to use
with microcontrollers like
Arduino. Its range is from
2cm to 4m. It frequency is 40
kHz

L293D Motor Driver Shield

The Motor Driver Module


HW130, based on the L298N
dual H-bridge motor driver,
is a popular module for
controlling the direction and
speed of DC motors and
stepper motors in robotics
and DIY projects. It is
commonly used with
microcontrollers like Arduino,
Raspberry Pi, and other
platforms due to its simplicity
and ability to handle
moderate power
requirements.
Circuit
Diagram
Working Principle

The Arduino ultrasonic sensor car operates


based on the principle of ultrasonic sensing.
The ultrasonic sensor (HC-SR04) sends out
ultrasonic waves at a specific frequency.
When these waves hit an object, they reflect
back, and the sensor receives them. The car's
microcontroller (Arduino) measures the time
it took for the waves to return and calculates

Challenges

1. Sensor Accuracy: The ultrasonic sensor


sometimes gave fluctuating distance readings,
which led to inconsistent obstacle detection.
Fine-tuning the sensor's position and adding
a delay between readings improved accuracy.

2. Power Management: Using a 9V battery


occasionally led to underpowered motors,
especially during turns. Switching to a more
stable power source or rechargeable battery
could improve performance.

3. Motor Control: Precise control of the


motors was challenging due to limited torque.
In future versions, using higher-quality
motors or adding a second motor driver could
improve movement accuracy.

4. Code Optimization: Response time lagged


slightly due to the sensor processing time.
Reducing code complexity and adjusting delay
intervals can further optimize the car's
response.
PROCEDURE

1. Assembly:

- Attach the wheels to the DC motors, fix

the motors to the chassis, and add the

caster wheel.

- Connect the DC motors to the motor

driver.

- Mount the ultrasonic sensor at the

front of the car to serve as the "eyes" for

detecting obstacles.

2. Programming:

- Write an Arduino code to make the car

move forward continuously.

- Program the ultrasonic sensor to

measure distance. If an obstacle is

detected within a certain range (e.g., 15

cm), the car stops, turns, and resumes

moving in a different direction


Observation

Working And Defects

- The ultrasonic sensor effectively detects obstacles within a range of 2-400 cm.
- The motor driver responds accurately to commands for turning and stopping.
- The car encounters minor delays during sensor processing, which could be optimized in
future iterations.

A. Smooth Navigation:

 If the environment has few obstacles, the robot moves smoothly, adjusting direction
only when necessary.

B. Erratic Movements:

 If obstacles are densely packed, the robot may show frequent changes in direction,
indicating high sensor activity.

C. Response Time:

 The quicker the response time, the better the robot avoids obstacles without collisions.

 Delayed response may result in minor bumps or jerky movements.

D. Sensor Accuracy:

 Higher accuracy sensors lead to better obstacle detection and smoother navigation.

 Low accuracy or misaligned sensors can cause incorrect distance readings, affecting
the car’s navigation.

E. Battery Life Impact:

 Continuous sensor operation and motor control drain the battery. The robot may slow
down or exhibit weaker obstacle avoidance as the battery depletes
Applications

- Autonomous Vehicles: The project


demonstrates basic principles used in self-
driving cars for obstacle detection and
avoidance.
- Robotics: It can be applied in robotic
navigation where real-time obstacle detection is
necessary.
- Security Systems: Ultrasonic sensors are
widely used in security systems for intrusion
detection.
- Warehousing: Autonomous vehicles with
obstacle avoidance are often used in
warehouses to transport items while avoiding
collisions.
- Education: This project serves as an
educational tool for students learning about
robotics, sensors, and Arduino programming
- Autonomous Vehicles: The project
demonstrates basic principles used in self-
driving cars for obstacle detection and
avoidance.
- Robotics: It can be applied in robotic
navigation where real-time obstacle detection is
necessary.
- Security Systems: Ultrasonic sensors are
widely used in security systems for intrusion
detection.
- Warehousing: Autonomous vehicles with
obstacle avoidance are often used in
warehouses to transport items while avoiding
collisions.
- Education: This project serves as an
educational tool for students learning about
robotics, sensors, and Arduino programming

Future
Improvements
- Adding more ultrasonic sensors to
detect obstacles in multiple
directions.
- Implementing a more complex
algorithm to make smoother turns.
- Using a more powerful battery to
enhance motor performance.
- Using large battery for longer run
time.

Results
- The car successfully moves forward
and stops when an obstacle is
detected.
- When the ultrasonic sensor detects
an object within 15 cm, the car stops,
turns right, and continues moving in
a different direction.

Conclusion
The Arduino ultrasonic sensor car
successfully detects and avoids
obstacles, demonstrating the
capability of ultrasonic sensing in
autonomous navigation. This project
highlights how simple components
can create a basic obstacle-avoiding
robot. Future improvements may
include adding sensors for smoother
directional control and optimizing
the response time.
Code
#define trigPin 9
#define echoPin 10
#define motor1Pin1 4
#define motor1Pin2 5
#define motor2Pin1 6
#define motor2Pin2 7

void setup() {
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(motor1Pin1, OUTPUT);
pinMode(motor1Pin2, OUTPUT);
pinMode(motor2Pin1, OUTPUT);
pinMode(motor2Pin2, OUTPUT);
Serial.begin(9600);
}

void loop() {
long duration, distance;
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);

duration = pulseIn(echoPin, HIGH);


distance = (duration / 2) / 29.1; // Convert to cm

if (distance < 15) {


stopCar();
delay(500);
turnRight();
delay(500);
} else {
moveForward();
}
delay(100);
}

void moveForward() {
digitalWrite(motor1Pin1, HIGH);
digitalWrite(motor1Pin2, LOW);
digitalWrite(motor2Pin1, HIGH);
digitalWrite(motor2Pin2, LOW);
}

void stopCar() {
digitalWrite(motor1Pin1, LOW);
digitalWrite(motor1Pin2, LOW);
digitalWrite(motor2Pin1, LOW);
digitalWrite(motor2Pin2, LOW);
}

void turnRight() {
digitalWrite(motor1Pin1, LOW);
digitalWrite(motor1Pin2, HIGH);
digitalWrite(motor2Pin1, HIGH);
digitalWrite(motor2Pin2, LOW);
}

You might also like