0% found this document useful (0 votes)
56 views10 pages

Fire Fighting Robot Project - 250324 - 230815

The document outlines the design and implementation of an Arduino-based firefighting robot that utilizes a flame sensor, water spray mechanism, and various motor drivers to detect and extinguish fires autonomously. It details the components required, the methodology for development, and the operational stages of the robot, including movement and fire extinguishing processes. The conclusion emphasizes the robot's potential to enhance fire-fighting efforts and reduce risks to human firefighters.
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)
56 views10 pages

Fire Fighting Robot Project - 250324 - 230815

The document outlines the design and implementation of an Arduino-based firefighting robot that utilizes a flame sensor, water spray mechanism, and various motor drivers to detect and extinguish fires autonomously. It details the components required, the methodology for development, and the operational stages of the robot, including movement and fire extinguishing processes. The conclusion emphasizes the robot's potential to enhance fire-fighting efforts and reduce risks to human firefighters.
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/ 10

Fire

Fighting
Robot
Project
For Embedded System Subject
By: Suhail Al Hbob
Firefighters continuously run the risk of dying as the world progressively moves toward
automated systems and self-driving cars. If a fire is not put out, it spreads quickly.
Therefore, our system steps in to solve this problem and protect the life of our hero. The
Arduino Uno development board powers this firefighting robotic system, which also has a
fire flame sensor for spotting oncoming fires and a water tank and spray mechanism for
putting out the flames. For optimal coverage, a water spraying nozzle is attached to a
servo motor. A water pump is used to transfer water from the main water tank to the
water nozzle.

WHAT IS FLAME SENSOR?

A flame sensor is a type of sensor that responds most strongly to ambient light. This
sensor module is utilised in flame alarms as a result. This sensor picks up flames coming
from the light source with wavelengths between 760 and 1100 nm. High temperatures
have the potential to easily harm this sensor. So, a specific distance from the flame can
be chosen for this sensor's placement. The flame can be detected from a distance of 100
cm. This sensor outputs either an analogue signal or a digital signal. These sensors
serve as a flame alert in firefighting robots.

FLAME SENSOR WORKING PRINCIPLE


Flame sensors identify flames using UV (Ultraviolet), IR (Infra-Red), or UV-IR technology.
Simply detecting UV rays is how the UV flame sensor operates. Most fires produce UV
radiation near the point of ignition, therefore in the event of a fire, the sensor would
become aware of it and produce a series of pulses that are altered by the detector and
produce an alarm.

SERVO MOTOR PINOUT


The MG90S is a metal gear servo motor commonly used in RC
applications. This servo motor is commonly used in RC applications which can rotate
90 degrees in both the direction or approximately 180 degrees in total.
L298N PINOUT

Datasheet

Motor controller L298N, drives 2 DC motors

Operating Voltage 5- 35V

Logic voltage 4.5 – 7 V

Max current 2A per channel

Voltage Regulator 78M05

Module dimensions 43 x 43 x 28 mm

Junction operating temperature -25 to 130 o Celsius

COMPONENTS REQUIRED

• Arduino Board (UNO)

• USB – A to micro-USB cable

• Car chassis

• L298 motor driver module

• Flame sensor module

• Servo Motor

• L293D Motor Driver Module

• Mini DC Submersible Pump

• 12V Battery

• Solder wire
Software Required

• Arduino IDE

CIRCUIT DIAGRAM

Follow this table in order to make your connections.

L298N driver Pins Arduino Pins

ENA 3

IN1 12

IN2 4

IN3 7

IN4 2

ENB 5
L293 module pins Arduino pins

12v 12v

GND GND

5v 5v

EN1 5v

IN1 GND

IN2 6

Servo pins Arduino pins

Vcc 5v

GND GND

Signal 11

Flame sensor module Arduino pins

Vcc 5v

GND GND

DO (RIGHT) 9

DO (FORWARD) 8

DO (LEFT) 10

For L298N motor driver module, motors are connected to the motor terminals of the
motor driver module. The motor driver has another 3 terminals, in which one is 12Volt
connected to the battery. The GND terminal is connected to the battery’s negative
terminal and it is also connected to the Arduino board GND pin and 5v is connected to 5v
of the Arduino board.

METHODOLOGY
The methodology for developing an Arduino based firefighting robot typically involves
several stages, including design, implementation, testing, and evaluation. The following is
a general overview of the methodology for developing an Arduino based firefighting
robot:

1 .Design: In this stage, the overall concept and design of the robot are determined. The
design includes the selection of appropriate sensors, Arduino microcontroller, motor
drivers, water spray mechanism, and other components required for the robot.

2 .Implementation: Once the design is finalized, the components are assembled, and the
programming code is written for the Arduino microcontroller. The robot's hardware and
software are integrated to ensure proper functioning.

3 .Testing: The robot is tested in a simulated environment to ensure that it can detect
fires accurately and extinguish them using a water spray mechanism. The robot's
performance is evaluated under different conditions, such as different types of fires,
varying environmental conditions, and obstacles.

4 .Evaluation: Once the testing is complete, the robot's performance is evaluated based
on its ability to detect and extinguish fires accurately and its effectiveness in navigating
through narrow passages and obstacles. Modifications may be made to improve the
robot's performance.

