Lumenier RB2205C-12 2400KV SKITZO Ceramic Bearing Motor
Thread Tools
Old Feb 13, 2013, 09:37 PM
RCvertt is offline
Find More Posts by RCvertt
Registered User
RCvertt's Avatar
Thanks everyone. Just goes to show that you should never give up on your VTOL model. Even like in my case when you should have stopped about two years ago

Stats are...

Wingspan = 31"

Weight with 2100 15c thunderpower 3 cell = 555 grams
Weight wtih 1800 40to50c Turnigy 3 cell = 580 grams

Motors up front are 1300kv blue wonders spinning CC 8" slow fly props.
Rear motor is (AD-100L Micro Brushless Outrunner 1850Kv) with recommended 6 inch GWS prop.

CG is about two inches behind front motors pivot point.


Video showing most of the controls and how the back motor shuts off automatically when in forward flight...
TricopterControls (1 min 13 sec)
Last edited by RCvertt; Feb 13, 2013 at 11:41 PM.
Sign up now
to remove ads between posts
Old Feb 14, 2013, 12:58 PM
ilektron is offline
Find More Posts by ilektron
Will fly for food
ilektron's Avatar
Looks great
Old Mar 02, 2013, 10:56 PM
KatanaGuy is offline
Find More Posts by KatanaGuy
Design, Build, and Fly
KatanaGuy's Avatar
20th Flight, 1st one with FPV telemetry running while in 50/50 mix. Will get full forward flight footage later.

20130302-140417 (2 min 56 sec)


-Steve
Last edited by KatanaGuy; Mar 02, 2013 at 11:06 PM.
Old Mar 17, 2013, 02:47 AM
KatanaGuy is offline
Find More Posts by KatanaGuy
Design, Build, and Fly
KatanaGuy's Avatar
The promised forward-flight video:
Introduction to the Orange Hawk Project (0 min 0 sec)
Last edited by KatanaGuy; Mar 17, 2013 at 03:25 AM.
Old Mar 17, 2013, 04:14 AM
RCvertt is offline
Find More Posts by RCvertt
Registered User
RCvertt's Avatar
Looks awesome! Great job.
Old Mar 18, 2013, 12:19 AM
foamdave is online now
Find More Posts by foamdave
skumgummi dave
Yes, very good job!

Dave-
Old Mar 18, 2013, 07:02 AM
leadfeather is offline
Find More Posts by leadfeather
Winging it >
leadfeather's Avatar
Excellent!
Old Mar 18, 2013, 01:35 PM
Ran D. St. Clair is offline
Find More Posts by Ran D. St. Clair
Registered User

Fantastic job!


Fantastic job!

Now tell us all your secrets so we can do it with 1/10th the work
Old Mar 19, 2013, 02:20 PM
KatanaGuy is offline
Find More Posts by KatanaGuy
Design, Build, and Fly
KatanaGuy's Avatar
I've posted a few pieces of information on the project at DIY Drones here: http://diydrones.com/profiles/blogs/...-wing-vtol-uav

The text editor at DIYD doesn't take code nicely, as this forum does, so I'll post a preview of the code here, an exclusive sneak peek:


In the MultiWii.ino source file:
Code:
#if defined(TRICOPTER_HYBRID_TYPE_A) || defined(TRICOPTER_HYBRID_TYPE_B)
		if(rcOptions[BOXHYBD_FF] == 1 && rcOptions[BOXHYBD_INT] == 0){ // Forward Flight
			hybridTiltFactor = (hybridTiltFactor>HYBRID_TILT_INCVAL)? hybridTiltFactor-HYBRID_TILT_INCVAL: 0;
			#if defined(TRI_HYBRID_FOLD_MECH)
				foldMechSetpoint = (hybridTiltFactor==0)? HYBRID_FOLD_FWDFLT: HYBRID_FOLD_HOVER;
			#endif
		} else if(rcOptions[BOXHYBD_FF] == 0 && rcOptions[BOXHYBD_INT] == 0){ // Hover Mode
			hybridTiltFactor = ((hybridTiltFactor+HYBRID_TILT_INCVAL)<HYBRID_TF_MAX)? hybridTiltFactor+HYBRID_TILT_INCVAL : HYBRID_TF_MAX;
			#if defined(TRI_HYBRID_FOLD_MECH)
				foldMechSetpoint = HYBRID_FOLD_HOVER;
			#endif
		} else if(rcOptions[BOXHYBD_FF] == 0 && rcOptions[BOXHYBD_INT] == 1){ // 50/50 Mix, or middle spot between F/F and Hover
			hybridTiltFactor = ((hybridTiltFactor+HYBRID_TILT_INCVAL)<(HYBRID_TF_MAX/2))? hybridTiltFactor+HYBRID_TILT_INCVAL : 
							   ((hybridTiltFactor-HYBRID_TILT_INCVAL)>(HYBRID_TF_MAX/2))? hybridTiltFactor-HYBRID_TILT_INCVAL : (HYBRID_TF_MAX/2);
			#if defined(TRI_HYBRID_FOLD_MECH)
				foldMechSetpoint = HYBRID_FOLD_HOVER
			#endif
		} else{ // R/C Knob Channel Mix, direct assignment, no incrementers. For debugging/manual flying. For the manual-transmission type of crowd.
			hybridTiltFactor = (rcData[AUX1]> 1960)? 0 : ((rcData[AUX1]-1100)<0)? 120: (120-((rcData[AUX1]-1100)>>3)); // (rcData[AUX1]-1000)>>3; // and 120
			#if defined(TRI_HYBRID_FOLD_MECH)
				foldMechSetpoint = (hybridTiltFactor==0)? HYBRID_FOLD_FWDFLT: HYBRID_FOLD_HOVER;
			#endif
		}

