Yellow Plane 2 Lost Without a Trace

|nickatredbox
Yellow Plane 2 Lost Without a Trace

Sadly Yellow Plane was lost on a test flight and as yet has not been found. It flew reasonably well, but still a bit heavy. She was in the air nearby but over water I think when I lost orirntation and then she was gone.

Lost a key fob cam 6ch RX and 2200mAh Lipo. As its probebly went in the drink its very likley sunk in the mud by now. Pitty as the video would have shown snow on the hills nearby as it was a frosty Autum morning.

 

 

 
Wing Loading         15 oz/ft² 
 
Motor Power          410 W
Power/Mass            267 Watts/Kg


Fuselage Mass 1040 mm
Wing Span          1200 mm
Wing Chord          280 mm

Take off Mass  1536 Grams

 

All Calcs Here

 

Turnigy L3010C-1300kv (420w) 
H-KING 50A Fixed Wing ESC
10 X 6  Windsor Propeller S2 Series Master Air Screw Sabre Shaped blades 
Turnigy 3C 2200mAh discharge 20C

Thrust test results
1632 Grams, 415 Watts, 37.6 Amps Grams/Watts 3.93 
1490 Grams, 356 Watts, 31.5 Amps Grams/Watts 4.18
1231 Grams, 264 Watts, 23.1 Amps Grams/Watts 4.66
1071 Grams, 214 Watts, 18.2 Amps Grams/Watts 5.00
750   Grams, 139 Watts, 11.6 Amps Grams/Watts 5.39

 

Stability system test

Arduino code for receiver


void UpdateServos()
{
      
    //Digital inputs TX code helper
    //TxVal[8] |= (digitalRead(5) << 0);//joy 2 push
    //TxVal[8] |= (digitalRead(6) << 1);//pb
    //TxVal[8] |= (digitalRead(7) << 2);//slide
    //TxVal[8] |= (digitalRead(8) << 3);//toggle
     
    //Throttle TxVal[1] 
    //Rotary pot TxVal[2]  
    //Joy 1 X TxVal[3] 
    //Joy 1 Y TxVal[4] 
    //Joy 2 X TxVal[5] 
    //Joy 2 Y TxVal[6] 
    //rssi TxVal[7]
    //digital TxVal[8]
    //micros() TxVal[9]
        
    //Use the pot as the gain for all channels for now    
    float GainPot = (float)(TxVal[2]) * 0.001f;    
      
    //Get the target values from the TX    
    int PitchTarg =  (TxVal[3] / 10);
    int RollTarg =  (TxVal[4] / 10);
    int YawTarg =  (TxVal[6] / 10);
    
    
    //Prime the Target WOZ values  
    if(PitchTargWOZ == 9999)
      PitchTargWOZ = PitchTarg;
      
    if(RollTargWOZ == 9999)
      RollTargWOZ = RollTarg;
      
    if(YawTargWOZ == 9999)
      YawTargWOZ = YawTarg;
      
    
    //Get the Centered target values   
    float PitchTargCentred = (float)(PitchTarg - PitchTargWOZ);
    float RollTargCentred =  (float)(RollTarg - RollTargWOZ);
    float YawTargCentred =  (float)(YawTarg - YawTargWOZ);
      
    //Calculate gains
    float PitchGain = GainPot * 1.0f;
    float RollGain = GainPot * 1.0f;
    float YawGain = GainPot * 1.0f;
    
    //Get Gyro values
    float PitchGyro = (float)(AnIn[2] - AnInWOZ[2]);
    float RollGyro = (float)(AnIn[1] - AnInWOZ[1]);
    float YawGyro = (float)(AnIn[0] - AnInWOZ[0]);
    
    //Calc P error
    float PitchError = (float)PitchTargCentred + PitchGyro;
    float RollError = (float)RollTargCentred + RollGyro;
    float YawError = (float)YawTargCentred + YawGyro;
        
    //Apply gains
    int PitchTrim = (int)(PitchError * PitchGain);    
    int RollTrim = (int)(RollError * RollGain);    
    int YawTrim = (int)(YawError * YawGain);
    
    //Constaring trim authority
    PitchTrim = constrain(PitchTrim, -30, 30);
    RollTrim = constrain(RollTrim, -30, 30);
    YawTrim = constrain(YawTrim, -30, 30);
    
    //Dump the trim value
    if((TxVal[9] & 0x4) == 0)
    {        
      PitchTrim = 0;
      RollTrim = 0;
      YawTrim = 0;      
    }      
    
    //Calc flap anglke
    int Flaps = 0;
    
    //Apply flaps
    if((TxVal[9] & 0x8) == 0)
        Flaps = -25;
        
    //Throttle  
    val = TxVal[1] / 10;    
    val = map(val, 1, 179, 30, 179);
    val = constrain(val, 1, 165);         // scale it to use it with the servo (value between 0 and 180) 
    servo[0].write(val);                  // sets the servo position according to the scaled value 
       
       
    //Vee tail
    
    //Left Elevator Joy 1 Y TxVal[4]
    val = (YawTarg + YawTrim) + (PitchTargCentred + PitchTrim);   
    val = constrain(val, 15, 165); 
    val = map(val, 0, 179, 135, 45);       // scale it to use it with the servo (value between 0 and 180) 
    servo[1].write(val);                  // sets the servo position according to the scaled value 
    
    
    //Right Elevator Joy 1 Y TxVal[4]
    val =  (YawTarg + YawTrim) - (PitchTargCentred + PitchTrim);   
    val = constrain(val, 15, 165); 
    val = map(val, 0, 179, 135, 45);       // scale it to use it with the servo (value between 0 and 180) 
    servo[2].write(val);                  // sets the servo position according to the scaled value 
        
    
    //Left Flaperon           
    val = 90 + (RollTargCentred + Flaps) + RollTrim;  
    val = constrain(val, 15, 165); 
    val = map(val, 0, 179, 165, 15);      // scale it to use it with the servo (value between 0 and 180) 
    servo[3].write(val);                  // sets the servo position according to the scaled value 
    
    //Right Flaperon 
    val = 90 + (RollTargCentred - Flaps) + RollTrim;  
    val = constrain(val, 15, 165); 
    val = map(val, 0, 179, 165, 15);      // scale it to use it with the servo (value between 0 and 180) 
    servo[4].write(val);                  // sets the servo position according to the scaled value 
    
    
    //Joy 2 x nose Wheel
    val = (TxVal[6] / 10);  
    val = map(val, 0, 179, 55, 125); 
    servo[5].write(val);                 // sets the servo position according to the scaled value 
      
}

 

Yellow Plane 1 this planes sister, on a windy day for her maiden flight. Learned a lot from this design, mostly keep it light







0 comments

Leave a comment

Please note, comments need to be approved before they are published.

Have a story to share?

Share your builds, flying experiences and tips with the Flite Test community.

Write For Us →