Firefighter Drone

by Xalllle
(Please note that this project was created in the Spring semester of 2024, but the article was published on the date above)

Introduction

Engineering students are required to take Introduction to Engineering Design. The second project in this class is called the main project, and students are required to do market research to create a marketable solution to a major world problem. My team decided to follow a framework to create a fleet of drones which would be able to supply a continuous stream of fire suppressant. If hundreds or thousands of inexpensive drones were created, this could potentially be deployed continuously in a region. Our team’s task was to create one drone which would be part of the fleet.

Design

My task was to design the electronics subsystem. The electronics subsystem had to receive and process input from the user and sensors, and then control the motors as well as the fire suppressant system. Additionally, it had to supply power to all components of the drone.

I/O

First, I identified the inputs and outputs of this system. The drone needed to be capable of knowing its location and orientation, the drone needed to be capable of detecting smoke and wildfire heat, and the drone must be able to report its findings to home base remotely.

Location/Orientation

For location and orientation, the drone has a 6 axis accelerometer/gyroscope and GPS capabilities. For the gyroscope, I used an MPU-6050 board. Retrospectively, I should have gotten a board with a built-in motion processor. Since I did not have that, I used a first-in first-out scheme (FIFO) which would be triggered by an interrupt provided by the sensor. This greatly degraded performance and the arduino sometimes had difficulty keeping up with the gyroscope and other processes on the microcontroller. I was having difficulty getting the GPS to work. I downloaded the Icom GPS utility and started troubleshooting, but I found that it would only detect a single satellite at a time, and not for very long. I then realized that I was in a concrete and rebar building, so I went outside and was able to detect many more satellites and my issue was solved. The simplest solutions sometimes work best.

Wildfire Detection

For detecting smoke and heat, I used an 8x8 infrared sensor and an MQ gas sensor. The plan was to have the drone “seek” the smoke, and then once close enough, position itself a few hundred feet directly above the fire to release the fire suppressant, similar to rain. The implementation of these was very simple, as I only needed to take libraries to read the infrared and gas sensors I2C data and include it in my control scheme.

Data Transmission

Finally, to report the data, a very simple 2.4GHz transceiver was used. In practical application, most of these sensors would be extremely inadequate due to either IP rating or lack of long distance transmission, but our demonstration would be done outside in a field.

PCB Design

I was able to prototype all of the sensors on a breadboard, and then I was prepared to make a PCB design using KiCad. I began by planning for power distribution. My teammate had identified four motors that we could use, each of which were listed to use a maximum of around 20-30 amps. For our drone, this was extremely overkill and making the power handling of the PCB that high would have been very difficult. I was able to design the PCB to handle about 10 amps per motor with 1oz copper (the least expensive copper thickness). This was a design risk that would be intolerable in most circumstances, but I took the risk since this project was paid for out of pocket.

I designed the power input to the PCB with a XT60 connector (which would be connected to a ~12v supply) and then it was directly distributed to the four electronic speed controllers (ESCs) which were soldered directly to the four motors. Since the operation of these motors was unpredictable in nature (due to a constant need to adjust for wind, sudden acceleration, etc.), I used a decoupling capacitor for every motor. To generate the 5v supply, I used a linear voltage regulator since the power draw of the sensors and controller were calculated to be well under one amp. With the correct capacitors specified by the datasheet, this solution was sufficient even with the noise created by the motors. Additionally, I tried to locate the high current traces away from the data traces to prevent crosstalk. Finally, I added the pins that would connect the microcontroller data output to the ESC. There were numerous errors that I made in this PCB. The first error I made was reversing the power pins on the radio transceiver, which immediately prevented remote operation. The gyroscope pinout was also done incorrectly, and the pins to send data to the ESCs were not connected at all. I attempted to fix all of these issues by soldering wires on the back of the board, but I was only successful in fixing the ESC pins. This meant that, at the time of the class, I was not able to make the drone fly, and the motors would only work with the drone tethered.

This article was meant to be a brief overview of design choices and a way to remind myself about this project. If you have any comments or questions, feel free to email me at [email protected]!