In the Output.ino File:
Code:
#elif defined(TRICOPTER_HYBRID_TYPE_B)
		motor[0] = PIDMIX( 0,+3/2, 0);		//REAR //+4/3
		motor[1] = -axisPID[ROLL] - axisPID[PITCH]/2;		//RIGHT PIDMIX(-1,-2/3, 0); //axisPID[PITCH]*2/3;	
		motor[2] =  axisPID[ROLL] - axisPID[PITCH]/2;		//LEFT  PIDMIX(+1,-2/3, 0);
		
		// servo[2] = YAW_DIRECTION * axisPID[YAW] + MIDRC + conf.hybrid_cassette_offset; //LEFT 
		// servo[5] = YAW_DIRECTION * axisPID[YAW] + MIDRC - conf.hybrid_cassette_offset; //RIGHT 
		// servo[2] -= ((HYBRID_TILT_HOVER-1000)*(hybridTiltFactor>>2))/(HYBRID_TF_MAX>>2) + 
							// ((HYBRID_TILT_FWDFLT-1000)*((HYBRID_TF_MAX-hybridTiltFactor)>>2))/(HYBRID_TF_MAX>>2);
		// servo[5] += ((HYBRID_TILT_HOVER-1000)*(hybridTiltFactor>>2))/(HYBRID_TF_MAX>>2) + 
							// ((HYBRID_TILT_FWDFLT-1000)*((HYBRID_TF_MAX-hybridTiltFactor)>>2))/(HYBRID_TF_MAX>>2);
		
		servo[2] = ((YAW_DIRECTION*axisPID[YAW]*(hybridTiltFactor>>2))/(HYBRID_TF_MAX>>2)) + ((HYBRID_TILT_LIMIT_B-HYBRID_TILT_LIMIT_A)*(hybridTiltFactor>>2)/(HYBRID_TF_MAX>>2) + HYBRID_TILT_LIMIT_A) - (conf.hybrid_cassette_offset);
		servo[5] = ((YAW_DIRECTION*axisPID[YAW]*(hybridTiltFactor>>2))/(HYBRID_TF_MAX>>2)) + ((HYBRID_TILT_LIMIT_A-HYBRID_TILT_LIMIT_B)*(hybridTiltFactor>>2)/(HYBRID_TF_MAX>>2) + HYBRID_TILT_LIMIT_B) + (conf.hybrid_cassette_offset);
		
		// 120 is 90 deg up, 0 is 0 deg (forward). Or, 120>>2 = 30, 30 is 90 deg. 120 *3/4.
		// Actuator		Left & Right Motors			Rear Motor		Left & Right Servos
		// Pitch		*= sin(t)					*= sin(t)		
		// Roll			*= sin(t)									+= rollPID * cos(t) * 10% ( leave off for now )
		// Yaw			+= yawPID*(120-t)*12% ( need cos(t)? )	    *= t/120  ( may want *= sin(t) )
		
		//		sin approx		cos approx		[0:90 deg] -> [0:120 ticks]
		//	1.0	      __		__
		//	.8	    /...		...\
		//	.6	   /....		....\
		//	.4	  /.....		.....\
		//	.2	 /......		......\
		//	0	/.......120		.......\
		//		0     90		0 30    120
		
		if(hybridTiltFactor<HYBRID_TF_MAX){ // 120 -> 30
			if(hybridTiltFactor == 0){
				motor[0] = MINTHROTTLE;
				motor[1] = (YAW_DIRECTION*axisPID[YAW])>>2;
				motor[2] = (-YAW_DIRECTION*axisPID[YAW])>>2;
			} else {
				for(uint8_t i=0; i<3; i++) motor[i] = (motor[i]>2000)? 2000: motor[i];
				
				motor[0] = (hybridTiltFactor>(HYBRID_TF_MAX*5/8))? motor[0]:((motor[0]-MINTHROTTLE)*(hybridTiltFactor>>2)/(HYBRID_TF_MAX>>2))*8/5+MINTHROTTLE;
				
				motor[1] = (hybridTiltFactor>(HYBRID_TF_MAX*3/4))? motor[1]:((motor[1])*(hybridTiltFactor>>2)/(HYBRID_TF_MAX>>2))*4/3;
				motor[2] = (hybridTiltFactor>(HYBRID_TF_MAX*3/4))? motor[2]:((motor[2])*(hybridTiltFactor>>2)/(HYBRID_TF_MAX>>2))*4/3;
				
				motor[1] += ((YAW_DIRECTION*axisPID[YAW]*((HYBRID_TF_MAX>>2)-(hybridTiltFactor>>2)))/(HYBRID_TF_MAX>>2))>>2;
				motor[2] += ((-YAW_DIRECTION*axisPID[YAW]*((HYBRID_TF_MAX>>2)-(hybridTiltFactor>>2)))/(HYBRID_TF_MAX>>2))>>2;
				
				//servo[2] += ((YAW_DIRECTION*axisPID[YAW]*(hybridTiltFactor>>2))/(HYBRID_TF_MAX>>2)) + The start of trying to isolate servo loop as motors are above.
			}
		}
		
		// motor[0] += rcCommand[THROTTLE];
		motor[1] += rcCommand[THROTTLE];
		motor[2] += rcCommand[THROTTLE];
		
		debug[0] = rcCommand[PITCH]; // servo[2]; //conf.hybrid_cassette_offset;
		debug[1] = axisPID[PITCH];  // servo[5]; //MIDRC;
		
		servo[2] = constrain( servo[2], 1005, 2000); // LEFT
		servo[5] = constrain( servo[5], 1005, 2000); // RIGHT
	#endif

