Here is my new quadcopter. The max dimension is 185 mm (tip to tip).
The video from the first outdoor flight is shown here: http://www.youtube.com/watch?v=Un_guPJ1Qoc
Some details:
- weight 170 gramm
- propeller AirAce 3-blade left/right, motor Hacker A10/12S
- ESC Turnigy 6A (not modified = PPM)
- 2 cells LiPo 740mAh, flight time is about 6 minutes
- RC-control via a single Spektrum - DX7-satellite-receiver
- ATMEGA328 in the new 20 x 30 mm big "Tumba-Control"
- 3 x ADXRS610 + 2 x ADXL322 from Sparkfun in an 17 mm IMU-cube
- software is own development based on Arduino, source code is about 8kbyte
- closed loop frequence about 400 Hz
- use of axis - (de)coupling via rotary matrix / quaternion
The carbon - balsa design is very stiff. In the "Tumba-Control", based on a ATMEGA328, are: 6 low pass filter for the sensors, the UART is connected to the 2.4 Ghz-satellite-receiver, then the are the 4 PPM-pins to the 4 ESC. And there is the 3.3V (2.4 Ghz-satellite-receiver) and 5 V supply. The aim was to design a quadcopter platform with a minimal dimension.
Best regards Tumba
Here some more pictures:
Tags:

Permalink Reply by Tumba on June 19, 2011 at 11:03am Hi John,
I fly the copter often. He is designd for the IMAV 2011 competition:
http://www.imav2011.org/images/stories/documents/imav2011-summeredi...
But I need more traing to fly similar to my team member William:
Currently I performe the landing outdoor at the two lower propeller. Indoor I use a cage.
Best regards Tumba
how to use this satellite reciever?
would be great if you could share that part of your code ;-)
anyways great work, just found that on the MK-Forums ;-)
Permalink Reply by Tumba on June 19, 2011 at 2:37pm First you have to program the DX7 transmitter to "acro" and "aux2" to "rocker".
Then you have with the code below the values: rc_lift (0..680), rc_pitch(-340..340) , rc_yaw(-340..340), rc_roll(-340..340), rc_s1(0,1,2), rc_s2(0,1). Here is the DX7 related code:
/* ------------------------------------------------------------------------ */
/* define global values */
/* ------------------------------------------------------------------------ */
int rc_lift, rc_pitch, rc_yaw, rc_roll, rc_s1, rc_s2;
unsigned long uart_time_old;
unsigned int i, z[16];
/* ------------------------------------------------------------------------ */
/* setup procedure */
/* ------------------------------------------------------------------------ */
void setup()
{
uart_time_old= 0;
for (i= 1; i<=16; i= i+1) z[i]= 0;
i= 1;
Serial.begin(115200); /* DX7 satellite */
}
/* ------------------------------------------------------------------------ */
/* read the DX7 satellite procedure */
/* ------------------------------------------------------------------------ */
void read_rc()
{
unsigned long uart_time;
unsigned int uart_dt;
uart_time= micros();
uart_dt= int(uart_time - uart_time_old);
uart_time_old= uart_time;
if (uart_dt > 8000) i= 1;
else i= i+1;
z[i]= Serial.read();
if (i == 16)
{
rc_pitch= int(256 * z[ 7] + z[ 8]) - 2560;
rc_roll= 1536 - int(256 * z[ 3] + z[ 4]);
rc_yaw= 3582 - int(256 * z[ 9] + z[10]);
rc_lift= 854 - int(256 * z[11] + z[12]);
rc_s1= 0;
if (int(256 * z[ 5] + z[ 6]) < 5700) rc_s1= 1;
if (int(256 * z[ 5] + z[ 6]) < 5500) rc_s1= 2;
rc_s2= 0;
if (int(256 * z[13] + z[14]) < 4600) rc_s2= 1;
i= 1;
}
}
/* ------------------------------------------------------------------------ */
/* global loop procedure */
/* ------------------------------------------------------------------------ */
void loop()
{
while (Serial.available() == 0)
{
read_imu();
calc_imu();
calc_mot();
run_mot();
delay(2);
}
read_rc();
}
/* ------------------------------------------------------------------------ */
/* end of program */
/* ------------------------------------------------------------------------ */
Season Two of the Trust Time Trial (T3) Contest has now begun. The fourth round is an accuracy round for multicopters, which requires contestants to fly a cube. The deadline is April 14th.183 members
1283 members
24 members
180 members
4 members
© 2013 Created by Chris Anderson.
Powered by
