Hi all,
I have finished my second quadcopter with ArduIMU. This time is a "mini" version with only 28cm from rotor to rotor and has the new Jordi´s magnetometer integrated!.
This tiny machine is fantastic, with a great stability. Look at the hands-off part of the video inside house!!
Very funny :-) Video:
Specs:
Motors: 1811 2000Kv 10grams brushless motors
Props: standard 5x3
ESCs : Turnigy 6A
Batt : 2S610 Lipo
Weight (RTF) : 180grams
Again it´s a very cheap and easy setup. Because I use standard propellers I mounted left and right motors with some twist. I´d really love arduIMU flat hardware...
Look at the PPM output Rx, Is this a new 2.4Ghz receiver form DIYDrones?
No, it´s a "lighweight" (4.1grams) mix between Spektrum AR6110 Rx and Jordi´s PPM encoder. This is nice for DIY projects...
The code is improved from the old version. This one has the magnetometer integrated so now we don´t have drift
on yaw axis, better implementation for the D term on the PID controler (more responsive to user inputs), same safety improvements, fast ESCs update rate (166Hz), new PID tunning...
But this history had an interesting lesson for me... The prototype you see here are really the second one, the first one was a dissaster... (flys bad...)
Do you want to know the "small" difference between them? This:
For the first one, I use an U shaped aluminium arms to save some weight. Well this shape is very bad in torsion and generates a lot of vibrations. This vibrations saturate the gyros (our gyros are quite sensible on vibrations because the low internal resonant frecuency). You could see here a graph of the gyro output value vs Throttle and you can see clearly the effect...
I change the arms to the square shape (8x8mm) and problem gone!! Perfect stability... :-) Vibrations are our enemy (Lesson learned)
Here is the new source code: Quad1_mini_20.zip (see notes.txt inside)
Old post (first version) here
New ArduPilot Mega will be a perfect platform for Quad´s also, so stay tuned...
Jose.
Comments
I've also ordered the arduimu and the ppm encoder. Just need to know how to load the software.
sorry for the delay (I have been out...)
Thomas, I had not think about an X configuration, do you think it could have advantages over the + config? and yes I think it´s only a change on the mix...
Thomas, on your proposed code for counter rotating propellers I don´t know, why you change the pitch signs?
Ken and Joe, yes it´s posible to use other Rx, the only requirement is that you need the PPM signal. For the Futaba 2.4ghz you will need a PPM encoder (like me with the Specktrum radio) but for 72Mhz and 35Mhz Rxs there are some models that has the PPM output implemented (there are good information on this on paparazzi site and other quadcopter forums)
Jose.
Do you have the interconnection diagram of your new toy. I just order the arduimu+v2 ,i noticed the the rx is really different from a normal rx. Is it really mandatory to use the above rx that you used ?
thanks
Proposed change to motor control code for counter rotating propellers on right and left motors:
Attitude_control();
// Quadcopter mix
//Servo_Timer2_set(0,ch3 - control_roll - control_yaw); // Right motor
//Servo_Timer2_set(1,ch3 + control_roll - control_yaw); // Left motor
//Servo_Timer2_set(2,ch3 + control_pitch + control_yaw); // Front motor
//Servo_Timer2_set(3,ch3 - control_pitch + control_yaw); // Back motor
// Quadcopter mix for counter rotating propellers
Servo_Timer2_set(0,ch3 - control_roll + control_yaw); // Right motor counter rotating
Servo_Timer2_set(1,ch3 + control_roll + control_yaw); // Left motor counter rotating
Servo_Timer2_set(2,ch3 - control_pitch - control_yaw); // Front motor
Servo_Timer2_set(3,ch3 + control_pitch - control_yaw); // Back motor
}
// Attitude control
//comando_rx_yaw = 0;
Attitude_control();
// Quadcopter mix
if (ch3 > (MIN_THROTTLE+40)) // Minimun throttle to start control
{
//Servo_Timer2_set(0,ch3 - control_roll - control_yaw); // Right motor
//Servo_Timer2_set(1,ch3 + control_roll - control_yaw); // Left motor
//Servo_Timer2_set(2,ch3 + control_pitch + control_yaw); // Front motor
//Servo_Timer2_set(3,ch3 - control_pitch + control_yaw); // Back motor
Servo_Timer2_set(0,ch3 - control_roll + control_yaw); // Right motor counter rotating
Servo_Timer2_set(1,ch3 + control_roll + control_yaw); // Left motor counter rotating
Servo_Timer2_set(2,ch3 - control_pitch - control_yaw); // Front motor
Servo_Timer2_set(3,ch3 + control_pitch - control_yaw); // Back motor
}
Comments?
Regards,
TCIII
For the "X" configuration could one assume: Front = Front/Right, Back = Left/Rear, Left = Front/Left, and Right = Right/Rear?
Comments?
Regards,
TCIII
Have you considered adding motor control code for a "X" configuration in place of the "+"?
Regards,
TCIII
according to the data sheet you either have it labeled the axises(??forgot plural HAHA??) wrong or you have it positioned wrong
but, I'm sure you already knew that though just making sure!
For quadcopters we don´t need to correct for centripetal force and we need a magnetometer in order to correct yaw drift (this is really optional) so we don´t need the GPS for the quadcopter.
One detail : the board that I am using for the quadcopter is the ArduIMU+ V2 (flat)
Jose.