Hi Chagrin, thanks for the suggestion!
I am doing this as a university project, and if I replace the gyro with KKmulticopter, does it seem like I'm cheating? What I'm trying to say is that, is the KKmulticopter something that is pre-programmed and all I have to do is just plug and play? I need to show that I've done some work to deserve some marks.

I managed to get the signal thru the Duemilanove (Receiver - Duemilanove - Gyro), but there seem to be something wrong. The propeller speeds increase when I pushed the throttle stick up, but they were rather faster than I expect them to be. And when I lower the throttle stick position to decrease the speed, the propeller speeds didn't seem to change, and when I lower the stick pass a certain level the blades stopped completely.
I simulated everything on the oscilloscope before testing on the system and it seemed fine, except for one problem. The frequency of the signal that the Duemilanove changes ( +- 0.5 Hz) and sometimes I notice that the input signal from the receiver module also changes slightly by the same amount. Would this change in frequency affect the functionality of the whole system? Or is it because of my codes?
Here are my codes (I'm no expert programmer, please correct me if there are flaws in my codes):
#include <PlainPWM.h>
// Initialise
int pin_in = 7; // Input pin
float pWidth_in; // Input signal pulsewidth
float freq = 69.93;
float dutyOut;
// Create PWM object
PlainPWM PWM;
// Declare ports and pins
uint8_t pin_out = PINB0;
volatile uint8_t *port = &PORTB;
// Setup
void setup()
{
PWM.InitPWM(port, pin_out, freq, 0);
};
void loop()
{
pWidth_in = pulseIn(pin_in, HIGH); // microseconds
dutyOut = (pWidth_in/1000000)*100*freq;
PWM.SetDutyCycle(dutyOut);
};
PlainPWM.h library was developed by Mr. Didier Longueville. You can find his article on it here :
http://didier.longueville.free.fr/arduinoos/?p=2193Thanks!