6
\$\begingroup\$

I am interested in controlling an RC helicopter using a desktop/laptop computer. I see two possible approaches for such a project:

  1. Wire the RF remote to a PC either directly or through some microcontroller.
  2. Install a microcontroller directly on the helicopter and use Wi-Fi, Bluetooth, or Zigbee to communicate with the microcontroller.

My end goal is to use motion tracking data from a system of IR cameras piped into a feedback control system to develop algorithms to control flight paths. The motion data will come from a separate system, but what I am looking for here is a 'best practices' approach for physicality wiring (or wirelessly linking) the low-level control of the helicopter to a computer.

What would be the most efficient way to approach this problem?

\$\endgroup\$
  • \$\begingroup\$ This type of question is not welcome here. It will probably be closed as subjective and argumentative. See here for more information. \$\endgroup\$ – Daniel Grillo May 12 '11 at 21:43
  • 7
    \$\begingroup\$ I very carefully examined the FAQ section before asking this question so if it falls under an unwelcome category, then I would suggest that be made explicitly clear in a highly visible place. That said, I don't agree that my question is 'poorly defined' or that I have 'little to no experience' in problem domain. I asked a "specific electronics design problem", namely a request for expert input on a project in the planning stage of development. If this is not suitable, then can you suggest a more appropriate form of the question? \$\endgroup\$ – Sean May 12 '11 at 21:58
  • \$\begingroup\$ Your question is more suited to the diydrones.com forum. Try there. \$\endgroup\$ – jamesotron May 12 '11 at 22:14
  • 1
    \$\begingroup\$ Its a decent question, but it is subjective. It is similar to asking a question asking what the best approach to writing a program to stream a web cam. Some might say you should go with a web programming environment like flash while others can offer a solution using c ++. And then another person might not talk about programming language and just talk about communication protocols. Give us more detail off what you want and then we can help. \$\endgroup\$ – Kellenjb May 12 '11 at 23:10
  • \$\begingroup\$ I removed the part asking for links to guides and such. I think I misinterpreted your intention. I thought the guides were your primary intention and the large number of flags led me astray also. I made a minor edit to your question. Please forgive me if this entire process has caused any grief, we are not paid and try to give the most time possible to moderation activities and it is not perfect. Feel free to come talk to me in chat if you ever have an issue. \$\endgroup\$ – Kortuk May 14 '11 at 6:13
5
\$\begingroup\$

Since you are trying to create a control system that will control the helicopter in real time, one of your biggest things to look for is low latency links. This pretty much will throw out WiFi as an option unless you are able to guarantee that your WiFi network will be fast enough and wont be dropping any packets.

So options left are XBee, Bluetooth, hacking the current controller.

Hacking the controller will probably provide for the lowest latency link since it is a wireless connection that was specifically designed to fly the helicopter. This will require you to do some reverse engineering of the controller unless the controller already provides some information on how to interact with it. The hacking involved here might be simple. You will just have to make the controller think that a human is actually moving the controls. This can either be done by physically interacting with the controller, or you can look to see what signal the controller is using for each control, and then just fake that signal.

XBee and Bluetooth can perform in pretty similar manners. Many modules will build a buffer before sending a packet on, you will need to program the modules to not buffer too much. With this option the reverse engineering will be on the plane instead of the controller. Depending on how nice this helicopter is, there might be a prebuilt control system on the plane in order to keep it flying easier. If this is the case it might be difficult to figure out how to add XBee or Bluetooth to it. If it is a simple helicopter and/or you want to hack this side, it would probably be easiest to just find out where the wires for the motors are and control them directly with your microcontroller. This will give you lots of flexibility on what you want to do; however, flexibility does also result in the possibility of more work for you.

I hope this helps you out. There is no "right" answer here, it is just where your comfort lies and how much control you want.

\$\endgroup\$
2
\$\begingroup\$

One more (relatively easy, no hardware mods required) option you could try is:

Use an off the shelf heli, with some sort of standard RF non-spread-spectrum link, and use a Software Defined Radio like the HackRf to spoof the signal. Your software would control the SDR, which would send the appropriate signal to the craft as if it were the remote.

People have attempted this before with success.

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.