mirror of
https://github.com/iNavFlight/inav-configurator.git
synced 2025-07-25 09:15:42 +03:00
Servo mix rules
This commit is contained in:
parent
d0cdef46f4
commit
2e19037667
2 changed files with 168 additions and 97 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -13,3 +13,4 @@ inav-configurator.iml
|
|||
/dist
|
||||
# Path where the NW.js apps get built
|
||||
/apps
|
||||
/.vscode/
|
124
js/model.js
124
js/model.js
|
@ -1,5 +1,36 @@
|
|||
'use strict';
|
||||
|
||||
const SERVO_GIMBAL_PITCH = 0,
|
||||
SERVO_GIMBAL_ROLL = 1,
|
||||
SERVO_ELEVATOR = 2,
|
||||
SERVO_FLAPPERON_1 = 3,
|
||||
SERVO_FLAPPERON_2 = 4,
|
||||
SERVO_RUDDER = 5,
|
||||
SERVO_BICOPTER_LEFT = 4,
|
||||
SERVO_BICOPTER_RIGHT = 5,
|
||||
SERVO_DUALCOPTER_LEFT = 4,
|
||||
SERVO_DUALCOPTER_RIGHT = 5,
|
||||
SERVO_SINGLECOPTER_1 = 3,
|
||||
SERVO_SINGLECOPTER_2 = 4,
|
||||
SERVO_SINGLECOPTER_3 = 5,
|
||||
SERVO_SINGLECOPTER_4 = 6;
|
||||
|
||||
const INPUT_STABILIZED_ROLL = 0,
|
||||
INPUT_STABILIZED_PITCH = 1,
|
||||
INPUT_STABILIZED_YAW = 2,
|
||||
INPUT_STABILIZED_THROTTLE = 3,
|
||||
INPUT_RC_ROLL = 4,
|
||||
INPUT_RC_PITCH = 5,
|
||||
INPUT_RC_YAW = 6,
|
||||
INPUT_RC_THROTTLE = 7,
|
||||
INPUT_RC_AUX1 = 8,
|
||||
INPUT_RC_AUX2 = 9,
|
||||
INPUT_RC_AUX3 = 10,
|
||||
INPUT_RC_AUX4 = 11,
|
||||
INPUT_GIMBAL_PITCH = 12,
|
||||
INPUT_GIMBAL_ROLL = 13,
|
||||
INPUT_FEATURE_FLAPS = 14;
|
||||
|
||||
// generate mixer
|
||||
const mixerList = [
|
||||
{
|
||||
|
@ -11,7 +42,10 @@ const mixerList = [
|
|||
motorMixer: [
|
||||
new MotorMixRule(1.0, 0.0, 1.333333, 0.0), // REAR
|
||||
new MotorMixRule(1.0, -1.0, -0.666667, 0.0), // RIGHT
|
||||
new MotorMixRule(1.0, 1.0, -0.666667, 0.0), // LEFT
|
||||
new MotorMixRule(1.0, 1.0, -0.666667, 0.0) // LEFT
|
||||
],
|
||||
servoMixer: [
|
||||
new ServoMixRule(SERVO_RUDDER, INPUT_STABILIZED_YAW, 100, 0)
|
||||
]
|
||||
}, // 1
|
||||
{
|
||||
|
@ -24,8 +58,9 @@ const mixerList = [
|
|||
new MotorMixRule(1.0, 0.0, 1.0, -1.0), // REAR
|
||||
new MotorMixRule(1.0, -1.0, 0.0, 1.0), // RIGHT
|
||||
new MotorMixRule(1.0, 1.0, 0.0, 1.0), // LEFT
|
||||
new MotorMixRule(1.0, 0.0, -1.0, -1.0), // FRONT
|
||||
]
|
||||
new MotorMixRule(1.0, 0.0, -1.0, -1.0) // FRONT
|
||||
],
|
||||
servoMixer: []
|
||||
}, // 2
|
||||
{
|
||||
name: 'Quad X',
|
||||
|
@ -37,8 +72,9 @@ const mixerList = [
|
|||
new MotorMixRule(1.0, -1.0, 1.0, -1.0), // REAR_R
|
||||
new MotorMixRule(1.0, -1.0, -1.0, 1.0), // FRONT_R
|
||||
new MotorMixRule(1.0, 1.0, 1.0, 1.0), // REAR_L
|
||||
new MotorMixRule(1.0, 1.0, -1.0, -1.0), // FRONT_L
|
||||
]
|
||||
new MotorMixRule(1.0, 1.0, -1.0, -1.0) // FRONT_L
|
||||
],
|
||||
servoMixer: []
|
||||
}, // 3
|
||||
{
|
||||
name: 'Bicopter',
|
||||
|
@ -46,7 +82,8 @@ const mixerList = [
|
|||
image: 'bicopter',
|
||||
hasCustomServoMixer: false,
|
||||
enabled: false,
|
||||
motorMixer: []
|
||||
motorMixer: [],
|
||||
servoMixer: []
|
||||
}, // 4
|
||||
{
|
||||
name: 'Gimbal',
|
||||
|
@ -54,7 +91,8 @@ const mixerList = [
|
|||
image: 'custom',
|
||||
hasCustomServoMixer: false,
|
||||
enabled: false,
|
||||
motorMixer: []
|
||||
motorMixer: [],
|
||||
servoMixer: []
|
||||
}, // 5
|
||||
{
|
||||
name: 'Y6',
|
||||
|
@ -68,8 +106,9 @@ const mixerList = [
|
|||
new MotorMixRule(1.0, 1.0, -0.666667, -1.0), // LEFT
|
||||
new MotorMixRule(1.0, 0.0, 1.333333, -1.0), // UNDER_REAR
|
||||
new MotorMixRule(1.0, -1.0, -0.666667, 1.0), // UNDER_RIGHT
|
||||
new MotorMixRule(1.0, 1.0, -0.666667, 1.0), // UNDER_LEFT
|
||||
]
|
||||
new MotorMixRule(1.0, 1.0, -0.666667, 1.0) // UNDER_LEFT
|
||||
],
|
||||
servoMixer: []
|
||||
}, // 6
|
||||
{
|
||||
name: 'Hex +',
|
||||
|
@ -83,8 +122,9 @@ const mixerList = [
|
|||
new MotorMixRule(1.0, 0.866025, 0.5, 1.0), // REAR_L
|
||||
new MotorMixRule(1.0, 0.866025, -0.5, -1.0), // FRONT_L
|
||||
new MotorMixRule(1.0, 0.0, -1.0, 1.0), // FRONT
|
||||
new MotorMixRule(1.0, 0.0, 1.0, -1.0), // REAR
|
||||
]
|
||||
new MotorMixRule(1.0, 0.0, 1.0, -1.0) // REAR
|
||||
],
|
||||
servoMixer: []
|
||||
}, // 7
|
||||
{
|
||||
name: 'Flying Wing',
|
||||
|
@ -95,6 +135,12 @@ const mixerList = [
|
|||
motorMixer: [
|
||||
new MotorMixRule(1.0, 0.0, 0.0, 0.0),
|
||||
new MotorMixRule(1.0, 0.0, 0.0, 0.0),
|
||||
],
|
||||
servoMixer: [
|
||||
new ServoMixRule(SERVO_FLAPPERON_1, INPUT_STABILIZED_ROLL, 50, 0),
|
||||
new ServoMixRule(SERVO_FLAPPERON_1, INPUT_STABILIZED_PITCH, 50, 0),
|
||||
new ServoMixRule(SERVO_FLAPPERON_2, INPUT_STABILIZED_ROLL, -50, 0),
|
||||
new ServoMixRule(SERVO_FLAPPERON_2, INPUT_STABILIZED_PITCH, 50, 0)
|
||||
]
|
||||
}, // 8
|
||||
{
|
||||
|
@ -108,7 +154,8 @@ const mixerList = [
|
|||
new MotorMixRule(1.0, -1.0, -1.0, 0.0), // FRONT_R CCW
|
||||
new MotorMixRule(1.0, 0.0, 1.0, 1.0), // REAR_BOTTOM CCW
|
||||
new MotorMixRule(1.0, 1.0, -1.0, 0.0), // FRONT_L CW
|
||||
]
|
||||
],
|
||||
servoMixer: []
|
||||
}, // 9
|
||||
{
|
||||
name: 'Hex X',
|
||||
|
@ -123,7 +170,8 @@ const mixerList = [
|
|||
new MotorMixRule(1.0, 0.5, -0.866025, -1.0), // FRONT_L
|
||||
new MotorMixRule(1.0, -1.0, 0.0, -1.0), // RIGHT
|
||||
new MotorMixRule(1.0, 1.0, 0.0, 1.0), // LEFT
|
||||
]
|
||||
],
|
||||
servoMixer: []
|
||||
}, // 10
|
||||
{
|
||||
name: 'Octo X8',
|
||||
|
@ -140,7 +188,8 @@ const mixerList = [
|
|||
new MotorMixRule(1.0, -1.0, -1.0, -1.0), // UNDER_FRONT_R
|
||||
new MotorMixRule(1.0, 1.0, 1.0, -1.0), // UNDER_REAR_L
|
||||
new MotorMixRule(1.0, 1.0, -1.0, 1.0), // UNDER_FRONT_L
|
||||
]
|
||||
],
|
||||
servoMixer: []
|
||||
}, // 11
|
||||
{
|
||||
name: 'Octo Flat +',
|
||||
|
@ -157,7 +206,8 @@ const mixerList = [
|
|||
new MotorMixRule(1.0, -1.0, 0.0, -1.0), // RIGHT
|
||||
new MotorMixRule(1.0, 0.0, 1.0, -1.0), // REAR
|
||||
new MotorMixRule(1.0, 1.0, 0.0, -1.0), // LEFT
|
||||
]
|
||||
],
|
||||
servoMixer: []
|
||||
}, // 12
|
||||
{
|
||||
name: 'Octo Flat X',
|
||||
|
@ -174,7 +224,8 @@ const mixerList = [
|
|||
new MotorMixRule(1.0, -1.0, -0.414178, -1.0), // MIDFRONT_R
|
||||
new MotorMixRule(1.0, -0.414178, 1.0, -1.0), // REAR_R
|
||||
new MotorMixRule(1.0, 1.0, 0.414178, -1.0), // MIDREAR_L
|
||||
]
|
||||
],
|
||||
servoMixer: []
|
||||
}, // 13
|
||||
{
|
||||
name: 'Airplane',
|
||||
|
@ -185,6 +236,14 @@ const mixerList = [
|
|||
motorMixer: [
|
||||
new MotorMixRule(1.0, 0.0, 0.0, 0.0),
|
||||
new MotorMixRule(1.0, 0.0, 0.0, 0.0),
|
||||
],
|
||||
servoMixer: [
|
||||
new ServoMixRule(SERVO_FLAPPERON_1, INPUT_STABILIZED_ROLL, 100, 0),
|
||||
new ServoMixRule(SERVO_FLAPPERON_2, INPUT_STABILIZED_ROLL, 100, 0),
|
||||
new ServoMixRule(SERVO_FLAPPERON_1, INPUT_FEATURE_FLAPS, 100, 0),
|
||||
new ServoMixRule(SERVO_FLAPPERON_2, INPUT_FEATURE_FLAPS, -100, 0),
|
||||
new ServoMixRule(SERVO_RUDDER, INPUT_STABILIZED_YAW, 100, 0),
|
||||
new ServoMixRule(SERVO_ELEVATOR, INPUT_STABILIZED_PITCH, 100, 0)
|
||||
]
|
||||
}, // 14
|
||||
{
|
||||
|
@ -193,7 +252,8 @@ const mixerList = [
|
|||
image: 'custom',
|
||||
hasCustomServoMixer: false,
|
||||
enabled: false,
|
||||
motorMixer: []
|
||||
motorMixer: [],
|
||||
servoMixer: []
|
||||
}, // 15
|
||||
{
|
||||
name: 'Heli 90',
|
||||
|
@ -201,7 +261,8 @@ const mixerList = [
|
|||
image: 'custom',
|
||||
hasCustomServoMixer: false,
|
||||
enabled: false,
|
||||
motorMixer: []
|
||||
motorMixer: [],
|
||||
servoMixer: []
|
||||
}, // 16
|
||||
{
|
||||
name: 'V-tail Quad',
|
||||
|
@ -214,7 +275,8 @@ const mixerList = [
|
|||
new MotorMixRule(1.0, -0.46, -0.39, -0.5), // FRONT_R
|
||||
new MotorMixRule(1.0, 0.58, 0.58, -1.0), // REAR_L
|
||||
new MotorMixRule(1.0, 0.46, -0.39, 0.5), // FRONT_L
|
||||
]
|
||||
],
|
||||
servoMixer: []
|
||||
}, // 17
|
||||
{
|
||||
name: 'Hex H',
|
||||
|
@ -229,7 +291,8 @@ const mixerList = [
|
|||
new MotorMixRule(1.0, 1.0, -1.0, -1.0), // FRONT_L
|
||||
new MotorMixRule(1.0, 0.0, 0.0, 0.0), // RIGHT
|
||||
new MotorMixRule(1.0, 0.0, 0.0, 0.0), // LEFT
|
||||
]
|
||||
],
|
||||
servoMixer: []
|
||||
}, // 18
|
||||
{
|
||||
name: 'PPM to SERVO',
|
||||
|
@ -237,7 +300,8 @@ const mixerList = [
|
|||
image: 'custom',
|
||||
hasCustomServoMixer: false,
|
||||
enabled: false,
|
||||
motorMixer: []
|
||||
motorMixer: [],
|
||||
servoMixer: []
|
||||
}, // 19
|
||||
{
|
||||
name: 'Dualcopter',
|
||||
|
@ -245,7 +309,8 @@ const mixerList = [
|
|||
image: 'custom',
|
||||
hasCustomServoMixer: false,
|
||||
enabled: false,
|
||||
motorMixer: []
|
||||
motorMixer: [],
|
||||
servoMixer: []
|
||||
}, // 20
|
||||
{
|
||||
name: 'Singlecopter',
|
||||
|
@ -253,7 +318,8 @@ const mixerList = [
|
|||
image: 'custom',
|
||||
hasCustomServoMixer: false,
|
||||
enabled: false,
|
||||
motorMixer: []
|
||||
motorMixer: [],
|
||||
servoMixer: []
|
||||
}, // 21
|
||||
{
|
||||
name: 'A-tail Quad',
|
||||
|
@ -266,7 +332,8 @@ const mixerList = [
|
|||
new MotorMixRule(1.0, -1.0, -1.0, 0.0), // FRONT_R
|
||||
new MotorMixRule(1.0, 0.0, 1.0, -1.0), // REAR_L
|
||||
new MotorMixRule(1.0, 1.0, -1.0, -0.0), // FRONT_L
|
||||
]
|
||||
],
|
||||
servoMixer: []
|
||||
}, // 22
|
||||
{
|
||||
name: 'Custom',
|
||||
|
@ -274,7 +341,8 @@ const mixerList = [
|
|||
image: 'custom',
|
||||
hasCustomServoMixer: true,
|
||||
enabled: false,
|
||||
motorMixer: []
|
||||
motorMixer: [],
|
||||
servoMixer: []
|
||||
}, // 23
|
||||
{
|
||||
name: 'Custom Airplane',
|
||||
|
@ -282,7 +350,8 @@ const mixerList = [
|
|||
image: 'custom',
|
||||
hasCustomServoMixer: true,
|
||||
enabled: false,
|
||||
motorMixer: []
|
||||
motorMixer: [],
|
||||
servoMixer: []
|
||||
}, // 24
|
||||
{
|
||||
name: 'Custom Tricopter',
|
||||
|
@ -290,6 +359,7 @@ const mixerList = [
|
|||
image: 'custom',
|
||||
hasCustomServoMixer: true,
|
||||
enabled: false,
|
||||
motorMixer: []
|
||||
motorMixer: [],
|
||||
servoMixer: []
|
||||
} // 25
|
||||
];
|
Loading…
Add table
Add a link
Reference in a new issue