Hello everyone,
I'm planning to build a Drone with my Arduino Uno. Now at this Website I read, that the Texas Intruments LaunchPad has a 16bit PWM timer while the Arduino has got only a 8bit PWM timer.
Is the 16bit timer way better than the 8bit timer? A drone has to be very precise. Is there a big difference of the accuracy between Arduino and LaunchPad?
antondriller:
I'm going to control the motors using PWM
My guess is that controlling the motors with 8-bit PWM (steps of less than 0.5 percent) would be sufficient. The air in which the drone flies is not that precise.
Yes.
"– Two 8-bit Timer/Counters with Separate Prescaler and Compare Mode
– One 16-bit Timer/Counter with Separate Prescaler, Compare Mode, and Capture Mode"
Many drone controllers are based on the 328P. This one is basically a Nano, with a FTDI232 for USB interface and a '328P to control the 4 ESC modules that power the motors.
All parts were purchased at www.hobbyking.com The drone has not flown yet, I think the next step is to attach the blades and balance the motor/blade combination.
Very little precision is needed in a drone motor controller, nor is actually present (the motor+prop response
is very non-linear and varies between motors). A drone works by a set of control feedback loops continually compensating for errors in attitude and position. Any error and non-linearity in the propulsion controls
is swallowed by the control loops.
8 bit is fine. Concentrate more on the refresh rate of the control loop, and in reducing latency between
sensor readings and their use in the control loops. Its important the ESCs are programmed for drone use
(low latency again).
What needs to be precise and well-behaved is the IMU measurements. This is why its very important
to isolate the IMU from vibrations or electrical interference from the motors.