===== Механизм работы сервами и газом - ===== ==== Для однокоптера - ==== M1 CCW | | . M2 (Servo) | | M5 ---- ---- M3 (Servo) | (Servo) | M4 (Servo) MotorOut1 = RxInCollective; MotorOut2 = 840; // 840 MotorOut3 = 840; // 840 MotorOut4 = 945; // 840 + 840/8 MotorOut5 = 945; // 840 + 840/8 MotorOut2+= RxInRoll; MotorOut4-= RxInRoll; MotorOut3+= RxInPitch; MotorOut5-= RxInPitch; MotorOut2+= RxInYaw; MotorOut3+= RxInYaw; MotorOut4+= RxInYaw; MotorOut5+= RxInYaw; ==== Для двойного коптера - ==== M1 CCW | M2 CW | . | | M5/M3 ----+---- (Servo) | | M6/M4 (Servo) MotorOut1 = RxInCollective; MotorOut2 = RxInCollective; MotorOut3 = 500; MotorOut4 = 500; MotorOut4+= RxInRoll; MotorOut3+= RxInPitch; MotorOut1-= RxInYaw; MotorOut2+= RxInYaw; ==== Для бикоптера - ==== / ---- \ / | \ M1 CW | M2 CCW | M3 | M4 (Servo) | (Servo) MotorOut1 = RxInCollective; MotorOut2 = RxInCollective; MotorOut3 = 500; MotorOut4 = 500; RxInRoll = (RxInRoll * 7) >> 3; // Approximation of sin(60) without div MotorOut1+= RxInRoll; MotorOut2-= RxInRoll; MotorOut3-= SERVO_REVERSE RxInPitch; MotorOut4+= SERVO_REVERSE RxInPitch; MotorOut3+= SERVO_REVERSE(RxInYaw >> 1); MotorOut4+= SERVO_REVERSE(RxInYaw >> 1);