Go Down

Topic: Has anyone controlled AR.Drone motors directly with an Arduino? (Read 2544 times) previous topic - next topic

secretcharly

As the title says, I'd like to know if anyone has ever achieved this. I got a Ar.Drone Parrot 2.0 that doesn´t work right and I did an interface where you can select 4 points in a map to form a polygon and trace a route to 'scan' all the polygon but don't any working drone ATM and I don´t have the money to repair this one (a friend gave it to me not working, it seems like the mainboard is damaged or something) but I have many arduinos and modules for it. I want to use the not working drone's structure and working motors (with motor controller) but I don't have idea of how to set the speed for those motors. They are brushless and the the motor controllers have an Atmel8 microcontroller. What kind of signal and to what pins do I have to send it? PPM, PWM, strings?

Any help will be very appreciated.

zoomkat

Your best bet might be to go on ebay and get an inexpensive ESC for each of the motors.
Google forum search: Use Google Search box in upper right side of this page.
Why I like my 2005 Rio Yellow Honda S2000  https://www.youtube.com/watch?v=pWjMvrkUqX0

DuaneDegn

What kind of signal and to what pins do I have to send it? PPM, PWM, strings?
Apparently it's a 115200bps serial protocol.

Here's a link to more information.

http://blog.perquin.com/blog/ardrone-motor-controller/

secretcharly

Thanks, yeah I found that link today at morning which at least says the bps and the order of pins. I'm still trying to understand how the bytes are read from the motor controller and why does it have Rx and TX in the same pin, maybe making the two pins of the ATmega8a (Pin 3 TX+RX (ATmega8a Pin30+31)) working at different time.

DuaneDegn

I'm still trying to understand how the bytes are read from the motor controller
I didn't really follow what sort of information the motors are sending back to the controller.

and why does it have Rx and TX in the same pin, maybe making the two pins of the ATmega8a (Pin 3 TX+RX (ATmega8a Pin30+31)) working at different time.
It is pretty common for devices controlled with a serial line to use a single duplex line where data is send both ways down the wire. The ATmega8a uses the normal two I/O pins (I assume these are the normal UART pins). When using two pins with a single wire, you need to make sure the serial driver is setting the transmit pin to an input while receiving otherwise the tx pin will hold the line high or low which would prevent the rx pin from receiving.

This sure looks like an interesting project. I hope you share what you learn as you proceed.

kenfink

Has anyone here made any headway on this? 

I'm hoping to make a physics demo with a tethered AR Drone to show how turning each motor on and off makes it roll/pitch/yaw.  All I want is an arduino to turn each motor on and off - no use of the original computer. 

Can I just send serial data over the TX/RX Pin, plus ground?  Do I have to initialize motors on startup every time?  Is there any actually-working code for this? 

Thanks!


Go Up