Dodeca mixer using the AUX channels (#7532)

* Added Dodecarotor Mixer

* fixed formatting style

* Renamed dodeca mixers to top and bottom
This commit is contained in:
imcnanie
2017-07-05 13:17:33 -07:00
committed by Lorenz Meier
parent 1e2ce51c6d
commit 629844adff
5 changed files with 82 additions and 1 deletions

View File

@@ -0,0 +1,51 @@
#!nsh
#
# @name Generic Dodecarotor cox geometry
#
# @type Dodecarotor cox
# @class Copter
#
# @output MAIN1 motor 1
# @output MAIN2 motor 2
# @output MAIN3 motor 3
# @output MAIN4 motor 4
# @output MAIN5 motor 5
# @output MAIN6 motor 6
#
# @output AUX1 motor 7
# @output AUX2 motor 8
# @output AUX3 motor 9
# @output AUX4 motor 10
# @output AUX5 motor 11
# @output AUX6 motor 12
#
# @maintainer Ian McNanie <ianmcnanie@gmail.com>
# @maintainer William Peale <develop707@gmail.com>
#
set VEHICLE_TYPE mc
if [ $AUTOCNF == yes ]
then
param set NAV_ACC_RAD 2.0
param set RTL_RETURN_ALT 30.0
param set RTL_DESCEND_ALT 10.0
param set PWM_MIN 1075
param set PWM_MAX 1950
param set PWM_RATE 400
param set RTL_LAND_DELAY 0
fi
set PWM_AUX_RATE 400
# Note: May Have to set these parameters manually. They don't appear to save.
set PWM_AUX_DISARMED 900
param set PWM_AUX_MIN 1075
param set PWM_AUX_MAX 1950
set MIXER dodeca_top_cox
set MIXER_AUX dodeca_bottom_cox
# Need to set all 8 channels
set PWM_OUT 12345678
set PWM_AUX_OUT 123456

View File

@@ -0,0 +1,3 @@
# Dodeca Cox
R: 6a 10000 10000 10000 0

View File

@@ -0,0 +1,3 @@
# Dodeca Cox
R: 6m 10000 10000 10000 0

View File

@@ -172,6 +172,13 @@ MultirotorMixer::from_text(Mixer::ControlCallback control_cb, uintptr_t cb_handl
} else if (!strcmp(geomname, "8c")) {
geometry = MultirotorGeometry::OCTA_COX;
} else if (!strcmp(geomname, "6m")) {
geometry = MultirotorGeometry::DODECA_TOP_COX;
} else if (!strcmp(geomname, "6a")) {
geometry = MultirotorGeometry::DODECA_BOTTOM_COX;
#if 0
} else if (!strcmp(geomname, "8cw")) {

View File

@@ -195,8 +195,25 @@ tri_y = [
[ 180, 0.0],
]
dodeca_top_cox = [
[ 90, CW],
[ -90, CCW],
[ -30, CW],
[ 150, CCW],
[ 30, CCW],
[-150, CW],
]
tables = [quad_x, quad_h, quad_plus, quad_v, quad_wide, quad_s250aq, quad_deadcat, hex_x, hex_plus, hex_cox, hex_t, octa_x, octa_plus, octa_cox, octa_cox_wide, twin_engine, tri_y]
dodeca_bottom_cox = [
[ 90, CCW],
[ -90, CW],
[ -30, CCW],
[ 150, CW],
[ 30, CW],
[-150, CCW],
]
tables = [quad_x, quad_h, quad_plus, quad_v, quad_wide, quad_s250aq, quad_deadcat, hex_x, hex_plus, hex_cox, hex_t, octa_x, octa_plus, octa_cox, octa_cox_wide, twin_engine, tri_y, dodeca_top_cox, dodeca_bottom_cox]
def variableName(variable):
for variableName, value in list(globals().items()):