For a class project, we built a quadrotor using the Sparkfun Razor IMU and a Atmega32U4 running the PID controls. After about a month of work, we successfully flew it with great results (alright, it wasn't super stable, but it stayed up!). Check it out at www.wyvernupenn.blogspot.com.
Very cool. Congratulations!!! Man... I love that arms design. Have you used acrylic, fiberglass or carbon fiber on machined parts?
The Atmega32U4 have two 16bit timers. It's very interesting to achieve four nice PWM signals. The data-sheet advises that the Output Compare Registers isn't double buffered on that chip. How do you solved it and synchronized the OCR updates to change it's value at the start of each duty cycle?
Can you show something about the code part of circular buffer to optimize the serial communication with the IMU? I'm trying to do that with interrupts on Atmega328 but isn't working so well. My best approach about it was achieved with NewSoftSerial library used to receive the serialized IMU binary data.
That is fantastic work, I am impressed simply because you used the Razor IMU and those ST gyros simply suck for Quads. They are massively prone to any vibration so to get that IMU flying a Quad is a very big achievement, well done.
Comments
The Atmega32U4 have two 16bit timers. It's very interesting to achieve four nice PWM signals. The data-sheet advises that the Output Compare Registers isn't double buffered on that chip. How do you solved it and synchronized the OCR updates to change it's value at the start of each duty cycle?
Can you show something about the code part of circular buffer to optimize the serial communication with the IMU? I'm trying to do that with interrupts on Atmega328 but isn't working so well. My best approach about it was achieved with NewSoftSerial library used to receive the serialized IMU binary data.