5 .Refinement: Based on the evaluation, modifications may be made to improve the


robot's performance. The robot is tested again to ensure that the modifications have
improved the robot's performance.

6 .Deployment: Once the robot is deemed to be effective, it can be deployed in actual fire
incidents to assist human firefighters in combatting fires and reducing the risk of injury to
human firefighters.

Overall, the methodology for


developing an Arduino based
firefighting robot involves a
systematic approach to design,
implementation, testing, evaluation,
refinement, and deployment. This
approach ensures that the robot is
effective in detecting and
extinguishing fires in hazardous
environments and reducing the risk
of injury to human firefighters.

DESIGN STAGES OF
WORKING
1 .Movement stage.

2 .Flame tracking stage.

a. After we test the movement model


we

integrate the flame sensor to the


model.
b. Flame sensor detects the fire from front, left and right.

So, in this step the robot will not move until the flame

sensor sense the fire.

c. Three flame sensors used to detect fire from front, left and right.

To be accurate we read three values for each one and evaluate the average and we
must wait few milliseconds before start reading new values from the sensors.

EXTINGUISHING FIRE STAGE.


• When the fire is detected by the robot stop and turn on the pump.
Read from front sensor if it’s less than specified value go forward.
Else stop and find new route.
• Find new route by going backward Read left and right sensors. If left distance
less than right distance then turn left else turn right.
• Go back to first step as shown in figure 4.
• While the water pump is running the robot will keep sensing the fire if no flam
(fire) then it will turn off the pump

CONCLUSION
An Arduino based autonomous firefighting robot is a viable solution for hazardous fire-
fighting situations where human intervention is not possible. With the use of various
sensors, it can detect fires with high accuracy, and its water spray mechanism can
extinguish fires effectively. Additionally, it can navigate through narrow passages and
avoid obstacles to reach the fire source quickly and safely. Good programming and
control can also ensure that the robot can detect and extinguish fires effectively while
avoiding obstacles and navigating safely. Although challenges and limitations exist, such
as the need for optimized sensors and programming, the potential benefits of such robots
make them a promising area for future research and development. Overall, Arduino
based autonomous firefighting robots have the potential to save lives and property and
can serve as a valuable addition to current fire-fighting methods.

CODE:
#include <Wire.h>

#include <Servo.h>

#include <RTClock.h> // ‫ تضمين مكتبة‬RTClock ‫إلدارة الزمن‬

Servo myservo;

RTClock clock; // ‫ إنشاء كائن‬RTClock ‫إلدارة الزمن في النظام‬

int pos = 0;

boolean fire = false;

double temp;

#define Left 8

#define Right 9

#define Forward 10

#define LM1 2

#define LM2 3

#define RM1 4

#define RM2 5

#define pump 6

void setup() {

pinMode(Left, INPUT);

pinMode(Right, INPUT);

pinMode(Forward, INPUT);

pinMode(LM1, OUTPUT);

pinMode(LM2, OUTPUT);

pinMode(RM1, OUTPUT);

pinMode(RM2, OUTPUT);
pinMode(pump, OUTPUT);

myservo.attach(11);

myservo.write(90);}

void put_off_fire() {

clock.delay(500); // ‫ استخدام‬clock.delay() ‫ بدالً من‬delay()

digitalWrite(LM1, LOW);

digitalWrite(LM2, LOW);

digitalWrite(RM1, LOW);

digitalWrite(RM2, LOW);

digitalWrite(pump, HIGH);

clock.delay(500);

for (pos = 50; pos <= 130; pos += 1) {

myservo.write(pos);

clock.delay(10); }

for (pos = 130; pos >= 50; pos -= 1) {

myservo.write(pos);

clock.delay(10);}

digitalWrite(pump, LOW);

myservo.write(90);

fire = false;}

void RTOS_task() { // ‫ إنشاء وظيفة‬RTOS ‫للتحكم بمهام متزامنة‬

clock.update(); // ‫تحديث الوقت في كل دورة‬

if (temp > 50) {

put_off_fire();
} else {

fire = false; }}

void loop() {

myservo.write(90);

if (digitalRead(Left) == 1 && digitalRead(Right) == 1 && digitalRead(Forward) == 1) {

digitalWrite(LM1, HIGH);

digitalWrite(LM2, HIGH);

digitalWrite(RM1, HIGH);

digitalWrite(RM2, HIGH);

} else if (digitalRead(Forward) == 0) {

digitalWrite(LM1, HIGH);

digitalWrite(LM2, LOW);

digitalWrite(RM1, HIGH);

digitalWrite(RM2, LOW);

} else if (digitalRead(Left) == 0) {

digitalWrite(LM1, HIGH);

digitalWrite(LM2, LOW);

digitalWrite(RM1, HIGH);

digitalWrite(RM2, HIGH);

} else if (digitalRead(Right) == 0) {

digitalWrite(LM1, HIGH);

digitalWrite(LM2, HIGH);

digitalWrite(RM1, HIGH);

digitalWrite(RM2, LOW); }

// ‫ يتم استدعاء وظيفة التحكم بنظام‬RTOS ‫في كل دورة من الحلقة‬

RTOS_task(); }

You might also like