I am planing to control my RC helicopter with my computer. I have experience of programming in .Net. Could we use .Net to control RC helicopter? From where can I start this project?
closed as off-topic by Shahbaz, DaemonMaker, Ian, Andrew♦ Feb 12 '14 at 19:19
This question appears to be off-topic. The users who voted to close gave this specific reason:
- "Unbounded Design Questions are off-topic because there are many ways to solve any given design problem, so questions that ask for a list of approaches or a subjective recommendation on a method (for how to build something, how to accomplish something, what something is capable of, etc.) are off-topic." – Shahbaz, Ian, Andrew
Yes you can do it and there are a number of different ways as far as the language you choose its your choice because you can manipulate serial ports with any language. Think of an RC Heli as another computer. What comes to mind is you just need a medium for communication. Choosing what medium of course depends on how much data you want to send and receive and what range you want.
Bluetooth: if you need only few meters range and small amount of data
RC Transmitter Another way is to connect the RC transmitter to your computer directly. See this blog Post
Wifi can also be used to communicate see this Post
If you need more help give more details what you intend to do.
You can use onboard microcontroller like FEZ cerb40 which you can program using .NET micro framework. You can use this to control servo and ESC. You can use Xbee or any similar wireless serial communication system to receive commands from your computer using serial terminal program.
Waqas, your question is a little vague. So the simple answer is of course why not. But do consider the following:
What type of RC helicopter is it?
RC helicopters come in many shape and sizes, and they require special mixing for each type. For example a collective pitch/roll helicopter uses different mixing than a non collective type RC. So given this you will have to think about how many different types do you wish to support.
In some cases the mixing is done onboard the helicopters most commonly known as FlightControllers(FC). At the same time some advanced Transmitters also do certain pre-mixing before sending commands to the FC.
How do I connect to it?
Again the possibilities here are endless. You can tether to it from your laptop, but then you are limited to how far it can go. How about instead you use an onboard controller which you can control using WiFi or bluetooth, try http://www.buildyourowndrone.co.uk/ArduPilot-Mega-s/36.htm. You could build a program to send commands to your ArduPilot over UDP.
How do I start tinkering?
- Try maybe starting small, try controlling and RC car, trust me it is a lot easier to get past the initial problems, and you will experience the problems in easier dimensions.
- See which parts you can pull out and replace with your application
- Try to turn you PC into a transmitter
- When ready replace the Car with the Helicopter
- If you wish try replacing the FC onboard the Helicopter with your custom version should you choose to.
I am for learning actually doing something similar, by building an onboard framework use to control many types of RC vehicle http://dashee.co.uk. This is very much a work in progress, so I recommend you use ArduPilot to control an RC over Radio/Wifi using your .NET program.
I've done a similar project before where I wrote the control program with .Net.
I think the first step is deciding how much of a role do you want the computer to play in controlling the helicopter. If you want the helicopter to be rather autonomous and simply receive commands from the computer but decide how to execute those commands you will likely need to use a microcontroller on-board the helicopter.
If you want to control everything via transmitting sensor data from the helicopter and then having the computer do all the control, you won't need as much hardware on the helicopter itself. You will just need a wireless data link.
When I worked on my project, I used the first architecture because I didn't want loss of communication with the computer to result in a total loss of control.
Do you have microcontroller or assembly language experience?