Repeated from the DIYDrones post, attached here is a snapshot of the GUI:
Old Mar 19, 2013, 08:53 PM
KatanaGuy is offline
Find More Posts by KatanaGuy
Design, Build, and Fly
KatanaGuy's Avatar
Here is the source code for the project:
https://www.rcgroups.com/forums/show....php?t=1855292
Old Mar 20, 2013, 12:21 AM
KatanaGuy is offline
Find More Posts by KatanaGuy
Design, Build, and Fly
KatanaGuy's Avatar
Thanks all for the kind remarks. You guys are the prime motivators for me, I hope I've added something to the group, being the lone wolf I've been.

Quote:
Originally Posted by EddieWeeks View Post
I have been flying in the yard for a few days now... The plane is fine.. The pilot needs some work..

Going to transition next..

http://www.youtube.com/watch?v=mUU3IF6cu8k

Eddie,

Did transitioning ever work out?

-Steve
Old Mar 20, 2013, 12:33 AM
RCvertt is offline
Find More Posts by RCvertt
Registered User
RCvertt's Avatar
Quote:
Originally Posted by KatanaGuy View Post
Here is the source code for the project:
https://www.rcgroups.com/forums/show....php?t=1855292
Very nice code drop. Looks like you did a lot of work here.

Does your code stretch the servo signal to let them move past a 90 degree range?
Old Mar 20, 2013, 02:14 AM
KatanaGuy is offline
Find More Posts by KatanaGuy
Design, Build, and Fly
KatanaGuy's Avatar
Quote:
Originally Posted by RCvertt View Post
Very nice code drop. Looks like you did a lot of work here.

Does your code stretch the servo signal to let them move past a 90 degree range?
No, it doesn't. I initially started in that direction, and was hacking MultiWii beyond recognition. I abandoned that attempt in favor of staying as conservative as possible with the base code, since timers and such had to be modified to get the servo outputs below 1000 us. Going above 2000 is doable, I think 2100ish is where the variable overflows.
Old Mar 20, 2013, 05:21 AM
RCvertt is offline
Find More Posts by RCvertt
Registered User
RCvertt's Avatar
That's cool. Your bird is functioning quite well without it.

The new ISR method they use in (2.1) code appears to be very custom and not the most friendly to work with. Not a good sign when the person that implemented it told me that it would be difficult to stretch and that he doesn't have time to do it.

Do you think it's possible to not stretch the servo signal but rather shift the 90 degree range up and down so we don't loose any resolution?
Last edited by RCvertt; Mar 20, 2013 at 05:44 AM.
Old Mar 20, 2013, 12:24 PM
Brandano is offline
Find More Posts by Brandano
Registered User
Ultimately there is only a certain amount of resolution a servo can be capable of. You could use a single larger and slower servo for tilt and a couple of smaller and quicker ones for control, though. However the problem with using the whole servo range for control is that there is a limit to the speed a servo can travel its full range, so there will always be some compromise made between response time and resolution


Thread Tools

Similar Threads
Category Thread Thread Starter Forum Replies Last Post
Discussion QTD- Quad Tilt Duino (Arduino- Tilt Rotor) RCvertt VTOLs 100 Jun 28, 2012 01:15 AM
Question Tricopter: What rear tilt angle? bb42 Multirotor Talk 3 Oct 15, 2010 10:40 AM
New Product The new Panther tilt rotor UAV from Israel Aerospace Industries Hunter850 Multirotor Talk 2 Oct 06, 2010 09:06 AM
For Sale Rc lander panther complete setup with metal edf/motor/esc/servos/retracts/battery TurboFanElectric Aircraft - Electric - Jets (FS/W) 3 Mar 25, 2010 09:29 AM
Sold RClander Panther 70mm Fan and motor cjdscratch Aircraft - Electric - Power Systems (FS/W) 7 Mar 13, 2010 11:31 PM