group documentation
group documentation
INTRODUCTION
1. Introduction
Fire fighter robot can be used to control the fire. this robot can detect the fire by itself
and control the fire by throwing water. there are some sensors we are using that can
detect fire and robots can move there to fire extinguish.The fire fighting robot has the
same structure as Bluetooth control RC car. the robot has 3 sensors 1 sensor at the front
side which see if there is anything in front of the robot.
the other two at the both front corner which also searches for fire. if any sensor detects
fire at any site the robot will sensor and move towards it. the fire fighting robot has 4
wheels, 3 sensors, one water tank, one nozzle, and a computer which help him to take
decision according to the Arduino code.
The robot is a small version till the date post published and there is only some basic
feature when you will start the robot it will move forward first until it gets fired
anywhere. if any sensor of the robot will find the flame anywhere it will start moving
toward the flame and with the help of the water nozzle of the fire fighting robot using
Arduino will start watering the particular area. Fire fighter robot and line follower
robot have the same sensor but the working in both conditions are different.
1.1 Objectives
• Efficient Fire Suppression: Quickly locate and extinguish fires using onboard
suppression mechanisms.
• Search and Rescue: Navigate through obstacles to find and assist individuals.
1
• Surveillance and Monitoring: Provide real-time data about the fire’s progress
and environment.
• Fire Prevention: Detect potential fire hazards and take preventive actions.
1. Fire Detection:
o The robot must be equipped with sensors (e.g., IR flame sensors, smoke
detectors) that can accurately detect the presence and location of a fire.
o The detection system must have a wide field of view and be sensitive
enough to detect small fires.
o The robot must have a reliable and efficient locomotion system (e.g.,
wheels, tracks) to navigate different terrains.
o The robot should have a robust control system to manage movement and
ensure stability.
3. Fire Suppression:
2
o The robot must be able to operate in harsh conditions, such as high
temperatures and smoky environments.
o It should support remote control and manual override options for human
intervention if necessary.
6. Autonomous Capabilities:
1. Requirements Analysis
2. Component Selection
• Sensors: Select appropriate sensors for fire detection (e.g., IR flame sensors,
smoke detectors).
3
• Microcontroller: Decide on a suitable microcontroller (e.g., Arduino,
Raspberry Pi, motor driver) for controlling the robot.
3. System Design
• Hardware Design: Create schematics for connecting sensors, actuators, and the
microcontroller. Ensure the layout allows for effective heat dissipation and ease
of maintenance.
• Functional Testing: Verify that all components and systems work as intended.
Test sensor accuracy, motor control, and fire suppression mechanisms.
6. Algorithm Development
4
• Control Algorithms: Implement control algorithms for autonomously moving
towards the fire and activating suppression mechanisms.
7. Autonomous Operation
8. Safety Measures
1.4 Contributions
The fire-fighting robot project offers several significant contributions to the field of
robotics, fire safety, and automation. Here’s a breakdown of its key contributions:
5
1. Enhanced Safety for Human Firefighters
• Quick Response: The robot can quickly locate and approach fire sources,
leading to faster suppression and minimizing damage.
• Precision Targeting: Equipped with sensors and actuators, the robot can
precisely target fire hotspots, making fire suppression more effective.
6
• Design Optimization: Continuous testing and iteration lead to optimized
designs that can be scaled and adapted for different applications.
6. Educational Value
• Learning Platform: The project serves as an educational tool for students and
researchers in robotics, providing a practical example of applying theoretical
concepts.
• Open-Source Contribution: Sharing the design and code with the community
can foster innovation and collaboration, advancing the field of robotics.
• Versatility: The robot's design can be adapted for various other applications,
such as disaster response, industrial safety, and hazardous materials handling.
1. Introduction
• Objectives: Listing the primary goals of the robot, such as enhancing safety,
improving fire suppression efficiency, and providing real-time data.
2. Literature Review
7
• Component Selection: Detailed list of all hardware components used, such as
sensors, actuators, microcontrollers, and their specifications.
• Prototyping: Steps taken to build and test a prototype, including initial tests for
sensor readings and motor movements.
• Calibration: Methods used to adjust sensor sensitivity, motor speed, and other
parameters for optimal performance.
8
CHAPTER 2
LITERATURE SURVEY
EXISTING METHODS
Tawfiqur Rakib, M. A. Rashid Sarkar proposed a fire fighting robot model which
consists of a base platform made up of ‘Kerosene wood’, LM35 sensor for temperature
detection, flame sensors to detect the fire and a water container of 1 litre capacity which
is made up of a strong cardboard that makes it water resistant. The robot has two wheels
for its movement.
9
Sushrut Khajuria, Rakesh Johar, Varenyam Sharma, Abhideep Bhatti proposed an
arduino based fire fighter robot which consists of RF based remote operation to operate
the robot and water pump.The robot is controlled by the user within a range of 7
metres.It also consists of a wireless camera which helps user to move the robot in the
required direction.
Khaled Sailan, Prof. Dr.-Ing. Klaus-Dieter Kuhnert, Simon Hardt proposed an obstacle
avoidance robot named as Amphibious Autonomous Vehicle. In this robot, a fuzzy
controller is used to avoid static obstacle in real time.It aims to guide the robot or
vehicle along its path avoiding all the obstacle that comes along the path.
PROPOSED METHOD
The theme of this paper is to automatically sense the environmental fire and extinguish
it without human intervention. The methodology is divided into three parts. The first
part is on the design structure, followed by hardware description and the finally on the
programming design. All these three parts were assembled together and experiments
were then performed to build a system that can extinguish the fire that was carried out
Design Structure
10
The hardware part is one of the crucial parts in the development of firefighting robot.
It includes Arduino UNO, IR flame sensors, servo motors, submersible water pump,
motor driver, mini breadboard, BO motors, and rubber wheels. Fig 3 shows the block
diagram of firefighting robot which consists of three IR flame sensors as the input of
the system. Arduino UNO is used as a micro-controller that connects other components.
L298D Motor driver is used to drive motors and is capable of running two DC motors
(Left DC motor and Right DC motor) at the same time.
11
CHAPTER 3
PROBLEM IDENTIFICATION
Functional Requirements
• Fire Detection:
o Use IR flame sensors and smoke detectors to identify the presence and
location of a fire.
• Fire Suppression:
• Communication:
o Transmit real-time data and video feed to a control center for monitoring
and decision-making.
12
o Include fail-safe mechanisms and redundant systems to ensure
consistent operation.
Non-Functional Requirements
• Battery Life:
o The robot must have a sufficient power supply to operate for extended
periods without requiring frequent recharging.
• Cost-Effectiveness:
• User-Friendliness:
Constraints
• Environmental Conditions:
• Sensor Accuracy:
• Processing Speed:
• Material Durability:
13
o Use materials that can withstand harsh conditions without degrading
quickly.
Performance Metrics
• Detection Accuracy:
• Response Time:
• Extinguishing Efficiency:
o Ability to navigate through obstacles and reach the fire source without
human intervention.
• Operational Duration:
o Duration for which the robot can operate continuously before needing a
recharge.
• Robustness:
14
CHAPTER 4
SYSTEM DESIGN
Fire Power
Sensor supply
Left
DC Motor
Fire
1
sensor L298N
Motor
Ardunio Driver
Right
Uno
Fire DC Motor
sensor 2
Water
pump
Power
supply
INPUTS
• Fire sensors
• Power supply
OUTPUTS
• L298N Motor driver
• Water pump
15
Fig 4.2: Circuit Diagram
Operational Flow
1. Fire Detection: The fire sensors (left, right, and center) continuously monitor
their respective areas for any signs of fire.
2. Signal Processing: When a fire is detected, the sensors send signals to the
Arduino Uno.
3. Decision Making: The Arduino Uno processes the sensor inputs to determine
the location of the fire.
4. Motor Control: Based on the sensor data, the Arduino Uno sends control
signals to the L293D motor driver IC to navigate the robot towards the fire.
5. Fire Suppression: Once the robot reaches the fire source, the Arduino Uno
activates the motor pump to spray water and extinguish the fire.
16
CHAPTER 5
1 ARDUNIO UNO
ARDUNIO
17
something wrong. The worst case scenario is that you would have to replace the chip
and start again :)
• Microcontroller: ATmega328P
• Operating Voltage: 5V
• SRAM: 2 KB (ATmega328P)
• EEPROM: 1 KB (ATmega328P)
• LED_BUILTIN: 13
• Length: 68.6 mm
• Width: 58.4 mm
• Weight: 25 g
The Arduino Uno board can be powered via a USB connection or with an external
power supply. The power source is selected automatically. External (non-USB) power
can come either from an AC-to-DC adapter (wall-wart) or battery. The adapter can be
connected by plugging a 2.1mm center-positive plug into the board's power jack. Leads
from a battery can be inserted in the GND and Vin pin headers of the POWER
18
connector. The board can operate on an external supply from 6 to 20 volts. If supplied
with less than 7V, however, the 5V pin may supply less than five volts and the board
may become unstable. If using more than 12V, the voltage regulator may overheat and
damage the board. The recommended range is 7 to 12 volts.
• Vin. The input voltage to the Arduino/Genuino board when it's using an external
power source (as opposed to 5 volts from the USB connection or other regulated
power sources). You can supply voltage through this pin, or, if supplying voltage
via the power jack, access it through this pin.
• 5V.This pin outputs a regulated 5V from the regulator on the board. The board
can be supplied with power either from the DC power jack (7 - 12V), the USB
connector (5V), or the VIN pin of the board (7-12V). Supplying voltage via the
5V or 3.3V pins bypasses the regulator, and can damage your board. We don't
advise it.
• 3V3. A 3.3 volt supply generated by the on-board regulator. The maximum
current draw is 50 mA.
• IOREF. This pin on the Arduino/Genuino board provides the voltage reference
with which the microcontroller operates. A properly configured shield can read
the IOREF pin voltage and select the appropriate power source or enable voltage
translators on the outputs to work with the 5V or 3.3V.
IR FLAME SENSOR
19
A Flame Sensor is a device that can be used to detect presence of a fire source or any
other bright light sources. There are several ways to implement a Flame Sensor but the
module used in this project is an Infrared Radiation Sensitive Sensor.
Detection angle of this module is about 60 degrees, the flame spectrum is very sensitive.
You can also purchase this flame sensor through our offline counter at Tomson
Electronics, Kochi, Kerala. India.
These types of sensors are used for short range fire detection and can be used to design
DIY monitoring projects using an Arduino or Raspberry Pi. It can also be used as a
safety precaution to cut devices Off / On. The device functions most accurately up to
about 3 feet. This flame sensor module is very sensitive to IR wavelength at 760 nm ~
1100 nm light.
This L298N Motor Driver Module is a high power motor driver module for driving DC
and Stepper Motors. This module consists of an L298 motor driver IC and a 78M05 5V
regulator. L298N Module can control up to 4 DC motors, or 2 DC motors with
directional and speed control.
20
• Motor Supply Current (Maximum): 2A
• Logic Voltage: 5V
• Driver Current:2A
• Logical Current:0-36mA
The L298N Motor Driver module consists of an L298 Motor Driver IC, 78M05 Voltage
Regulator, resistors, capacitor, Power LED, 5V jumper in an integrated circuit.
78M05 Voltage regulator will be enabled only when the jumper is placed. When the
power supply is less than or equal to 12V, then the internal circuitry will be powered by
the voltage regulator and the 5V pin can be used as an output pin to power the
microcontroller. The jumper should not be placed when the power supply is greater than
12V and separate 5V should be given through 5V terminal to power the internal
circuitry.
ENA & ENB pins are speed control pins for Motor A and Motor B while IN1& IN2 and
IN3 & IN4 are direction control pins for Motor A and Motor B.
21
SERVO MOTOR
A servo motor is an electric motor that allows for precise control of angular position. It
incorporates a position feedback mechanism to accurately control its motion. The term
'servo' is derived from 'servomechanism', which is a system that uses feedback to
automatically provide a controlled power level or force to move and hold an object at a
certain position.
The rotor inertia of the motors is low and has a high speed of response. The rotor of the
motor has a long length and smaller diameter. They operate at very low speeds and
sometimes even at zero speed. Servo motors find their use in applications that require
controlled rotation of a shaft, such as robotic arms, automated machines, radio-
controlled vehicles, antenna positioning, etc. They differ from conventional motors by
having an internal feedback system that monitors the shaft position and ensures it
reaches and maintains the desired position accurately.
The working principle of a servo motor involves the use of negative feedback. It
consists of a motor, position sensors, a controller, and an amplifier.
o Reference Input: The desired position or velocity is set by the user through an
input signal.
o Error Signal Generation: The controller compares the reference input with the
actual position feedback from the sensor, generating an error signal.
22
o Amplification and Correction: The error signal is amplified and used to
correct the motor's position or velocity.
o Motor Movement: Based on the corrected signal, the controller drives the
motor to move in the desired direction until the error signal becomes negligible.
o The motor rotates the shaft under the power provided by the amplifier.
o The actual position signal is compared with the reference command in the
controller.
o The amplifier boosts this command and provides the required power to the
motor coil to eliminate error.
o This negative feedback loop continues till the actual position matches the set
position command.
o The motor shaft is then held at that position against any external disturbances.
So in summary, servo motors provide precise control over rotational motion using
position feedback for error correction in a closed-loop system.
DC Water Pump
Mini DC 3-6V Micro Submersible Pump Mini water pump For Fountain Garden Mini
water circulation System DIY project. This is a low cost, small size Submersible Pump
Motor which can be operated from a 3 ~ 6V power supply. It can take up to 120 liters
per hour with very low current consumption of 220mA. Just connect tube pipe to the
motor outlet, submerge it in water and power it. Make sure that the water level is always
higher than the motor. Dry run may damage the motor due to heating and it will also
produce noise.
23
Fig 5.5: Mini Water Pump Submersible Pump DC 3-6 V
• Operating Voltage : 3 ~ 6V
BO MOTORS
24
The BO motor is versatile and reliable for DIY projects, offering precision and
efficiency. Whether you’re a hobbyist or a professional, this motor is perfect for various
applications, from robotics to automation.
This 12V DC motor features a dual shaft design and operates at 100 RPM, providing
ideal speed and torque balance. It ensures smooth operation in various project
applications and offers reliability and performance. Additionally, built with high-
quality components, the BO motor is durable and reliable, ensuring longevity even with
continuous use.
Pair it with our gear motor and a wheel for added mobility and functionality in your
projects. Whether you’re building a robot or a remote-controlled vehicle, this
combination delivers superior performance.
The BO motor is compatible with popular development boards such as Arduino Uno
R3. Additionally, it works with motor drivers like the L298N, enabling a wide range of
experimentation and innovation opportunities.
For added convenience, consider our BO motor wheel, which provides smooth
movement and precise control, even in challenging environments.
Pair it with the L298N motor driver for efficient power management and control. With
its advanced features and intuitive interface, customization is easy and precise.
Our 12V DC BO motor offers great value at an unbeatable price. Whether a beginner
or an experienced maker, this motor is perfect for various projects. Its versatile design
and reliable performance make it popular among hobbyists and professionals. Its 12V
power supply provides the right balance of speed and torque for your applications.
Moreover, its durable construction ensures long-lasting use, making it a cost-effective
solution.
Specifications:
• Motor Type: DC
25
• No Load Current: 40-180mA
• Dimensions (LxWxH): 64 x 22 x 18 mm
• Weight: 30 g
TYRES
The wheel is made up of high-quality rubber which gives maximum traction while
operating. The wheel is strong and sturdy as it features a nylon reinforced plastic rim.
3. Diameter: 65 mm
4. Width : 28 mm
26
6. The material of Tyre: Rubber
7. Color: Yellow
SOFTWARE DESCRIPTION
Arduino IDE
Arduino IDE where IDE stands for Integrated Development Environment – An official
software introduced by Arduino. cc, which is mainly used for writing, compiling, and
uploading the code in the Arduino Device. Almost all Arduino modules are compatible
with this software which is open source and is readily available to install and start
compiling the code on the go. Introduction to Arduino IDE
• Arduino IDE is an open-source software that is mainly used for writing and compiling
code into the Arduino Module.
• It is an official Arduino software, making code compilation too easy that even a
common person with no prior technical knowledge can get their feet wet with the
learning process.
• It is easily available for operating systems like MAC, Windows, and Linux and runs
on the Java Platform that comes with inbuilt functions and commands that play a vital
role for debugging, editing, and compiling the code in the environment.
• The main code, also known as a sketch, created on the IDE platform will ultimately
generate a Hex File which is then transferred and uploaded to the controller on the
board.
• The IDE environment mainly contains two basic parts: Editor and Compiler where
the former is used for writing the required code and later is used for compiling and
uploading the code into the given Arduino Module.
27
• This environment supports both C and C++ languages.
USED CODE
#define enA 10//Enable1 L298 Pin enA
#define in1 7 //Motor1 L298 Pin in1
#define in2 6 //Motor1 L298 Pin in2
#define in3 9 //Motor2 L298 Pin in3
#define in4 8 //Motor2 L298 Pin in4
#define enB 5 //Enable2 L298 Pin enB
#define ir_R A0
#define ir_F A1
#define ir_L A2
#define servo A4
#define pump A5
int Speed = 250; // Write The Duty Cycle 0 to 255 Enable for Motor Speed
int s1, s2, s3;
void setup(){ // put your setup code here, to run once
Serial.begin(9600); // start serial communication at 9600bps
pinMode(ir_R, INPUT);// declare fire sensor pin as input
pinMode(ir_F, INPUT);// declare fire sensor pin as input
pinMode(ir_L, INPUT);// declare fire sensor pin as input
pinMode(enA, OUTPUT); // declare as output for L298 Pin enA
28
pinMode(in1, OUTPUT); // declare as output for L298 Pin in1
pinMode(in2, OUTPUT); // declare as output for L298 Pin in2
pinMode(in3, OUTPUT); // declare as output for L298 Pin in3
pinMode(in4, OUTPUT); // declare as output for L298 Pin in4
pinMode(enB, OUTPUT); // declare as output for L298 Pin enB
pinMode(servo, OUTPUT);
pinMode(pump, OUTPUT);
for (int angle = 90; angle <= 140; angle += 5) {
servoPulse(servo, angle); }
for (int angle = 140; angle >=40; angle -= 5) {
servoPulse(servo, angle); }
for (int angle = 40; angle <= 95; angle += 5) {
servoPulse(servo, angle); }
analogWrite(enA, Speed); // Write The Duty Cycle 0 to 255 Enable Pin A for Motor1
Speed
analogWrite(enB, Speed); // Write The Duty Cycle 0 to 255 Enable Pin B for Motor2
Speed
delay(500);
}
void loop(){
s1 = analogRead(ir_R);
s2 = analogRead(ir_F);
s3 = analogRead(ir_L);
//============================================================
// Auto Control
//============================================================
Serial.print(s1);
Serial.print("\t");
Serial.print(s2);
Serial.print("\t");
29
Serial.println(s3);
delay(50);
if(s1<250){
Stop();
digitalWrite(pump, 1);
for(int angle = 90; angle >= 40; angle -= 3){
servoPulse(servo, angle);
}
for(int angle = 40; angle <= 90; angle += 3){
servoPulse(servo, angle);
}
}
else if(s2<350){
Stop();
digitalWrite(pump, 1);
for(int angle = 90; angle <= 140; angle += 3){
servoPulse(servo, angle);
}
for(int angle = 140; angle >= 40; angle -= 3){
servoPulse(servo, angle);
}
for(int angle = 40; angle <= 90; angle += 3){
servoPulse(servo, angle);
}
}
else if(s3<250){
Stop();
digitalWrite(pump, 1);
for(int angle = 90; angle <= 140; angle += 3){
servoPulse(servo, angle);
30
}
for(int angle = 140; angle >= 90; angle -= 3){
servoPulse(servo, angle);
}
}
else if(s1>=251 && s1<=700){
digitalWrite(pump, 0);
backword();
delay(100);
turnRight();
delay(200);
}
else if(s2>=251 && s2<=800){
digitalWrite(pump, 0);
forword();
}
else if(s3>=251 && s3<=700){
digitalWrite(pump, 0);
backword();
delay(100);
turnLeft();
delay(200);
}else{
digitalWrite(pump, 0);
Stop();
}
delay(10);
}
void servoPulse (int pin, int angle){
int pwm = (angle*11) + 500;
31
digitalWrite(pin, HIGH);
delayMicroseconds(pwm); // Convert angle to microseconds
digitalWrite(pin, LOW);
delay(50); // Refresh cycle of servo
}
void forword(){ //forword
digitalWrite(in1, HIGH); //Right Motor forword Pin
digitalWrite(in2, LOW); //Right Motor backword Pin
digitalWrite(in3, LOW); //Left Motor backword Pin
digitalWrite(in4, HIGH); //Left Motor forword Pin
}
void backword(){ //backword
digitalWrite(in1, LOW); //Right Motor forword Pin
digitalWrite(in2, HIGH); //Right Motor backword Pin
digitalWrite(in3, HIGH); //Left Motor backword Pin
digitalWrite(in4, LOW); //Left Motor forword Pin
}
void turnRight(){ //turnRight
digitalWrite(in1, LOW); //Right Motor forword Pin
digitalWrite(in2, HIGH); //Right Motor backword Pin
digitalWrite(in3, LOW); //Left Motor backword Pin
digitalWrite(in4, HIGH); //Left Motor forword Pin
}
void turnLeft(){ //turnLeft
digitalWrite(in1, HIGH); //Right Motor forword Pin
digitalWrite(in2, LOW); //Right Motor backword Pin
digitalWrite(in3, HIGH); //Left Motor backword Pin
digitalWrite(in4, LOW); //Left Motor forword Pin
}
32
void Stop(){ //stop
digitalWrite(in1, LOW); //Right Motor forword Pin
digitalWrite(in2, LOW); //Right Motor backword Pin
digitalWrite(in3, LOW); //Left Motor backword Pin
digitalWrite(in4, LOW); //Left Motor forword Pin
}
33
CHAPTER 6
RESULT ANALYSIS
Fire Fighting Robot has developed to reduce human life lost and to develop such a
device that automatically sense fire and extinguish it without human intervention. In
this the fireplace is detected using the IR Flame sensors and are connected to Arduino
UNO, which control the movement of Motor drive that helps the robot to reach the
fireplace and extinguishes it with the pumping mechanisms. In the industry if any fire
accident occurs, there is a need of person to monitor continuously and rectify it. In this
process if any time delay takes place irreparable loss occurs in industry. The firefighting
robot continuously monitors the surrounding and helps in extinguishing the fire.
34
CHAPTER 7
CONCLUSION & FUTURE ENHANCEMENTS
CONCLUSION
This model of Fire Extinguishing Robot aids to share out the burden of fire fighters in
firefighting task. Our project aims to build a real time firefighting robot which moves
in a constant speed, identify the fire and then extinguish it with the help of pumping
mechanism. The detection and extinguishing was done with the help basic hardware
components attached with the robot. Firstly, IR Flame sensors are used for the detection
of fire. Secondly, BO Motors and Rubber wheels are used to navigate the robot to reach
the fireplace. Finally, the robot extinguishes the fire with the help of submersible water
pump and servo motors.
Future Works
While the current version of the fire-fighting robot shows promising results, there are
several areas where further development and enhancement can be pursued:
• Gas Sensors: Incorporate gas sensors to detect harmful gases and smoke,
providing more comprehensive data on fire conditions.
• Multi-Agent Systems: Equip the robot with multiple suppression agents, such
as water, foam, and CO2, to tackle different types of fires.
35
• Adaptive Suppression: Develop adaptive suppression mechanisms that can
adjust the type and amount of agent based on the fire’s characteristics.
6. Environmental Resilience
36
REFERENCES
[1]. Che-Bin Liu and Narendra Ahuja, “Vision Based Fire Detection” International
Conference on Pattern Recognition, pp.134 – 137, 2004.
[3]. J. H. Hwang, S. Jun, S. H. Kim, D. Cha, K. Jeon and J. Lee, "Novel fire detection
device for robotic fire-fighting "ICCAS 2010, Gyeonggido,2010, pp. 96-100.
[4]. K. L. Su, "Automatic Fire Detection System Using Adaptive Fusion Algorithm
for Fire Fighting Robot," 2006 IEEE International Conference on Systems, Man and
Cybernetics, Taipei, 2006, pp. 966-971.
[5]. M. Hefeeda, and M. Bagheri, "Wireless sensor networks for early detection of
forest fires." Mobile Adhoc and Sensor Systems, 2007.MASS 2007. IEEE
International Conference on, pp. 1-6, October 2007.M. Young, The Technical
Writer’s Handbook. Mill Valley, CA: University Science, 1989.
[6]. P.H. Chang, K.B. Park, G.R. Cho, J.K. Kim, W.J.Lee, "A Vision Enhancement
Technique for Remote Control of Fire Fighting Robots", Korean Institute of
37