Fixed-Wing Drone on the Cheap

Some little while ago, I picked up an e-Flite Apprentice, a fairly common foam "trainer" model airplane which is normally sold "ready to fly" with everything but the battery and charger. It was part of a lot of stuff that I picked up for ten dollars, and came without the radio. First I repaired it and mounted a HobbyKing HK-T6A v2 radio, but I quickly decided that it should be more than just a plane.

As an extremely inexperienced RC pilot, I really didn't want to just smash the plane up right away. The modern versions of the plane will right the plane for you if you get into trouble, and that seemed like valuable functionality which was not only built into the receiver, but missing from this old version of the plane in any case. But as well, it's quite possible to have your plane actually return to the takeoff location and land — in fact, it can even take off for you. All that you need to add to any RC airplane to get this functionality is a very simple little computer.

Apprentice Flight Controller

I recently built a quadcopter using an off-the-shelf flight controller, but I decided that for the fixed-wing drone I would try to save some money. Since it has considerably more potential range than the quad, I decided I wanted it to be able to fly waypoints, so that meant using more than just an atmega328p-based FC — it meant getting into the Arduino Mega. This uses the atmega1280 or atmega2560, substantially more capable processors. This being 2015, I went with a 2560-based solution, the Mega2560 Pro Mini. This is a miniaturized version of the Arduino Mega 2560, the current king of the AVR-based Arduino models. It's got piles and piles of pins, including four serial ports. There are other small versions of the Mega, but none of them are both cheaper and include a USB port. The USB port is itself an atmega16u2, which can be reprogrammed to serve other tasks or to provide a non-serial USB interface.

Radio and Flight Sensors

While the Quad uses the HobbyKing KK Mini for simplicity's sake — it includes a 6DOF sensor on the board — buying an Arduino Mega-based flight controller adds considerable cost. I chose to use the MPU-9250 9DOF (3 axis each accelerometer, gyroscope, and magnetometer/compass) and a BMP180 barometer. This is probably the cheapest 9DOF sensor worth using at the moment, and it is well-supported. The sensors should be mounted as closely as possible to the center of gravity of the craft to be effective, and I may well move them from their current location to some as-yet-nonexistent cross member. You can compensate for more or less any installation orientation, but they are installed with the correct facing.

Apprentice GPS

That alone is enough to give a whole lot of functionality including stable flight, level flight, "acrotrainer" mode which is the one where it lets you do anything you like but auto-levels if you let go of the sticks, and other functionality besides. But the really good part is the GPS module. This time I went with the NEO-7M, which is the newer, faster, equally-cheap version of the NEO-6M that I used in my quad. Actually, this module was a couple of dollars cheaper. If you only have a 6DOF sensor board, you can get a GPS module with an integrated 3DOF magnetometer; the cost is about the same either way. For $13 I got a module with a config EEPROM and a battery. You definitely want the battery for fast start; it looks like Multiwii 2.4 will auto-configure uBlox 6 and 7 GPS modules and I'm not sure you really need the EEPROM, but you should probably get it anyway.

I also dropped two dollars on a SPI microSD card interface. While the flight sensors use the 4-wire I2C bus (counting power, that is) the microSD card takes six wires. The idea is to be able to do sensor and GPS logging to the card. My flight controller has a whole load of excess pins and I would like to add an air quality sensor, temp sensor, and some other goodies. I'm also considering a $5 serial-connected VGA-resolution camera module, but if I go that far, I should probably add FPV and telemetry. As it stands, I will be able to aim a digital camera down and use a servo to trigger the camera, and take automatic aerial photos at waypoints. Now, I just need to get this SD card functionality working; I've been hacking in SD logging functionality based on someone else's work on Multiwii 2.3.

I think it's worth saying a word about cheapness here; if you went out and bought this plane to use as a platform, it would cost you two hundred smackers. There's no particular reason you shouldn't do that; it's a well-regarded plane, if not amazing, and if you choose to make it into a drone later you can simply disable SAFE and wire up the outputs on the RX to your flight controller. However, if you were attracted by the idea of doing this from scratch yourself for little money, someone ought to tell you that you can pick up a foam flyer about this size on eBay for thirty bucks, and you can get a motor and ESC for ten. Servos will run you another ten dollars or so, and the HobbyKing HK-T6A v2 radio is only $30 (if you count the programming cable... which you want.) It's not necessary to spend $200 all told, even including the radio. If you get a cheaper plane, you can spend more money on the radio! That will let you have more auxiliary channels, which means finer control over your plane. After spending one channel on flaps, I only have one left to use to control flight modes. You can select up to six flight mode settings with one channel, but realistically that's difficult to control without telemetry. If you add a 5V piezo beeper (which is on my list; they're two bucks, I have one coming) then you can make the plane beep when you change aux modes, which makes it feasible if not convenient to use six modes on one channel.

What's next for my drone aspirations? I've got two plans. I want to implement yaw and hop control on my electric 4x4 truck (a Sparrowhawk XXT) and I want to build an ultra-minimal fun foam flyer with Arduino Nano, recycled laptop lithium-ion batteries, and a MPU6050 6DOF plus BMP180 baro, all of which I've got already except for the batteries.1 All I need is the flyer, which I hope will be one of those styrofoam gliders that you get at the mall and play catch with. I've been mulling over how to vacuuform the nose cone...

  • 1. Had a set, used them to make a USB power bank.

Comments

The obvious upgrade would be to use a 10DOF sensor from the beginning. You can get a board with a MPU-9xxx and a BMP280 or a board with a MPU-6xxx, a separate 3DOF mag sensor, and a BMP180, for $10. I'm going to try out both and get back to yall

Add new comment

Default

  • Use [fn]...[/fn] (or <fn>...</fn>) to insert automatically numbered footnotes.
  • You may link to images on this site using a special syntax
  • Web page addresses and e-mail addresses turn into links automatically.
  • To post pieces of code, surround them with <code>...</code> tags. For PHP code, you can use <?php ... ?>, which will also colour it based on syntax.
  • Internal paths in single or double quotes, written as "internal:node/99", for example, are replaced with the appropriate absolute URL or path. Paths to files in single or double quotes, written as "files:somefile.ext", for example, are replaced with the appropriate URL that can be used to download the file.
  • Filtered words will be replaced with the filtered version of the word.
  • Lines and paragraphs break automatically.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <blockquote> <q>

Issue

  • Lines and paragraphs break automatically.
  • To post pieces of code, surround them with <code>...</code> tags. For PHP code, you can use <?php ... ?>, which will also colour it based on syntax.
  • Allowed HTML tags: <a> <em> <strong> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <dd>

Drinking Game

  • Web page addresses and e-mail addresses turn into links automatically.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <img> <p> <br> <pre> <h2> <h3> <h4>
  • Images may be embedded like: [image:node_id align=alignment hspace=n vspace=n border=n size=label width=n height=n nolink=(0|1) class=name style=style-data node=id] Leave off any attributes you don't want.
  • [img_assist|...] tags will be displayed, maybe. Please don't make more of them.

Plain text

  • No HTML tags allowed.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Lines and paragraphs break automatically.
CAPTCHA
This question is for testing whether you are a human visitor and to prevent automated spam submissions.
Refresh Type the characters you see in this picture. Type the characters you see in the picture; if you can't read them, submit the form and a new image will be generated. Not case sensitive.  Switch to audio verification.