Hello, first post here so I wanted to lay my project out. Unfortunately I have no experience programming Arduino, but I am a fast and willing learner. I will describe my goal, and I then will be interested in what path of learning I need to take, to gain the knowledge to achieve my goal. I'm not asking for someone to do this for me or tell me how to do this, but rather, how and where I can learn what is needed, so that I can develop and create this myself.
My goal is to take the output from the AR Drone quadcopter and adapt it to be four PWM signals that regular ESC's can use. Currently the AR Drone outputs to four proprietary motor controller / esc / motor combos, so there is no easy interchange to use larger motors, for building bigger and better things.
Here is a link to a page that explains about this communication stream for the motors, the most I've found anywhere:
http://blog.perquin.com/blog/ardrone-motor-controller/
The Arduino would be tasked with several functions. First, in order to keep the AR Drone "happy", it will need to communicate data back to the AR Drone's board in a way that supplies the information in place of motor controllers, so the AR Drone does not detect anything wrong. If a motor controller is damaged, the AR Drone will refuse to fly - it doesn't blindly give commands to the motors unless it knows they're all working (including not stalled out).
Second, the Arduino will need to quickly monitor what the AR Drone is trying to tell the four motor controllers to do for power levels. This will involve interpreting the I2C connection for each of the four motors.
Third, the Arduino will need to compare the motor values to each other to figure out what their differences represent, such as 45% on the left and 55% on the right actually meaning a roll left (at a certain rate), which it can then multiply by a gain (knob or variable), and apply the new PWM outputs. The gains that would need to exist would be throttle, roll, pitch, and yaw. For example, using this with bigger motors in a bigger airframe, we might need a gain of 90% to lower the throttle outputs, but when rolling, this would need to be applied as a greater difference between PWM outputs, in order to have it react at the same roll rate the AR Drone is expecting. This really is a tuning scheme common to all DIY flight controllers, adjusting the response sensitivity. It's just that here, we are trying to match it up to what the AR Drone is used to.
Finally, the Arduino will need to output to several PWM channels, which will feed ESC's for the brushless motors as desired. There is the desire to have this be a "fast" PWM signal, such as 400hz.
I know enough to modify video games and was able to root my Android phone, so I'm not a total novice to program-minded things. I actually can work wonders in Lego NXT-G which is a graphical interface of LabView I believe, so I think I could learn what it takes to achieve what I'm shooting for. It will be a heck of an ordeal, but I'm willing to learn. I expect I'll need to start out by getting the big Arduino learning kit from Radio Shanty, and after working through that, will need to start seeking out people's projects that have done the various aspects I need, such as I2C communication, PWM output, etc.
The AR Drone is a great aircraft and offers flight advantages that no other flight controller has, such as using the downward facing camera to hold horizontal position in a precise hover aided by ultrasonic height sensors. I know of no other flight controller that could do that, short of something like an ArduPilot Mega which you would have to write the entire camera-tracking position-hold thing for. This adapter seems like the most reasonable path for me to get more quadcopters flying just like the AR Drone, by using the AR Drone flight boards inside.
Thank you for your time and I appreciate any input you can give me. I've tried to ask around the AR Drone forums to find somebody who knows Arduino well enough to do this, but to no avail. So it looks like I'm going to take on this mission myself. I look forward to the help you can give.