top of page

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Brief description

 

In this project, I want to build a firefighter robot, which can carry out a simple mission:

Finding out the proper path through the maze without collision and finally putting out

the fire of a candle which is at the end of the maze. 

 

 

 

 

 

 

 

To make sure the success of the project, my robot should contains several functions:

 

1. The robot can detect the obstacles, and then make a detour to avoid collision.

 

2. When put inside the maze the robot can detect the wall of the maze and find a right track to go through it.

 

3. The robot is capable of detecting the flame of the candle(either detecting the heat or light generated from it) 

and then use a suitable mechanism to dim the flame.

 

So as I mentioned above, the robot should consist of at least three main sections:

 

The Power System, which enables the robot to move around;  

 

The Sensor system, let the bot detect the obstacles, find the right track through the maze and detect the flame;

 

The section to put out the fire, like an electric fan or a water sprinkler.

 

In addition, if I have extra time, I’ll also build some extra parts for the robot like the LCD screen to show 

the power amount or the remote control system to manually control the robot.

 

 

 

 

Draft sketch of my idea:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

DESIGN PROCESS

 

Step 1: Components&tools inventory

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Here is the rough inventory of the components for this project:

 

1. Arduino UNO board *1

2. L298N motor control *1

3. DC motor or servo motor *3

4. Ultrasonic distance sensor *1

5. Tracing sensor *1

6. Arduino sensor shield *1

7. temperature or photocell *1

8.small propeller *1

9. construction materials (plastic board, foam core, basswood…)

10. jumper wires

11. wheels *3

12. PCB boards

13. Several LED lights

 

 

 

Here's some resources to purchase the components for this project:

 

Sensor kit: http://www.aliexpress.com/item/1-sets-37pcs-Sensor-Kit-Basic-module-Suite-for-Arduino-with-Retail-Box/32243738985.html?s=p

 

Motors: http://www.aliexpress.com/item/1x-DC3V-6V-DC-Geared-Motor-TT-For-Robot-Smart-Car-Chassis-DIY-Anti-interference/32320731265.html?s=p

 

Dupont wires:  http://www.aliexpress.com/item/40-Pcs-Dupont-Male-to-Female-Jumper-Wire-Ribbon-Cable-Pi-Pic-Breadboard-Arduino-SG106-SZ/32331309701.html?s=p

 

Sensor shield:  http://www.aliexpress.com/item/Free-shipping-Sensor-Shield-V5-0-sensor-expansion-board-for-Arduino-electronic-building-blocks-of-robot/643994232.html

 

 

 

Step 2: Body Construction

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Tips:  If you use the table drill to drill some holes on the deck board according to the size of the arduino board and other sensors, it would be much easier to install all the parts on the board. Make sure you use the proper bolts and screws which has smaller diameter than the mounting holes on the arduino board. 

 

The Dupont wires are very important and convient to connect sensors to the shield borad. I spent a lot of time soldering wires onto the pins of the sonsors until I bought those Dupont wires. They made things much more efficient.

 

 

 

 

 

 

Step 3: Coding and testing

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Tips: I studied coding before so based on my own experience, it's super wise that you write and test different parts separately. By doing so, it will same you tons of time in debugging and your entire programme will be more reliable. For example, when I was writing the codes for my firebot, I separated the code by different functional parts: The motors, fan module, flame sensor, and LED. As a result, once there's a problem within the code I could efficiently navigate the possible defect part, and then fix it accordingly.

 

And another tip is to define your own functions(for example: void flame() {}) You can put complex codes into the self-defined functions instead of the main body of your code, which will make the programme tiny and less possible to make mistakes.

 

Code for the sonic sensor: The function of the sonic sensor is to detect the distance in the front or the front obstacles. When the robot is in the maze, the sonic sensor is to tell the robot slow down when running to close to the front wall.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Code for the motor fan: The function for the motor fan is used to turn on the fan when the flame sensor detects the fire. The reason why I let the fan turn on and off for three times is because I found it is highly possible for the fan to fut out the flame the moment when it starts to rotate.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Code for the motors: The function for the motors are the most important and the soul of my project since it is the heart of the robot. I defines four different situations for the robot: Turning left, Turning right, Running straightly and Slow down. The parameters for the decisions of different cases are all depend on the dara gathered from the sensors(intrared obstacle sensors and the ultrasonic sensor)

 

 

FIREBOT DESIGN

                           

                               Allen Zhou

Body panel 1(Deck racks actually..)

Body panel 2(tube mat)

Motor fan(H-bridge also)

Screwdrivers

Dupon wires(Both female to female

and male to female)

Battery connector

Wired motors and wheels

H-bridge(L298N)

Batteries(9v)

Arduino UNO R3

Sensor shield V5.0

RGB LED

Buzzer

Ultrasonic sensors

Infrared obstacle sensor

Screws and bolts

Step 4: Experiments & Debugging

Problems and solutions:

The same to my initial design description, I built a maze for the robot to run through. But when I put the robot inside and had a test, I found that the robot was always spinning at the turnning point. After I asked my teacher, Michael, he gave me an effective advice--to add a sheet of paper at the conrner. And then I figured out what the problem was: everytime when the robot was turning, the obstacle sensor cannot detect the corner because the distance was too far!!(Remember, the obstacle sensor is totally different from sonic sensors. They only work with 10 centimeters or even less!)

 

So, the function for the paper is to eleminate the sharp corner of the maze and let the obstacle sensors detect the boundries of the maze.

Utility of the LED light

When I was building and connecting the main board for the firebot, I almost ran out of the pins. But I still decide to add a three-color RGB led on my robot. Why?

Some people think the led is just an add-on component, but I don't think so. For me, I regard the led light as the indicator of different cases and most importantly, the navigator for the defects of the sensors. For example, I apply purple color and blue color onto the led when the robot is turning left or right. And the red color means both of the obstacle sensors detect the obstacle and green color means the opposite: neither of the sensor detects an obstacle. So I can tell from the color of the led which mode the robot is in and if one sensor doesn't work, I can also easily figure it out from the color of the led.

 

 

Blue: Turning right

Purple: Turning left

Red: Obstacle on two sides

Green: No obstacle detected

Step 5: Video and document

Final video documentory:(maze and flame)   MUST WATCH THIS! That's awesome!

 

http://vimeo.com/127390934

 

Obstacle and motor test:  

 http://vimeo.com/127391756

 

LED situation test:

http://vimeo.com/127392447

 

Ultrasonic sensor test:

http://vimeo.com/127392730

 

Last step: Take a photo together!!!!!!!!!

THANKS FOR READING !!!!!!!!

bottom of page