Or how to become a drone developer without mortgaging your house.

Here is how to make a small, indoor/outdoor quadcopter that you can
fly with either:
* an android phone or tablet
* a legitimate remote
* via your own processing (http://processing.org) sketches on a PC
  (or Android device)

There are lots of optional steps in this project - for example, you
can skip building the quadcopter, and buy one instead - you will still
be to use the Arduino based radio to control it from your
phone/laptop/tablet.  However if you go this route you will miss the
satisfaction of combining the ancient chinese arts of bamboo lashing
and cheap mass manufactured electronic toys...

However you go about it, this is a reasonably cheap project, the most
expensive part other than my laptop and tablet is an Arduino DUE and a
cheaper device could be used if desired.

The ability to write your own code to fly the copter make this more of
a drone than many remote control projects, but you will need to
develop your own code to actually decide what throttle, rudder,
aileron and elevator commands to send it when - a work in progress
based upon a 'Ground station' camera tracking the copter from
underneath is included, but it doesn't fly it yet!

As a simpler exercise for the reader, you can also look into adding
forward/backward/left/right FLIP buttons to the android remote.

Taster video 1: Drone controlled by tablet:

Taster video 2: Onboard footage from flipping (and crashing)

This work was inspired by the 18$ quadcopter thread on rcgroups
(http://www.rcgroups.com/forums/showthread.php?t=1710948) - take a
look at rcgroups for plenty more inspiration.

It also makes use of plenty of other people's work, but most
immediately the processing-serial-android library
(https://github.com/inventit/processing-android-serial/) and the
hubsan X4 and A7105 code from the deviation project

Step 1: Approach, Materials and Safety.

This project leaves all the hardwork of copter flight control, radio
receivers, Electronic Speed Controllers, IMU's and so on to a single
part from a commercial RC copter, the Hubsan X4.  This, and other
parts are all availble as spares, itemised below, however these
little hubsan copters are fun toys in their own rate, and are probably
worth the relatively cheap (~£35) asking price just to get the practice
flying, and they come complete with one battery, spare propellers,
charger & remote.  You should still order spares to build your own

This assembly approach means you get to the stage of flying, and
coding flying routines much quicker than most and is argubly
cheaper as well.  It also means you have to know less about the
fascinating arena of remote control aircraft in general and
quadcopters in particular - so you can and should rectify this by
taking a look at some of the great Instructables on the subject!

The same thing can be done with other brands' parts - in particular
anything that Deviation supports would probably be an easy enough port
to Arduino.  In general, everything here can be done much better -
plenty of room for the reader ;)

A word about safety- big quadcopters are very dangerous.  If you've
got the stomach for zombie movies then you'll find plenty of evidence
for this on the web.  Anything under the control of a collection of
home brew electronics can go haywire.  Flying is tricky for everything
that isn't born to it (let me tell you about the birds and the
bees...) - that includes you and your code - you will crash your

Fortunately these little copters are unlikely to give you anything
worse than a paper cut, but still please do keep the safety and sanity
of yourself and yours in mind when flying - kids, pets and
unenthusiastic partners all deserve to relax without a careening
copter in the face every few minutes.

Also - soldering irons are hot, batteries can explode, kebab skewers
and couches should be kept separate at all times and your neighbours
might punch you if you fly a camera into their backyard.  Which is
both fair and reasonable - if you like people watching find a street
corner cafe and develop a taste for strong espresso and croissants -
sometimes the traditional forms are the best!

* Laptop with Processing and Arduino environments - the instructions are
   Linux specific, but should all work on other platforms with the minimum
   of faffing. 
* Android device that supports USB host mode.  Tested on Motorola Xoom.
* Soldering iron and related gubbins - solder, helping hands etc.
* Scissors
<p>even a7105 module is uunavailable here. could you please tell me any substitute for the same?</p>
<p>even a7105 module is uunavailable here. could you please tell me any substitute for the same?</p>
<p>even a7105 module is uunavailable here. could you please tell me any substitute for the same?</p>
<p>even a7105 module is uunavailable here. could you please tell me any substitute for the same?</p>
<p>i live in india and getting these hubsan motor parts is nt easy for me...i found these coreless motors with same specifications but all of them are clockwise...i just need to knoww if that will be fine or not? can i work with just clockwise or not ?</p>
<p>What edits are necessary in order to allow for control via joystick modules?</p>
<p>would you be able to send me a list of all the parts as i cant seem to find some of them, thanks very much and btw great project. My email is qegslandrover@gmail.com</p>
<p>Hi, <a href="https://www.instructables.com/member/shinyshez/" rel="nofollow">shinyshez</a>, Great project!</p><p>I am currently working on a project in which I'm introducing drones, with swam like behavior, into an architectural<br>environment. I have created a script through processing for the behavior of individual agents within the swam and extracted their positions. At the moment I'm trying<br>to figure out how to make the drones position themselves in the right place. </p><p>My question towards you is, is that achievable within the way you designed the scripts or are they always relying on a user controlling the drone?</p><p>And towards anyone else, have you got any tips, please let me know.</p>
Hey,<br>Sounds like a cool project!<br>Unfortunately, this instructable, with enough imagination, effort, blood, sweat and tears be used as a basis for a project like that, it's probably not the best place to start.<br><br>This project demonstrates how to send the same signals to a drone that a human-driven-remote-control would. <br><br>It doesn't address any of the difficult problems in your project like collision avoidance or identifying the position of a given drone.<br><br>As far as i know the closest solutions for this kind of swarming problem still make use of sophisticated motion capture suites with lots of high speed cameras and dedicated hardware, and are basically 'cheating' because the copters can only fly inside the motion capture environment/room.<br><br>But the good news:<br> 1. I'm not an expert, and could be completely wrong<br> 2. The difficult problems are the most fun, and gain you the most kudos once solved!<br><br>Take it easy<br>Shez
<p>Hi,</p><p>Thank you for your fast reply. We've managed to counter some of the problems you point out. It is meant as an installation during an event, so having borders isn't a problem for our project specifically. I only hoped we could alter the code in such a way (step 6 or 8) that it wouldn't be human driven but vector/data driven. I'll just look around a bit more, try playing around and otherwise alter the idea. ;)</p><p> Once again thank you so much!</p>
<p>can you send me a detailed explanation on making and controlling a drone with an android app nazeri.sami@gmail.com. Please send me a detailed explanation on this only. tankyou</p>
<p>hello.. i dont have an arduino board. is there a possibility to build this with a raspberry pi?</p>
<p>la raspberry es superior a arduino , porsupuesto!</p>
<p>la raspberry es superior a arduino , porsupuesto!</p>
<p>la raspberry es superior a arduino , porsupuesto!</p>
<p>la raspberry es superior a arduino , porsupuesto!</p>
<p>hello Sid iAm 15.....can u control the quadcopter with a Samsung Galaxy j2</p><p>And can u send me the detailed list of the materials required and how to build it</p><p>My ID : abhijith.trio@icloud.com</p><p>Thank you very much</p>
<p>Hello, I'm trying to control my hubsan x4 with my computer via a different software ( I want to use python)</p><p>I have problem during the binding stage, the 2 blue leds start blinking together...</p><p>https://www.youtube.com/watch?v=EmPDMQ5w9BE</p><p>One my computer I use this software : https://github.com/chpatrick/hubsan</p><p>Does someone recognize this strange blinking pattern ?</p>
<p>sir can u send me the codding ... pls if u have java code pls send me that ... pls sir i wait till ur next reply my id smartavinash2011@gmail.com</p>
<p>can you send me a detailed explanation on making and controlling a drone with an android app to prashant.ps444<a href="mailto:pkompally@gmail.com" rel="nofollow">@gmail.com</a>. Please send me a detailed explanation please</p>
<p>can you send me a detailed explanation on making and controlling a drone with an android app prashant.ps444@gmail.com. Please send me a detailed explanation on this only. please</p>
<p>can I use arduino uno?</p>
<p>can I use arduino uno?</p>
<p>can I use arduino uno?</p>
<p>can you send me a detailed explanation on making and controlling a drone with an android app aaronyong811@gmail.com. Please send me a detailed explanation on this only. please</p>
<p><a href="http://processing.org/tutorials/android/" rel="nofollow">http://processing.org/tutorials/android/</a></p><p>Hi,</p><p>This page has an error. Pls help!!! :))))))))</p>
<p>PLEASA CAN YOU SEND ME DETAILS ON CODING THE ANDROID APP </p><p>I NEED IT FOR MY FINAL PROJECT </p><p>HERE IS MY EMAIL</p><p>bosoomama@gmail.com </p><p>thanks look forward to received a reply from you </p>
<p>can you send me a detailed explanation on making and controlling a drone with an android app to <a href="mailto:pkompally@gmail.com" rel="nofollow">pkompally@gmail.com</a>. Please send me a detailed explanation on this only. please</p>
<p>Is there anything I have to change in the code if I am using an arduino mega 2560? I have everything connected and I have quadruple checked the connections and made sure they are correct, but the LEDs do not stop flashing on the receiver.</p>
<p>I bought all materials to built the quadcopter, and I achieved to join radio with receiver. But, despite that LEDs stop blinking and looks like join is working, when I use App for Android o Processing, nothing happens.</p><p>I'm working with 3 SPI pins, and I used these resistors: 2.2 Kh, 3.3 Kh and 4.7 as drdanny had mentioned in comments, only with them, join between radio and receiver success properly.</p><p>Also, I had tried with the code shared by drdanny, and still not working.</p><p>I suppose that, if LEDs stop blinking, the join is working and the circuit is well built.</p><p>What is wrong?</p><p>Somebody could give me suggestions?</p>
<p>Heya,</p><p>Sorry for the slow response!</p><p>I've not worked on this for quite a while now, so I'm going from memory a bit, but as you've worked out it sounds like the comms between radio and arduino, and radio and copter are working, so that leaves the PC/Android-&gt;Arduino leg as suspicious.</p><p>To confirm this 100% you could try changing the arduino code so that the throttle is fixed at 20% once binding is complete. I'd probably do this with the propellors taken off the copter ;)</p><p>If this works, then you know its an issue with the serial comms, and we can dig deeper from there!</p><p>Hope that helps</p><p>shez</p>
<p>Or, Is there something special to do to apps work properly?</p>
<p>I have some questions about this project.</p><p>1. Does hubsan receiver have any sensor like gps, radio, acceleration, etc.?</p><p>2. Can I control flight with arduino, and If I can, How I can do it? I want to try autonomous flight, programming with c++</p>
<p>Hey I too am using C++ to fly the quadcopter. My transmitter just got here so I still have to put that together. Once I do I will let you know how my C++ program goes!</p>
<p>Really?</p><p>How much time did you wait to receive your transmitter? I ordered mine about one month, and I still waiting for it.</p><p>I want to simulate autonomous flight with drones. I have all materials except the transmitter.</p><p>And I don't have idea how implement my own program. I know programming and a little of Arduino, but I don't know how control the drone.</p>
Hi,<br>I'd advise reading the instructable, which will give you a good intro and answer most of these questions, any further questions you have afterwards, ask away!<br><br>Cheers<br>Shez
So, I've put a lot of it together, but I'm having an unbelievably hard time soldering the wires onto the radio signal thing. Not the one that goes on the drone, but the one attached to the arduino. Why they didnt just put holes where the wires should go instead of those stupid indents is completely beyond me. <br><br>Do you have any advice with this? I've been trying to get it for the past few days but they just aren't staying. Or maybe a different way to attach it to a breadboard.
Heya, I think I soldered on little breadboard compatible headers rather than wires, something like these: http://oliversmith.io/wordpress/wp-content/uploads/2011/09/DSC04685.jpg<br> <br> Whether that's easier or not I don't know!<br> Cheers<br> Shez
<p>Hey so I am working on writing my own code to communicate to the arduino in c++. What kind of commands do I need to send to the arduino? </p>
Hey,<br><br>Can't really say without a lot more info about your set up and what you are trying to achieve - however the processing code should be an easy place for you to get inspiration as if you know c++ reading it should be a doddle.<br><br>Cheers<br>Shez
<p>Okay so I actually looked through the arduino code and it looks like it gets values for rudder, throttle, aileron, and elevator. I guess my questions is what are the physical quantities these values represent?</p>
<p>Hey,</p><p>Most of my answers to this sound a bit smart assed, but fundamentally:</p><p> - The same things as they do when flying with the normal controller </p><p> - The same as they do for any quadcopter (google those terms you'll get better pictures than I can draw )</p><p> - If you really mean 'physical quantities' then they affect the rate at which the propellers are spun - after all a fixed pitch, unarticulated quadcopter doesn't have anything else to vary. The relationship between the commands and the spinning is more complex than we have to worry about thanks to all the gyro's, accelerometers and computing power hidden in the little toys.</p><p>Hope that helps somewhat!</p><p>Shez</p>
<p>Thanks! No worries about sounding smart assed. I expected as much for asking questions that seemed obvious.</p><p>James</p>
<p>I have an Arduino Duemilanove. Is this good enough or do I have to also buy the DUE?</p>
Hey,<br><br>the radio chip operates on 3.3v logic, whereas the Arduino Duemilanove operates on 5v.<br><br>If you are comfortable (or don't mind becoming comfortable!) with converting the logic levels, or converting the Arduino Duemilanove to 3.3v I think it should work....<br><br>Cheers<br>Shez
<p>Thank you! Do you know how I would go about doing this? I'm sure it says somewhere online</p>
<p>Google 'logic level converter', 'voltage divider' and have a look at <a href="https://www.instructables.com/member/NicholasH1/" rel="nofollow">NicholasH1</a>'s post below. It may also be possible to take your microprocessors life in your hands and rejig it to run at 3.3v - there may be instructions on the arduino.cc site.</p><p>I've not done any of the above, so that is about the limit of my helpfulness, sorry!</p>
<p>Tried with arduino nano and no luck ... i used the pins but they dont connect ... should arduino nano had different codes ? </p>
<p>could it work with this a7105 ?</p><p><a href="http://www.banggood.com/A7105-XL7105-SY-B-2_4G-Wireless-Transceiver-Module-CC2500-NRF24L01-p-922597.html" rel="nofollow">http://www.banggood.com/A7105-XL7105-SY-B-2_4G-Wir...</a></p><p>thanks</p>

About This Instructable




More by shinyshez:Easy Android controllable, PC Interfaceable Relatively Cheap Mini Quadcopter (or Octocopter!) Drone... 
Add instructable to: