Und das kannst du in deiner Funke nicht programmieren ? Also einfach 2 Modelle und das eine drehst halt mit irgendwelchen Mischern oder so.Mataschke hat geschrieben:Prinzipiell ne Virtuelle TS Drehung
MFG
speedy
Und das kannst du in deiner Funke nicht programmieren ? Also einfach 2 Modelle und das eine drehst halt mit irgendwelchen Mischern oder so.Mataschke hat geschrieben:Prinzipiell ne Virtuelle TS Drehung
und dann?speedy hat geschrieben:Also einfach 2 Modelle und das eine drehst halt mit irgendwelchen Mischern oder so.
Ach - du bekommst das sicher auch ohne dem hin.Mataschke hat geschrieben:ich brauch die Berechung der Sensoren um 45° gedreht sonst wird das nix
speedy hat geschrieben:dann mach Berechnung +"
Freut mich.Mataschke hat geschrieben:speedy hat geschrieben:dann mach Berechnung +"
you made my day
Code: Alles auswählen
  if (armed ) {
    #ifdef BI
      motor[0] = 1500 + rcCommand[THROTTLE] + axisPID[PITCH]; //REAR
      motor[1] = 1500 + rcCommand[THROTTLE] - axisPID[PITCH]; //FRONT
    #endif
    #ifdef TRI
      motor[0] = 1500 + rcCommand[THROTTLE] + axisPID[PITCH]*4/3 ; //REAR
      motor[1] = 1500 + rcCommand[THROTTLE] - axisPID[ROLL] - axisPID[PITCH]*2/3 ; //RIGHT
      motor[2] = 1500 + rcCommand[THROTTLE] + axisPID[ROLL] - axisPID[PITCH]*2/3 ; //LEFT
    #endif
    #ifdef QUADP
      motor[0] = 1500 + rcCommand[THROTTLE] + axisPID[PITCH] - axisPID[YAW]; //REAR
      motor[1] = 1500 + rcCommand[THROTTLE] - axisPID[ROLL]  + axisPID[YAW]; //RIGHT
      motor[2] = 1500 + rcCommand[THROTTLE] + axisPID[ROLL]  + axisPID[YAW]; //LEFT
      motor[3] = 1500 + rcCommand[THROTTLE] - axisPID[PITCH] - axisPID[YAW]; //FRONT
    #endif
    #ifdef QUADX
      motor[0] = 1500 + rcCommand[THROTTLE] - axisPID[ROLL] + axisPID[PITCH] - axisPID[YAW]; //REAR_R
      motor[1] = 1500 + rcCommand[THROTTLE] - axisPID[ROLL] - axisPID[PITCH] + axisPID[YAW]; //FRONT_R
      motor[2] = 1500 + rcCommand[THROTTLE] + axisPID[ROLL] + axisPID[PITCH] + axisPID[YAW]; //REAR_L
      motor[3] = 1500 + rcCommand[THROTTLE] + axisPID[ROLL] - axisPID[PITCH] - axisPID[YAW]; //FRONT_L
    #endif
    #ifdef Y6
      motor[0] = 1500 + rcCommand[THROTTLE]                 + axisPID[PITCH]*4/3 + axisPID[YAW]; //REAR
      motor[1] = 1500 + rcCommand[THROTTLE] - axisPID[ROLL] - axisPID[PITCH]*2/3 - axisPID[YAW]; //RIGHT
      motor[2] = 1500 + rcCommand[THROTTLE] + axisPID[ROLL] - axisPID[PITCH]*2/3 - axisPID[YAW]; //LEFT
      motor[3] = 1500 + rcCommand[THROTTLE]                 + axisPID[PITCH]*4/3 - axisPID[YAW]; //UNDER_REAR
      motor[4] = 1500 + rcCommand[THROTTLE] - axisPID[ROLL] - axisPID[PITCH]*2/3 + axisPID[YAW]; //UNDER_RIGHT
      motor[5] = 1500 + rcCommand[THROTTLE] + axisPID[ROLL] - axisPID[PITCH]*2/3 + axisPID[YAW]; //UNDER_LEFT
    #endif
    #ifdef HEX6
      motor[0] = 1500 + rcCommand[THROTTLE] - axisPID[ROLL]/2 + axisPID[PITCH]/2 + axisPID[YAW]; //REAR_R
      motor[1] = 1500 + rcCommand[THROTTLE] - axisPID[ROLL]/2 - axisPID[PITCH]/2 - axisPID[YAW]; //FRONT_R
      motor[2] = 1500 + rcCommand[THROTTLE] + axisPID[ROLL]/2 + axisPID[PITCH]/2 + axisPID[YAW]; //REAR_L
      motor[3] = 1500 + rcCommand[THROTTLE] + axisPID[ROLL]/2 - axisPID[PITCH]/2 - axisPID[YAW]; //FRONT_L
      motor[4] = 1500 + rcCommand[THROTTLE]                   - axisPID[PITCH]   + axisPID[YAW]; //FRONT
      motor[5] = 1500 + rcCommand[THROTTLE]                   + axisPID[PITCH]   - axisPID[YAW]; //REAR
    #endif
  }Code: Alles auswählen
  if (armed ) {
    #if defined(BI)
      motor[0] = 1500 + rcCommand[THROTTLE] + axisPID[PITCH]; //REAR
      motor[1] = 1500 + rcCommand[THROTTLE] - axisPID[PITCH]; //FRONT
   #elif defined(TRI)
      motor[0] = 1500 + rcCommand[THROTTLE] + axisPID[PITCH]*4/3 ; //REAR
      motor[1] = 1500 + rcCommand[THROTTLE] - axisPID[ROLL] - axisPID[PITCH]*2/3 ; //RIGHT
      motor[2] = 1500 + rcCommand[THROTTLE] + axisPID[ROLL] - axisPID[PITCH]*2/3 ; //LEFT
    #elif defined(QUADP) || defined(heuteMalPlus)
      motor[0] = 1500 + rcCommand[THROTTLE] + axisPID[PITCH] - axisPID[YAW]; //REAR
      motor[1] = 1500 + rcCommand[THROTTLE] - axisPID[ROLL]  + axisPID[YAW]; //RIGHT
      motor[2] = 1500 + rcCommand[THROTTLE] + axisPID[ROLL]  + axisPID[YAW]; //LEFT
      motor[3] = 1500 + rcCommand[THROTTLE] - axisPID[PITCH] - axisPID[YAW]; //FRONT
    #elif defined(QUADX) && !defined(heuteMalPlus)
      motor[0] = 1500 + rcCommand[THROTTLE] - axisPID[ROLL] + axisPID[PITCH] - axisPID[YAW]; //REAR_R
      motor[1] = 1500 + rcCommand[THROTTLE] - axisPID[ROLL] - axisPID[PITCH] + axisPID[YAW]; //FRONT_R
      motor[2] = 1500 + rcCommand[THROTTLE] + axisPID[ROLL] + axisPID[PITCH] + axisPID[YAW]; //REAR_L
      motor[3] = 1500 + rcCommand[THROTTLE] + axisPID[ROLL] - axisPID[PITCH] - axisPID[YAW]; //FRONT_L
    #elif defined(Y6)
      motor[0] = 1500 + rcCommand[THROTTLE]                 + axisPID[PITCH]*4/3 + axisPID[YAW]; //REAR
      motor[1] = 1500 + rcCommand[THROTTLE] - axisPID[ROLL] - axisPID[PITCH]*2/3 - axisPID[YAW]; //RIGHT
      motor[2] = 1500 + rcCommand[THROTTLE] + axisPID[ROLL] - axisPID[PITCH]*2/3 - axisPID[YAW]; //LEFT
      motor[3] = 1500 + rcCommand[THROTTLE]                 + axisPID[PITCH]*4/3 - axisPID[YAW]; //UNDER_REAR
      motor[4] = 1500 + rcCommand[THROTTLE] - axisPID[ROLL] - axisPID[PITCH]*2/3 + axisPID[YAW]; //UNDER_RIGHT
      motor[5] = 1500 + rcCommand[THROTTLE] + axisPID[ROLL] - axisPID[PITCH]*2/3 + axisPID[YAW]; //UNDER_LEFT
    #elif defined(HEX6)
      motor[0] = 1500 + rcCommand[THROTTLE] - axisPID[ROLL]/2 + axisPID[PITCH]/2 + axisPID[YAW]; //REAR_R
      motor[1] = 1500 + rcCommand[THROTTLE] - axisPID[ROLL]/2 - axisPID[PITCH]/2 - axisPID[YAW]; //FRONT_R
      motor[2] = 1500 + rcCommand[THROTTLE] + axisPID[ROLL]/2 + axisPID[PITCH]/2 + axisPID[YAW]; //REAR_L
      motor[3] = 1500 + rcCommand[THROTTLE] + axisPID[ROLL]/2 - axisPID[PITCH]/2 - axisPID[YAW]; //FRONT_L
      motor[4] = 1500 + rcCommand[THROTTLE]                   - axisPID[PITCH]   + axisPID[YAW]; //FRONT
      motor[5] = 1500 + rcCommand[THROTTLE]                   + axisPID[PITCH]   - axisPID[YAW]; //REAR
    #endif
  }Nenene ,ChristophB hat geschrieben: Nur du steuerst um 45 Grad versetzt. Ich glaube aber dann schmeißt du den öfter in den Dreck da sich das Gehirn immer an der falschen Ausrichtung orientiert.
aso - na aber das muß man doch auch rausrechnen können ? - halt immer "plus 45 Grad" ... oder du baust ne drehbare Elektronikplatine.Mataschke hat geschrieben:es geht mir ja lediglich um das mechanische Problem
Code: Alles auswählen
roll  = rcHysteresis[ROLL]  - 1500;
pitch = rcHysteresis[PITCH] - 1500;
rcHysteresis[ROLL]  =  cos(alpha) * roll + sin(alpha) * pitch + 1500;
rcHysteresis[PITCH] = -sin(alpha) * roll + cos(alpha) * pitch + 1500;
Code: Alles auswählen
    #elif defined(QUADX)
      motor[0] = 1500 + rcCommand[THROTTLE] - 0.707 * (axisPID[ROLL] + axisPID[PITCH]) - axisPID[YAW]; //REAR_R
      motor[1] = 1500 + rcCommand[THROTTLE] - 0.707 * (axisPID[ROLL] - axisPID[PITCH]) + axisPID[YAW]; //FRONT_R
      motor[2] = 1500 + rcCommand[THROTTLE] + 0.707 * (axisPID[ROLL] + axisPID[PITCH]) + axisPID[YAW]; //REAR_L
      motor[3] = 1500 + rcCommand[THROTTLE] + 0.707 * (axisPID[ROLL] - axisPID[PITCH]) - axisPID[YAW]; //FRONT_L
Jou Batmanyacco hat geschrieben:Seid ihr noch bei mir?![]()
Code: Alles auswählen
#elif defined(keineSorgen)
Strick + Aufhängen = Sorgenfrei; //einfachste Problemlösung