Developer

ArduIMU Quadcopter part II (mini)

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)
Schematic (conections): Photo1 Photo2
Old post (first version) here

New ArduPilot Mega will be a perfect platform for Quad´s also, so stay tuned...

Jose.

E-mail me when people leave their comments –

You need to be a member of diydrones to add comments!

Join diydrones

Comments

  • This may sound like a stupid question, but how are you uploading the control software to the IMU. I didn't see any imputs to the IMU.
    I've also ordered the arduimu and the ppm encoder. Just need to know how to load the software.
  • Developer
    Hi all,
    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.
  • Joe,

    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
  • Can a Futaba 2.4ghz Fasst TX & RX be used instead?
  • Admin
    Jose,

    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
  • Admin
    Jose,

    For the "X" configuration could one assume: Front = Front/Right, Back = Left/Rear, Left = Front/Left, and Right = Right/Rear?

    Comments?

    Regards,
    TCIII
  • Admin
    Jose,

    Have you considered adding motor control code for a "X" configuration in place of the "+"?

    Regards,
    TCIII
  • Because it might be confusing to people using it alone without ArduIMU
  • Jordi,
    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!
  • Developer
    Andrew, in the standard ArduIMU code, GPS is used for two things : first for centripetal force correction (we use GPS speed) and second for yaw drift correction (we use GPS ground course). This is needed if you plan to use the IMU in a plane.
    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.
This reply was deleted.