锐单电子商城 , 一站式电子元器件采购平台!
  • 电话:400-990-0325

multiwii 2.4配置中文注释

时间:2022-08-15 20:30:00 光流定位加转速传感器72种1206电阻包电阻1083675二极管736二极管wp无线倾斜传感器

   1 #ifndef CONFIG_H_    2 #define CONFIG_H_    3     4 /*************************************************************************************************/    5 /****           可配置参数                                                 ****/    6 /*************************************************************************************************/    7 /*    8 该文件由多个部分组成    9 * 创建工作组合,您必须至少在1节中做出选择。   10 * 1 - 基本设置 - 您必须在基本设置中选择一个选项。   10 * 1 - 基本设置 - 您必须在基本设置中选择一个选项。   11 * 以连接四个通道的标准电调和电机为例。   12 * 2 - 您可能需要检查飞机类型选项的设置   13 * 3 - 设置无线遥控系统   14 * 4 - 替代的CPU和主板 - 如果你有   15 * 5 - 替代设置 - 选择替代的RX(SBU,PPM,等),替代ESC范围,等在这里   16 * 6 - 可选功能 - 这里有一些很好的功能可以飞行模式,LCD,遥测、电池监控等)   17 * 7 - 调试和开发 - 如果你知道你在做什么,你已经被警告过了。   18 *(ESC动态校准、电机/支撑平衡、诊断、节省内存...)   19 * 8 - 不推荐使用 - 这些功能将在未来版本中删除   20 */   21 /* Notes:   22 * 1. 在注释中用(*)存储标记的参数eeprom通过串口监控器或LCD调节。   23 * 2. 在注释中用(**)存储标记的参数eeprom中,并且可以通过GUI调节   24 */   25    26    27 /*************************************************************************************************/   28 /*****************                                                                 ***************/   29 /****************  SECTION  1 - 基本设置                                                *******/   30 /*****************                                                                 ***************/   31 /*************************************************************************************************/   32    33 /**************************    多旋翼飞机类型    ****************************/   34 //#define GIMBAL        //自稳云台   35 //#define BI            //两轴   36 //#define TRI            //三轴   37 //#define QUADP            //四轴交叉模式   38 #define QUADX            //四轴X模式   39 //#define Y4            //四轴Y模式   40 //#define Y6            ///六轴Y模式   41 //#define HEX6            //六轴   42 //#define HEX6X            //六轴X模式   43 //#define HEX6H            // 新类型 六轴H模式   44 //#define OCTOX8        //八轴   45 //#define OCTOFLATP        //八轴十字   46 //#define OCTOFLATX        //八轴X   47 //#define FLYING_WING    //飞翼   48 //#define VTAIL4        ///四轴v尾   49 //#define AIRPLANE        //固定翼   50 //#define SINGLECOPTER    //单旋翼   51 //#define DUALCOPTER    //双旋翼   52 //#define HELI_120_CCPM    //120度CCPM直升机   53 //#define HELI_90_DEG    ///90度斜盘直升机   54    55 /****************************    电机最小油门    *******************************/   56 /* 设置发送至电调(ESC,Electronic Speed Controller)最小油门命令   57 最小值允许电机在怠速上运行 即维持电机怠速的最低油门值.  */   58 //#define MINTHROTTLE 1300 // 用于Turnigy Plush ESCs 10A   59 //#define MINTHROTTLE 1120 // 用于Super Simple ESCs 10A   60 //#define MINTHROTTLE 1064 // 特殊的ESC (simonk蜘蛛电调)   61 //#define MINTHROTTLE 1050 // 用于brushed ESC比如ladybird   62 #define MINTHROTTLE 1150 // (*)   63    64 /****************************    电机最大油门     *******************************/   65 /* ESC全功率工作的最大值,最大值为2000 */   66 #define MAXTHROTTLE 1850   67    68 /****************************    最小命令          *******************************/   69 /* 未解时使用该值ESC   70 在某些情况下,一些特殊的电调必须降至900,否则,电调会初始失败   71 OYUZIQI提示 用场效应管驱动空心杯时,如果稍微旋转,可以适当降低此值*/   72 #define MINCOMMAND  1000   73    74 /**********************************    I2C速度   ************************************/   75 //#define I2C_SPEED 100000L     //100kHz普通模式,正品WPM该值必须使用   76 #define I2C_SPEED 400000L   //400kHz快速模式,只用于一些山寨WPM (可用于GY系列模块)   77    78 /***************************    内部i2c上拉        ********************************/   79 /* 启用内部I2C上拉(在大多数情况下,最好使用外部上拉)(GY系列模块自带外部上拉) */   80 //#define INTERNAL_I2C_PULLUPS   81    82 /**********************************  循环周期时间  ******************************/   83 #define LOOP_TIME 2800   84    85 /**************************************************************************************/   86 /*****************          定义主控板和传感器            ******************/   87 /**************************************************************************************/   88    89 /***************************    传感器组合板(传感器集成板)    ********************************/   90 /* 若使用特定的传感器板:   91 请将变更提交到此列表。   92 来自Alex提示:我只有一些板,对于其他板,我不能保证易于使用,信息由遥控论坛生成,请小心使用 *   93 /*=======================友情提示==========================   94 淘宝上有一些集成板可以找到,如GY_XX系列更划算。   95 推荐GY_86,MPU6050\HMC5883L\MS5611的组合相当划算。   95 推荐GY_86,MPU6050\HMC5883L\MS5611的组合相当划算。BMP180085气压计真的不太好。   96 */   97    98    99 //#define FFIMUv1         // first 9DOF baro board from Jussi, with HMC5843                   <- confirmed by Alex  100 //#define FFIMUv2         // second version of 9DOF baro board from Jussi, with HMC5883       <- confirmed by Alex  101 //#define FREEIMUv1       // v0.1 & v0.2 & v0.3 version of 9DOF board from Fabio  102 //#define FREEIMUv03      // FreeIMU v0.3 and v0.3.1  103 //#define FREEIMUv035     // FreeIMU v0.3.5 no baro  104 //#define FREEIMUv035_MS  // FreeIMU v0.3.5_MS                                                <- cnfirmed by Alex
 105 //#define FREEIMUv035_BMP // FreeIMU v0.3.5_BMP
 106 //#define FREEIMUv04      // FreeIMU v0.4 with MPU6050, HMC5883L, MS561101BA                  <- confirmed by Alex
 107 //#define FREEIMUv043     // same as FREEIMUv04 with final MPU6050 (with the right ACC scale)
 108 //#define NANOWII         // the smallest multiwii FC based on MPU6050 + pro micro based proc <- confirmed by Alex
 109 //#define PIPO            // 9DOF board from erazz
 110 //#define QUADRINO        // full FC board 9DOF+baro board from witespy  with BMP085 baro     <- confirmed by Alex
 111 //#define QUADRINO_ZOOM   // full FC board 9DOF+baro board from witespy  second edition
 112 //#define QUADRINO_ZOOM_MS// full FC board 9DOF+baro board from witespy  second edition       <- confirmed by Alex
 113 //#define ALLINONE        // full FC board or standalone 9DOF+baro board from CSG_EU
 114 //#define AEROQUADSHIELDv2
 115 //#define ATAVRSBIN1      // Atmel 9DOF (Contribution by EOSBandi). requires 3.3V power.
 116 //#define SIRIUS          // Sirius Navigator IMU                                             <- confirmed by Alex
 117 //#define SIRIUSGPS       // Sirius Navigator IMU  using external MAG on GPS board            <- confirmed by Alex
 118 //#define SIRIUS600       // Sirius Navigator IMU  using the WMP for the gyro
 119 //#define SIRIUS_AIR      // Sirius Navigator IMU 6050 32U4 from MultiWiiCopter.com           <- confirmed by Alex
 120 //#define SIRIUS_AIR_GPS  // Sirius Navigator IMU 6050 32U4 from MultiWiiCopter.com with GPS/MAG remote located
 121 //#define SIRIUS_MEGAv5_OSD //  Paris_Sirius™ ITG3050,BMA280,MS5611,HMC5883,uBlox  http://www.Multiwiicopter.com <- confirmed by Alex
 122 //#define MINIWII         // Jussi's MiniWii Flight Controller                                <- confirmed by Alex
 123 //#define MICROWII        // MicroWii 10DOF with ATmega32u4, MPU6050, HMC5883L, MS561101BA from http://flyduino.net/
 124 //#define CITRUSv2_1      // CITRUS from qcrc.ca
 125 //#define CHERRY6DOFv1_0
 126 //#define DROTEK_10DOF    // Drotek 10DOF with ITG3200, BMA180, HMC5883, BMP085, w or w/o LLC
 127 //#define DROTEK_10DOF_MS // Drotek 10DOF with ITG3200, BMA180, HMC5883, MS5611, LLC
 128 //#define DROTEK_6DOFv2   // Drotek 6DOF v2
 129 //#define DROTEK_6DOF_MPU // Drotek 6DOF with MPU6050
 130 //#define DROTEK_10DOF_MPU//
 131 //#define MONGOOSE1_0     // mongoose 1.0    http://store.ckdevices.com/
 132 //#define CRIUS_LITE      // Crius MultiWii Lite
 133 //#define CRIUS_SE        // Crius MultiWii SE
 134 //#define CRIUS_SE_v2_0   // Crius MultiWii SE 2.0 with MPU6050, HMC5883 and BMP085
 135 //#define OPENLRSv2MULTI  // OpenLRS v2 Multi Rc Receiver board including ITG3205 and ADXL345
 136 //#define BOARD_PROTO_1   // with MPU6050 + HMC5883L + MS baro
 137 //#define BOARD_PROTO_2   // with MPU6050 + slave  MAG3110 + MS baro
 138 //#define GY_80           // Chinese 10 DOF with  L3G4200D ADXL345 HMC5883L BMP085, LLC
 139 //#define GY_85           // Chinese 9 DOF with  ITG3205 ADXL345 HMC5883L LLC
 140 //#define GY_86           // Chinese 10 DOF with  MPU6050 HMC5883L MS5611, LLC
 141 #define GY_88 // Chinese 10 DOF with MPU6050 HMC5883L BMP085, LLC
 142 //#define GY_521          // Chinese 6  DOF with  MPU6050, LLC
 143 //#define INNOVWORKS_10DOF // with ITG3200, BMA180, HMC5883, BMP085 available here http://www.diymulticopter.com
 144 //#define INNOVWORKS_6DOF // with ITG3200, BMA180 available here http://www.diymulticopter.com
 145 //#define MultiWiiMega    // MEGA + MPU6050+HMC5883L+MS5611 available here http://www.diymulticopter.com
 146 //#define PROTO_DIY       // 10DOF mega board
 147 //#define IOI_MINI_MULTIWII// www.bambucopter.com
 148 //#define Bobs_6DOF_V1     // BobsQuads 6DOF V1 with ITG3200 & BMA180
 149 //#define Bobs_9DOF_V1     // BobsQuads 9DOF V1 with ITG3200, BMA180 & HMC5883L
 150 //#define Bobs_10DOF_BMP_V1 // BobsQuads 10DOF V1 with ITG3200, BMA180, HMC5883L & BMP180 - BMP180 is software compatible with BMP085
 151 //#define FLYDUINO_MPU       // MPU6050 Break Out onboard 3.3V reg
 152 //#define CRIUS_AIO_PRO
 153 //#define DESQUARED6DOFV2GO  // DEsquared V2 with ITG3200 only
 154 //#define DESQUARED6DOFV4    // DEsquared V4 with MPU6050
 155 //#define LADYBIRD
 156 //#define MEGAWAP_V2_STD     // available here: http://www.multircshop.com                    <- confirmed by Alex
 157 //#define MEGAWAP_V2_ADV
 158 //#define HK_MultiWii_SE_V2  // Hobbyking board with MPU6050 + HMC5883L + BMP085
 159 //#define HK_MultiWii_328P   // Also labeled "Hobbybro" on the back.  ITG3205 + BMA180 + BMP085 + NMC5583L + DSM2 Connector (Spektrum Satellite)
 160 //#define RCNet_FC           // RCNet FC with MPU6050 and MS561101BA  http://www.rcnet.com
 161 //#define RCNet_FC_GPS       // RCNet FC with MPU6050 + MS561101BA + HMC5883L + UBLOX GPS http://www.rcnet.com
 162 //#define FLYDU_ULTRA        // MEGA+10DOF+MT3339 FC
 163 //#define DIYFLYING_MAGE_V1  // diyflying 10DOF mega board with MPU6050 + HMC5883L + BMP085 http://www.indoor-flying.hk
 164 //#define MultiWii_32U4_SE         // Hextronik MultiWii_32U4_SE
 165 //#define MultiWii_32U4_SE_no_baro // Hextronik MultiWii_32U4_SE without the MS561101BA to free flash-memory for other functions
 166 //#define Flyduino9DOF       // Flyduino 9DOF IMU MPU6050+HMC5883l
 167 //#define Nano_Plane         // Multiwii Plane version with tail-front LSM330 sensor http://www.radiosait.ru/en/page_5324.html
 168 
 169 /***************************    独立的传感器    ********************************/
 170 /* 
 171 如果你已在上方选择了相应的组合板子,请跳过,保持以下注释状态即可 
 172 这里是用来设置你单独连接在I2C上的传感器模块。当然每样都单独买价格会高一些,如果你是豪,当我没说。
 173 */
 174 /* I2C陀螺仪 */
 175 //#define WMP
 176 //#define ITG3050
 177 //#define ITG3200
 178 //#define MPU3050
 179 //#define L3G4200D
 180 //#define MPU6050       //带了加速度
 181 //#define LSM330        //带了加速度
 182 
 183 /* I2C加速度计 */
 184 //#define MMA7455
 185 //#define ADXL345
 186 //#define BMA020
 187 //#define BMA180
 188 //#define BMA280
 189 //#define LIS3LV02
 190 //#define LSM303DLx_ACC
 191 //#define MMA8451Q
 192 
 193 /* I2C气压计 */
 194 //#define BMP085
 195 //#define MS561101BA
 196 
 197 /* I2C磁力计 */
 198 //#define HMC5843
 199 //#define HMC5883
 200 //#define AK8975
 201 //#define MAG3110
 202 
 203 /* 声呐 */ // 目前用作显示用途 - 无控制代码支持 
 204 /* OYUZIQI提示:貌似bbs.5imx.com上有大神完成了代码,且国外论坛上有光流
 205 http://bbs.5imx.com/bbs/forum.php?mod=viewthread&tid=726172&page=1
 206 http://www.multiwii.com/forum/viewtopic.php?f=7&t=1413
 207 */
 208 //#define SRF02 // use the Devantech SRF i2c sensors
 209 //#define SRF08
 210 //#define SRF10
 211 //#define SRF235
 212 
 213 /* ADC加速度计 */ // 用于来自sparkfun的5DOF,使用模拟针脚A1/A2/A3
 214 //#define ADCACC
 215 
 216 /* 强制你独有的的传感器方向 - 甚至覆盖集成dof板子特定的默认值 */
 217 //#define FORCE_ACC_ORIENTATION(X, Y, Z)  {imu.accADC[ROLL]  =  Y; imu.accADC[PITCH]  = -X; imu.accADC[YAW]  = Z;}
 218 //#define FORCE_GYRO_ORIENTATION(X, Y, Z) {imu.gyroADC[ROLL] = -Y; imu.gyroADC[PITCH] =  X; imu.gyroADC[YAW] = Z;}
 219 //#define FORCE_MAG_ORIENTATION(X, Y, Z)  {imu.magADC[ROLL]  =  X; imu.magADC[PITCH]  =  Y; imu.magADC[YAW]  = Z;}
 220 
 221 /* 板子方向转移 */
 222 /* 如果你的机架设计仅用于+模式,并且你不能物理上将飞控旋转至用于X模式飞行(反之亦然)
 223 * 你可以使用其中一个选项虚拟旋转传感器45度,然后通过飞行模式设定多旋翼飞行器的类型。
 224 * 检查电机顺序与旋转方向是否与新的“前方”匹配!仅使用其中一项注释! */
 225 //#define SENSORS_TILT_45DEG_RIGHT        // 将“前方”顺时针旋转45度
 226 //#define SENSORS_TILT_45DEG_LEFT         // 将“前方”逆时针旋转45度
 227 
 228 
 229 /*************************************************************************************************/
 230 /*****************                                                                 ***************/
 231 /****************  SECTION  2 - 飞行器类型特定的选项                               *******/
 232 /*****************                                                                 ***************/
 233 /*************************************************************************************************/
 234 /********************************  PID控制算法 *********************************/
 235 /* 单独选择一个PID控制算法
 236 * 1 = 演进 oldschool 算法(类似于V2.2)
 237 * 2 = 新的实验算法 来自 Alex Khoroshko - 无技术支持 - http://www.multiwii.com/forum/viewtopic.php?f=8&t=3671&start=10#p37387
 238 * */
 239 #define PID_CONTROLLER 1
 240 
 241 /* NEW: 不再使用伺服飞行器种类 (需要修复))   <== NEEDS FIXING - MOVE TO WIKI */
 242 #define YAW_DIRECTION 1
 243 //#define YAW_DIRECTION -1 // 如果你想反向修正偏航方向
 244 
 245 #define ONLYARMWHENFLAT //阻止飞行器倾斜时解锁
 246 
 247 /********************************    锁定/解锁    *********************************/
 248 /* 可以禁止使用摇杆组合进行锁定/解锁电机。
 249 * 在多数情况下,选择其中一种通过发射机摇杆锁定/解锁电机的选项即可 */
 250 #define ALLOW_ARM_DISARM_VIA_TX_ROLL //通过翻滚(副翼)解锁
 251 //#define ALLOW_ARM_DISARM_VIA_TX_YAW    //通过转向(尾舵)解锁(默认)
 252 
 253 /********************************    舵机      *********************************/
 254 /* 舵机连接在哪里以及如何设置可以在这里找到
 255 * http://www.multiwii.com/wiki/index.php?title=Config.h#Servos_configuration
 256 */
 257 
 258 
 259 /* 如果你想预定最小/中间/最大值为伺服正确后flashing,
 260 因为物理因素限制伺服行程的设置,您必须启用并设置所有三以下选项* /
 261 //#define SERVO_MIN  {1020, 1020, 1020, 1020, 1020, 1020, 1020, 1020} //舵机最小值(jpno1 注)
 262 //#define  SERVO_MAX {2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000} //舵机最大值(jpno1 注)
 263 //#define  SERVO_MID {1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500} // (*)舵机中立点(jpno1注)
 264 //#define FORCE_SERVO_RATES      {30,30,100,100,100,100,100,100} // 0=正向 1=反向
 265 
 266 /***********************          相机稳定             ***********************/
 267 /* 以下几行仅用于pitch/roll倾斜稳定系统。去除注释第一或第二行来激活它 */
 268 //#define SERVO_MIX_TILT  //混合模式(用于十字模式) (jpno1注)
 269 //#define SERVO_TILT      // 普通x模式适用(jpno1注)
 270 
 271 /* 相机触发设置 : 激发路径显示在GUI, 使用A2作为舵机输出在promini */
 272 // 触发路径可以设置 (*GUI*) or 或者通过AUX铺助通道
 273 //#define CAMTRIG
 274 #define CAM_TIME_HIGH 1000   // 高电平时间(毫秒)
 275 
 276 /***********************          飞机                       ***********************/
 277 //#define USE_THROTTLESERVO // 用于在油门上使用标准50Hz舵机。
 278 
 279 //#define FLAPPERONS    AUX4          // 混合襟翼与副翼。
 280 #define FLAPPERON_EP   { 1500, 1700 } // 用于襟翼双向切换的端点,另外可设为{1020,2000}并在遥控上编程。
 281 #define FLAPPERON_INVERT { -1, 1 }    // 改变襟副翼的方向{ Wing1, Wing2 }
 282 
 283 //#define FLAPS                       // 传统移动 SERVO3.
 284 //#define FLAPSPEED     3             //使襟翼移动变慢,值越高速度越快。
 285 
 286 /***********************          直升机与飞机通用                ***********************/
 287 
 288 /* 调节器:试图通过螺距和电压的改变维持转速
 289 * 预测方法:观察输入信号与电压并猜测适当的修正。
 290 * (油门曲线必须为调节器留有空间,所以0-50-75-80-80是可以的,不可以为0-50-95-100-100。
 291 * 可以通过aux开关切换
 292 */
 293 //#define GOVERNOR_P 7     // (*) 比例因子。更大的值 -> 更大的油门增量。必须>=1;0 = 关闭
 294 //#define GOVERNOR_D 4     // (*) 衰减时间。更大的值 -> 油门回到正常需要更长时间。 必须>=1;
 295 //#define VOLTAGEDROP_COMPENSATION // 电压影响校正
 296 
 297 /***********************         直升机                          ***********************/
 298 /*  控制总距的通道 */
 299 #define COLLECTIVE_PITCH      THROTTLE
 300 
 301 /* 限制总距的范围。100%为每个方向的最大范围,还有零螺距的位置 */
 302 #define COLLECTIVE_RANGE { 80, 0, 80 }// {最小%,从1500开始的零螺距偏移,最大%}。
 303 #define YAWMOTOR                 0       // 如果一个电机用作YAW则设为1,否则设为0。
 304 
 305 /* 用于120直升机的舵机混控,使用分数1/10(例.5 = 5/10 = 1/2)
 306 {Coll,Nick,Roll} */
 307 #define SERVO_NICK   { +10, -10,  0 }
 308 #define SERVO_LEFT   { +10, +5, +10 } 
 309 #define SERVO_RIGHT  { +10, +5, -10 } 
 310 
 311 /* 限制用于Roll & Nick最大控制,范围0-100% */
 312 #define CONTROL_RANGE   { 100, 100 }      //  { ROLL,PITCH }
 313 
 314 /* 使用舵机代码驱动油门输出。用模拟舵机驱动IC引擎上的油门时,你会需要此项。
 315 如果不启用,油门输出会被看做电机输出,所以它可以驱动电调 */
 316 //#define HELI_USE_SERVO_FOR_THROTTLE
 317 
 318 /***********************      你的独立混控              ***********************/
 319 /* 如果你想要覆盖一个选存的混合表中的条目,你可能想要避免
 320 * 在每个版本一遍又一遍的编辑mixTable()函数
 321 * 操作方式:http://www.multiwii.com/wiki/index.php?title=Config.h#Individual_Mixing
 322 */
 323 //#define MY_PRIVATE_MIXING "filename.h"    更改filename.h为你自己的默认文件(jpno1注)
 324 
 325 /***********************      y你的默认参数    ***********************/
 326 /* 如果你想要覆盖一个选存的混合表中的条目,你可能想要避免
 327 * 在每个版本一遍又一遍的编辑 LoadDefaults() 函数
 328 * http://www.multiwii.com/wiki/index.php?title=Config.h#Individual_defaults
 329 */
 330 //#define MY_PRIVATE_DEFAULTS "filename.h"   更改filename.h为你自己的默认文件(jpno1注)
 331 
 332 
 333 /*************************************************************************************************/
 334 /*****************                                                                 ***************/
 335 /****************  SECTION  3 - 无线遥控系统设置                                           *******/
 336 /*****************                                                                 ***************/
 337 /*************************************************************************************************/
 338 
 339 /* 提示:如果你使用的是标准接收机,不必取消本节的一些注释 */
 340 
 341 /****************************     扩展辅助状态     ***********************************/
 342 /* 如果你启用这个设置,在AUX通道(aux1-aux4)通道,你可以使用六个档位。
 343 注意:能使用6个档位的只有wingui 2.3或者更新的版本地面站。multiwiiconf还不支持
 344 档位值
 345 1000-1230
 346 1231-1360
 347 1361-1490
 348 1491-1620
 349 1621-1749
 350 1750-
 351 
 352 */
 353 
 354 //#define EXTENDED_AUX_STATES
 355 
 356 
 357 /**************************************************************************************/
 358 /********                       特殊接收机类型                     ********************/
 359 /**************************************************************************************/
 360 
 361 /****************************    PPM Sum接收机      ***********************************/
 362 /* 下列几行仅用于特定的仅有一个PPM sum信号的接收机,接在数字针脚2上
 363 根据你的遥控品牌选择相应的行。当你的PPM顺序不同时,你可以随意修改顺序 */
 364 //#define SERIAL_SUM_PPM         PITCH,YAW,THROTTLE,ROLL,AUX1,AUX2,AUX3,AUX4,8,9,10,11 //用于Graupner/Spektrum
 365 //#define SERIAL_SUM_PPM         ROLL,PITCH,THROTTLE,YAW,AUX1,AUX2,AUX3,AUX4,8,9,10,11 //用于Robe/Hitec/Futaba
 366 //#define SERIAL_SUM_PPM         ROLL,PITCH,YAW,THROTTLE,AUX1,AUX2,AUX3,AUX4,8,9,10,11 //用于Multiplex
 367 //#define SERIAL_SUM_PPM         PITCH,ROLL,THROTTLE,YAW,AUX1,AUX2,AUX3,AUX4,8,9,10,11 //用于一些韩国的/日本三和/其它
 368 
 369 // 解除下面这行注释以允许连接PPM_SUM接收机至MEGA板上的标准油门针脚(例.CRIUS AIO上的A8)
 370 //#define PPM_ON_THROTTLE
 371 
 372 /**********************    Spektrum卫星接收机    *******************************/
 373 /* 以下几行仅用于Spektrum卫星接收机
 374 Spektrum卫星系列是3V设备。不要连接至5V!
 375 对于MEGA板,将灰线连接到RX1,19针脚上。黑线接地。橙线连接到Mega板的3.3V上(或其他3V至3.3V的电源)。
 376 对于PROMINI,将灰线连接到RX0。黑线接地。 */
 377 //#define SPEKTRUM 1024
 378 //#define SPEKTRUM 2048
 379 //#define SPEK_SERIAL_PORT 1    // Pro Mini与其他单串口的板子上只能设为0;在所有基于Mega的板子上设为你选择的0,1,2(在Mega上默认为1)。
 380 //**************************
 381 // 定义此项允许Spektrum或兼容机远程接收机(也就是卫星)通过配置GUI对频。
 382 //   对频模式与上述的相同,只要你的发射机支持。
 383 //   接地,电源,信号必须来自三个邻近的针脚。
 384 //   默认下,它们为接地=4,电源=5,信号=6。这些针脚在多数MultiWii扩展板上都为一排。可在下方覆盖针脚。
 385 //   通常需要在电源针脚上使用3.3V稳压器!!如果你的卫星在对频时停摆(闪烁,但不会常亮停止闪烁),将所有的针脚连接至5V。
 386 //**************************
 387 //   对于Pro Mini,用于卫星的属于FTDI的连接器可以拔掉,并移至那三个相邻针脚。
 388 //#define SPEK_BIND             //解除注释以开启Spektrum卫星对频支持。没有它代码可节省约420字节。
 389 //#define SPEK_BIND_GROUND 4
 390 //#define SPEK_BIND_POWER  5
 391 //#define SPEK_BIND_DATA   6
 392 
 393 /*******************************    SBUS接收机        ************************************/
 394 /* 下面这行仅用于Futaba S-Bus接收机在MEGA板上的RX1的情况(串口1)。
 395 你必须反转S-Bus-串口信号,例如使用十六进制反相器像是IC SN74 LS 04 */
 396 //#define SBUS
 397 //#define SBUS_SERIAL_PORT 1
 398 #define SBUS_MID_OFFSET 988 //SBUS Mid-Point at 1500
 399 
 400 /******************************* HOTT 接收机 ************************************/
 401 /* Graupner Hott HD */
 402 //#define SUMD PITCH,YAW,THROTTLE,ROLL,AUX1,AUX2,AUX3,AUX4
 403 //#define RX_SERIAL_PORT 1
 404 
 405 /*************************************************************************************************/
 406 /*****************                                                                 ***************/
 407 /****************  SECTION  4 - 替代的CPU和主板                                    *******/
 408 /*****************                                                                 ***************/
 409 /*************************************************************************************************/
 410 
 411 /**************************************************************************************/
 412 /********                      Promini板专用设置           ********************/
 413 /**************************************************************************************/
 414 
 415 /**************************       六轴电机 5 & 6 针脚    *******************************/
 416 /* 用A0与A1针脚代替D5与D6针脚,用于6个电机配置与promini配置
 417 该模式允许在promini上标准接收机的使用
 418 (不必使用PPM sum接收机) */
 419 //#define A0_A1_PIN_HEX
 420 
 421 /*********************************    Aux 2 针脚     ***********************************/
 422 /* 让你可以使用针脚8或针脚12作为遥控的AUX2输入(只可启用一个,不可全部启用)
 423 如果启用它会使功率针脚(针脚12)或蜂鸣针脚(针脚8)失效 */
 424 //#define RCAUXPIN8
 425 //#define RCAUXPIN12
 426 
 427 
 428 /**************************************************************************************/
 429 /*****************             Teensy 2.0 支持                    ******************/
 430 /**************************************************************************************/
 431 /* 解除此项如果你使用的是使用teensyduino的teensy 2.0
 432 它需要运行在16MHz */
 433 //#define TEENSY20
 434 
 435 
 436 /**************************************************************************************/
 437 /********   用于ProMicro,Leonardo和其他Atmega32u4板子的设置                ***********/
 438 /**************************************************************************************/
 439 
 440 /*********************************    针脚布局       **********************************/
 441 /* 如果所有针脚都能使用,激活此项可获得更好的针脚布局 => 在ProMicro上不可用 */
 442 //#define A32U4ALLPINS
 443 
 444 /**********************************    PWM设置       **********************************/
 445 /* 激活全部6个硬件PWM输出,电机5 = D11,电机6 = D13。
 446 提示:不可用于sparkfun promicro(针脚11 & 13未被引出)
 447 如果激活:
 448 电机1-6 = 10位硬件PWM
 449 电机7-8 = 8位软件PWM
 450 舵机    = 8位软件PWM
 451 如果未激活:
 452 电机1-4 = 10位硬件PWM
 453 电机5-8 = 10位软件PWM
 454 舵机    = 10位软件PWM */
 455 //#define HWPWM6
 456 
 457 /**********************************    Aux 2 针脚    **********************************/
 458 /* AUX2针脚在RXO针脚上 */
 459 //#define RCAUX2PINRXO
 460 
 461 /* aux2针脚在D17针脚上(RXLED) */
 462 //#define RCAUX2PIND17
 463 
 464 /**********************************    蜂鸣针脚      **********************************/
 465 /* 此项将蜂鸣针脚从TX0移动至D8以使用ppm sum或spectrum sat.接收机(如果启用了A32U4ALLPINS则不需此项) */
 466 //#define D8BUZZER
 467 
 468 /***********************      Promicro版本相关             ****************************/
 469 /* 反转状态LED用于Promicro版本10 */
 470 //#define PROMICRO10
 471 
 472 
 473 /**************************************************************************************/
 474 /********                      默认针脚分配调整    ********************/
 475 /**************************************************************************************/
 476 
 477  /* 仅在你必须改变默认针脚分配时才启用其中一项,例:你的板子没有特定针脚 */
 478   /* 你可能需要依据期望的针脚给PINx与PORTx加上#移位! */
 479 
 480 //#define OVERRIDE_V_BATPIN                   A0 // 代替A3    //模拟针脚3
 481 
 482 //#define OVERRIDE_PSENSORPIN                 A1 // 代替A2    //模拟针脚2
 483 
 484 //#define OVERRIDE_LEDPIN_PINMODE             pinMode (A1, OUTPUT); // 使用A1代替d13
 485 //#define OVERRIDE_LEDPIN_TOGGLE              PINC |= 1<<1; // PINB |= 1<<5;     //切换LED针脚状态(数字针脚13)
 486 //#define OVERRIDE_LEDPIN_OFF                 PORTC &= ~(1<<1); // PORTB &= ~(1<<5);
 487 //#define OVERRIDE_LEDPIN_ON                  PORTC |= 1<<1;    // was PORTB |= (1<<5);
 488 
 489 //#define OVERRIDE_BUZZERPIN_PINMODE          pinMode (A2, OUTPUT); // 使用A2代替d8
 490 //#define OVERRIDE_BUZZERPIN_ON               PORTC |= 1<<2 //PORTB |= 1;
 491 //#define OVERRIDE_BUZZERPIN_OFF              PORTC &= ~(1<<2); //PORTB &= ~1;
 492 
 493 /*************************************************************************************************/
 494 /*****************                                                                 ***************/
 495 /****************  SECTION  5 - 替代设置                                                   *******/
 496 /*****************                                                                 ***************/
 497 /*************************************************************************************************/
 498 
 499 /******                串行速率    *********************************/
 500 /* 此为每个串口的速率 */
 501 #define SERIAL0_COM_SPEED 115200
 502 #define SERIAL1_COM_SPEED 115200
 503 #define SERIAL2_COM_SPEED 115200
 504 #define SERIAL3_COM_SPEED 115200
 505 
 506 /* 当I2C总线有错误时,我们可在很短的时间内中立化相关值。用微秒表示
 507 它仅与至少有一个WMP的配置相关 */
 508 #define NEUTRALIZE_DELAY 100000
 509 
 510 /**************************************************************************************/
 511 /********                              陀螺仪滤波器                ********************/
 512 /**************************************************************************************/
 513 
 514 /*********************    特定的几款陀螺仪的低通滤波器    ****************************/
 515 /* ITG3200 & ITG3205 的低通滤波设置. 如果你不能减小飞行器震动,你可以尝试
 516 逐步降低低通滤波器的频率,一旦抖动消失就可以保持相应滤波设置
 517   它对回馈引起的摆动不起作用,所以只在飞行器随机抽动并且所有抑制和平衡设置失效的时候才修改它。只取消注释其中一项!
 518   重要!改变低通滤波器设置将会改变PID的行为,所以在改变LPF后重新调整你的PID。
 519   支持低通滤波的陀螺仪模块:ITG3050, ITG3200, MPU3050, MPU6050*/
 520 //#define GYRO_LPF_256HZ      // 此为默认设置,不需要取消注释,只作为参考
 521 //#define GYRO_LPF_188HZ
 522 //#define GYRO_LPF_98HZ
 523 //#define GYRO_LPF_42HZ
 524 #define GYRO_LPF_20HZ
 525 //#define GYRO_LPF_10HZ
 526 //#define GYRO_LPF_5HZ        // 只在极端情况下使用此项,更应该换电机和/或螺旋桨 -- 此设置不能在ITG3200陀螺仪上工作
 527 
 528 /******                陀螺仪平滑化    **********************************/
 529 /* GYRO_SMOOTHING.在你不能消除振动的情况下,_并且_是在尝试了低通滤波器选项_之后_,你
 530 可尝试此通过平均化的陀螺仪平滑化。不适用于多旋翼飞行器!
 531 在有很多振动的直升机,飞机和飞翼(泡沫的)上可获得良好结果。*/
 532 //#define GYRO_SMOOTHING {20, 20, 3}    // (*) 分别为roll, pitch, yaw的平均化范围
 533 
 534 /************************    移动平均陀螺仪    **********************************/
 535 //#define MMGYRO 10                      // (*) 激活用于陀螺仪的移动平均函数
 536 //#define MMGYROVECTORLENGTH 15          // 移动平均向量的长度(用于可调节的MMGYRO的最大值
 537 /* 移动平均舵机云台信号输出 */
 538 //#define MMSERVOGIMBAL                  // 激活用于舵机云台的输出移动平均函数
 539 //#define MMSERVOGIMBALVECTORLENGHT 32   // 移动平均向量的长度
 540 
 541 /************************    模拟读取   ********************************** /
 542 /*如果你想更快的模拟读取,注释它。它可能会导致不准确的结果,特别是对多个模拟通道*/
 543 //#define FASTER_ANALOG_READS
 544 
 545 /*************************************************************************************************/
 546 /*****************                                                                 ***************/
 547 /****************  SECTION  6 - 可选功能                                                   *******/
 548 /*****************                                                                 ***************/
 549 /*************************************************************************************************/
 550 
 551 /************************        解锁后重置气压计高度         ********************/
 552 /* When unchecked a calibration of the baro altitude is preformed every time arming is activated */
 553 #define ALTITUDE_RESET_ON_ARM
 554 
 555 /************************        油门随着角度补偿         ********************/
 556   /* 可以让你飞机倾斜的时候不要掉高度。根据角度增加油门,这是可以开下来的,但是要根据飞机不同来调节。免得角度一倾斜,油门窜得太高。
 557      最初构想 by Kraut Rob, first implementation HAdrian                            */
 558 
 559   //#define THROTTLE_ANGLE_CORRECTION 40
 560 
 561 /*** 无头模式 : 起飞点和飞行器的连线将成为控制方向 ***/
 562 #define HEADFREE
 563 
 564  /*************************       高级 Headfree 无头模式             ********************/
 565  /* In Advanced Headfree mode when the copter is farther than ADV_HEADFREE_RANGE meters then 
 566     the  bearing between home and copter position will become the control direction 
 567     IF copter come closer than ADV_HEADFREE_RANGE meters, then the control direction freezed to the 
 568     bearing between home and copter at the point where it crosses the ADV_HEADFREE_RANGE meter distance
 569     first implementation by HAdrian, mods by EOSBandi
 570   在高级无头模式下,当飞行机超过ADV_HEADFREE_RANGE定义的范围, 
 571   起飞点和飞行器的连线将成为控制方向, 当飞行器飞入ADV_HEADFREE_RANGE定义范围,那么控制方向将锁定为原点和飞行器飞入ADV_HEADFREE_RANGE
 572   范围内时位置的连线,
 573  */
 574 
 575    //#define ADVANCED_HEADFREE                                    //去掉注释开启高级无头模式
 576    //#define ADV_HEADFREE_RANGE 15                                //高级无头模式范围米.
 577 
 578 
 579 /************************        连续的陀螺仪校准                     ********************/
 580   /* 如果在校准过程中飞行器被移动,陀螺仪校准将会重复。 */
 581     //#define GYROCALIBRATIONFAILSAFE
 582 
 583 /************************        AP飞行模式           **********************************/
 584 /* 临时禁用GPS_HOLD_MODE(GPS保持模式),让移动摇杆时可以调整定点位置。*/
 585 #define AP_MODE 40  // Create a deadspan for GPS.
 586 
 587 /************************    辅助特技练习器         ************************************/
 588 /* 在自动复原辅助下训练特技。该值设定ANGLE_MODE接管的点。
 589 记住首先激活ANGLE_MODE!...
 590 值为200将会给你一个很明显的转换 */
 591 //#define ACROTRAINER_MODE 200   // http://www.multiwii.com/forum/viewtopic.php?f=16&t=1944#p17437
 592 
 593 
 594 /********                          失控保护设置                 ********************/
 595 /* 失控保护检查四个控制通道CH1-CH4的脉冲。如果脉冲丢失或低于985us(在这四个通道的任意一个上)
 596 失控保护程序就会启动。从失控保护检测到,再经过FAILSAFE_DELAY的时间,自稳模式就会开启(如果加速度或鸡腿柄可用),
 597 PITCH,ROLL和YAW被置中,油门设为FAILSAFE_THR0TTLE的值。你必须设定该值使下降速度在1m/s左右
 598 以获得最佳结果。该值取决于你的配置,总重量和一些其他参数。接下来,在FAILSAFE_OFF_DELAY之后,飞行器会被锁定,
 599 并且电机会停止。如果遥控脉冲在到达FAILSAFE_OFF_DELAY时间之前恢复,在很短的保护时间之后遥控就会恢复正常。 */
 600 //#define FAILSAFE                                // 解除注释以激活failsafe函数
 601 #define FAILSAFE_DELAY     10                     // 用于丢失信号之后失控保护激活之前的保护时间。1步=0.1秒 - 示例中为1秒
 602 #define FAILSAFE_OFF_DELAY 200                    // 用于电机停止前的着陆时间,以0.1秒为单位。1步=0.1秒 - 示例中为20秒
 603 #define FAILSAFE_THROTTLE  (MINTHROTTLE + 200)    // (*) 用于降落的油门级别 - 可与MINTHROTTLE相关联 - 如本例所示
 604 
 605 #define FAILSAFE_DETECT_TRESHOLD  985
 606 
 607 
 608 /*****************                DFRobot LED 光环     *********************************/
 609 /* I2C DFRobot LED光环通讯 */
 610 //#define LED_RING
 611 
 612 /********************************    LED闪光灯      ***********************************/
 613 //#define LED_FLASHER
 614 //#define LED_FLASHER_DDR DDRB
 615 //#define LED_FLASHER_PORT PORTB
 616 //#define LED_FLASHER_BIT PORTB4
 617 //#define LED_FLASHER_INVERT
 618 //#define LED_FLASHER_SEQUENCE        0b00000000      // leds关闭
 619 //#define LED_FLASHER_SEQUENCE_ARMED  0b00000101      // 创建双闪
 620 //#define LED_FLASHER_SEQUENCE_MAX    0b11111111      // 全照明
 621 //#define LED_FLASHER_SEQUENCE_LOW    0b00000000      // 无照明
 622 
 623 
 624 /*******************************    着陆灯            *********************************/
 625 /* 着陆灯
 626 使用一个输出针脚控制着陆灯。
 627 它与从声纳获得的高度数据结合时
 628 可以自动开关。 */
 629 //#define LANDING_LIGHTS_DDR DDRC
 630 //#define LANDING_LIGHTS_PORT PORTC
 631 //#define LANDING_LIGHTS_BIT PORTC0
 632 //#define LANDING_LIGHTS_INVERT
 633 
 634 /* 依据声纳传来的数在地面之上的高度(以cm为单位) */
 635 //#define LANDING_LIGHTS_AUTO_ALTITUDE 50
 636 
 637 /* 让闪光灯的样式应用于着陆灯LED */
 638 //#define LANDING_LIGHTS_ADOPT_LED_FLASHER_PATTERN
 639 
 640 /*************************    飞行时加速度计校准           *****************************/
 641 /* 此项会激活加速度计飞行时校准 */
 642 //#define INFLIGHT_ACC_CALIBRATION
 643 
 644 /*******************************    OSD切换        *************************************/
 645 // 此项会添加一个可被OSD解读的激活状态的选框(比如说开关覆盖物)
 646 //#define OSD_SWITCH
 647 
 648 /**************************************************************************************/
 649 /***********************              发射机-相关            **************************/
 650 /**************************************************************************************/
 651 
 652 /* 在摇杆中点周围引入一个死区(译者注:无作用控制区)
 653 必须大于零,如果你不需要在roll,pitch和yaw上的死区就注释掉它 */
 654 #define DEADBAND 6
 655 
 656 /**************************************************************************************/
 657 /***********************                  GPS                **************************/
 658 /**************************************************************************************/
 659 
 660 /* 启用GPS 模拟器 (只支持NMEA协议)*/
 661 //#define GPS_SIMULATOR
 662 
 663 /* GPS使用一个串口
 664 如果启用,在此定义Arduino串口号与UART速度
 665 注:如在NMEA模式只有RX针脚是被使用的,GPS不可被multiwii配置
 666 在NMEA模式下,GPS必须配置为输出GGA与RMC NMEA语句(在大部分GPS设备中通常为默认配置)
 667 至少为5Hz更新速率。解除第一行注释来选择用于GPS的arduino串口 */
 668 
 669 //#define GPS_SERIAL 2        
 670 // flyduino v2应设为2。此为arduino MEGA上的串口号
 671 // PRO_MINI(ex GPS_PRO_MINI)必须为0
 672 // 提示: 现在GPS可以共享同一端口的MSP。唯一的限制是不同时使用它,并使用相同的端口速度。
 673 
 674 // 避免使用115200波特因为16MHz Arduino 115200波特率超过2%速度误差(57600有0.8%的误差)
 675 //#define GPS_BAUD   38400       // GPS_BAUD will override SERIALx_COM_SPEED for the selected port
 676 
 677 /* GPS协议
 678 NMEA  - 标准NMEA协议。需要GGA,GSA与RMC语句
 679 UBLOX - U-Blox二进制协议,使用来自源码树的ublox配置文件(u-blox-config.ublox.txt)
 680 MTK_BINARY16 与 MTK_BINARY19 - 基于MTK3329芯片的GPS,使用DIYDrones二进制固件(v1.6 或 v1.9)
 681 在使用UBLOX与MTK_BINARY时你不需要在multiwii代码中使用GPS_FILTERING!!! */
 682 
 683 
 684 #define NMEA
 685 //#define UBLOX
 686 //#define MTK_BINARY16
 687 //#define MTK_BINARY19
 688 //#define INIT_MTK_GPS         // 初始化MTK GPS。使其使用选定的速度,5Hz更新速率与GGA & RMC语句或二进制的设置
 689 
 690 
 691 /* I2C GPS设备,使用一个独立的arduino + GPS设备制作
 692 包含一些导航函数
 693 由EOSBandi贡献   http://code.google.com/p/i2c-gps-nav/
 694 你必须使用I2CGpsNav r33以上版本 */
 695 /* all functionnalities allowed by SERIAL_GPS are now available for I2C_GPS: all relevant navigation computations are gathered in the main FC */
 696 
 697 #define I2C_GPS
 698 
 699 // 如果你的I2C GPS板有声纳支持
 700 //#define I2C_GPS_SONAR
 701 
 702 /* 通过LED闪烁表明GPS搜到了至少5颗有效的卫星 - 由MIS修改 - 使用常亮的LED(CRIUS AIO上为黄色)led作为星数指示器工作
 703 - GPS无定位 -> LED闪烁速度为收到GPS帧的速度
 704 - 定位并且星数小于5 -> LED关闭
 705 - 定位并且星数 >= 5 -> LED闪烁,闪一下表示5颗星,闪两下表示6颗星,三下表示7 ... */
 706 #define GPS_LED_INDICATOR
 707 
 708 // 启用MSP_WP命令,用于WinGUI显示与记录家与定点的位置
 709 #define USE_MSP_WP
 710 
 711 // 家的地点(HOME position)会在每次解锁时重置,解除注释此项来禁用它(你可以通过校准陀螺仪来设置家的地点)
 712 //#define DONT_RESET_HOME_AT_ARM
 713 
 714 /* 允许GPS导航控制头部方向 */
 715 
 716 // 飞行器面对着航点飞行,磁场保持必须为此开启
 717 #define NAV_CONTROLS_HEADING       1    //(**)
 718 // true - 飞行器以尾部首先飞来
 719 #define NAV_TAIL_FIRST             0    //(**)
 720 // true - 当飞行器到达家的位置时他会旋转至起飞时的角度
 721 #define NAV_SET_TAKEOFF_HEADING    1    //(**)
 722 
 723 /* 从这里获取你的磁偏角:http://magnetic-declination.com/
 724 转换度+分至小数的角度,通过 ==> 度+分*(1/60)
 725 注意磁偏角的符号,它可为负或正(西或东) */
 726 #define MAG_DECLINATION  -1.55f   //(中国广西南宁市江南区)
 727 
 728 // 添加向前预测滤波以补偿GPS延迟。代码基于Jason Short领导的滤波器实现
 729 #define GPS_LEAD_FILTER               //(**)
 730 
 731 // 添加5元素移动平均滤波器至GPS坐标,帮助消除GPS噪波但会增加延时,注释以禁用
 732 // 仅支持NMEA协议的GPS
 733 #define GPS_FILTERING                 //(**)
 734 
 735 // 如果我们与航点在此距离以内,我们则认为已到达航点(以cm为单位)
 736 #define GPS_WP_RADIUS              100      //(**)
 737 
 738 // 安全的航路点的距离,如果第一个航路点的距离大于这个数,将不执行任务(单位:米)
 739 //同时,下一个航点间的距离大于这个数任务也会被终止(也就是两个航点间距离不能大于这个数)
 740 #define SAFE_WP_DISTANCE           500      //(**)
 741 
 742 // 最大允许航行高度(米)高度自动控制不会超过这个高度
 743 #define MAX_NAV_ALTITUDE           100     //(**)
 744 
 745 //接近航点时的最小速度
 746 #define NAV_SPEED_MIN              100    // cm/sec //(**)
 747 //最大速度达到之间的航点
 748 #define NAV_SPEED_MAX              400    // cm/sec //(**)
 749 // 到达航点时减速到零(与nav_speed_min = 0类似)
 750 #define NAV_SLOW_NAV               0      //(**)
 751 // 在导航计算的偏航错误的权重因子(别改)
 752 #define CROSSTRACK_GAIN            .4     //(**)
 753 //导航时的最大倾斜输出
 754 #define NAV_BANK_MAX 3000                 //(**)
 755 
 756 //定义返回点高度。0是在返回点保持当时高度(米)
 757 #define RTH_ALTITUDE               15        //(**)
 758 //前往导航点前等待升高到预定高度(0-否,1-是)
 759 #define WAIT_FOR_RTH_ALT           1         //(**)
 760 
 761 //导航引擎接管气压定高模式工作
 762 #define NAV_TAKEOVER_BARO          1         //(**)
 763 
 764 //忽略油门杆的输入(只在气压定高模式)
 765 #define IGNORE_THROTTLE            1         //(**)
 766 
 767 //如果定义的范围大于0,飞行器将在超出此距离是自动切换到自动返航模式返回定义的返回点。
 768 #define FENCE_DISTANCE      600
 769 
 770 //这参数控制自动降落模式的降落速度. 100表示下降速度为50厘米/秒
 771 #define LAND_SPEED          100
 772 
 773 
 774 //#define ONLY_ALLOW_ARM_WITH_GPS_3DFIX      // 限制飞控只能在GPS获取到三维定位数据后解锁
 775 
 776 /**************************************************************************************/
 777 /***********************        LCD/OLED - 显示设置       *********************/
 778 /**************************************************************************************/
 779 
 780 /* http://www.multiwii.com/wiki/index.php?title=Extra_features#LCD_.2F_OLED */
 781 
 782     /*****************************    LCD种类              **********************************/
 783       /* 选择用于配置和遥测的LCD,见下方注解 */
 784 //#define LCD_DUMMY        // 无物理LCD附加。通过定义此与LCD_CONF,发射机遥杆可用于设置增益,通过观察LED闪烁。  
 785 //#define LCD_SERIAL3W    // Alex的初始变体使用3条导线,使用rx针脚进行传输@固定的9600波特率
 786 //#define LCD_TEXTSTAR    // 串口LCD:Cat's Whisker品牌的LCD_TEXTSTAR模块CW-LCD-02(拥有4个输入按键用于选择菜单)
 787 //#define LCD_VT100       // 串口LCD:vt100兼容终端仿真(blueterm,putty等)
 788 //#define LCD_TTY         // 串口LCD:用于通过线缆与arduino IDE“串口监视器”连接调整参数
 789 //#define LCD_ETPP        // I2C LCD:Eagle Tree品牌的Power Panel LCD,使用i2c(非串口)
 790 //#define LCD_LCD03       // I2C LCD:LCD03,使用i2c
 791 //#define LCD_LCD03S      // 串口LCD:lcd03通过串口9600波特率通信。
 792 //#define OLED_I2C_128x64 // I2C LCD: OLED http://www.multiwii.com/forum/viewtopic.php?f=7&t=1350
 793 //#define OLED_DIGOLE     // I2C OLED from http://www.digole.com/index.php?productID=550
 794 
 795 /******************************   显示设置   ***********************************/
 796 //#define LCD_SERIAL_PORT 0     // 在Pro Mini以及其他单串口板上只能设为0,在任何基于Mega的板子上可设置为你的选择
 797 
 798 //#define SUPPRESS_OLED_I2C_128x64LOGO  // 禁用OLED logo显示来节省储存
 799 
 800     /* 为获得更好的可读性,使用双倍字体高度。减少一半可见#行。
 801      * 每个页面的下半部分以按住shift的键盘文字作为名字:
 802      * 1 - ! , 2 - @ , 3 - # , 4 - $ , 5 - % , 6 - ^ , 7 - & , 8 - * , 9 - (
 803      * 你必须同时添加到你的lcd.遥测.*序列中
 804      */
 805 //#define DISPLAY_FONT_DSIZE //目前只能应用于OLED_I2C_128x64 OLED_DIGOLE
 806 
 807  /* 显示风格 - 通过LCD_ setting自动检测 - 仅在覆盖默认时激活 */
 808 //#define DISPLAY_2LINES
 809 //#define DISPLAY_MULTILINE
 810 //#define MULTILINE_PRE 2  // 多行配置菜单#之前的行
 811 //#define MULTILINE_POST 6 // 多行配置菜单#之前的行
 812 //#define DISPLAY_COLUMNS 16
 813 /********************************    导航     ***********************************/
 814     /* 用来导航LCD配置菜单的按键 */
 815 #define LCD_MENU_PREV 'p'
 816 #define LCD_MENU_NEXT 'n'
 817 #define LCD_VALUE_UP 'u'
 818 #define LCD_VALUE_DOWN 'd'
 819 
 820 #define LCD_MENU_SAVE_EXIT 's'
 821 #define LCD_MENU_ABORT 'x'
 822 
 823 /**************************************************************************************/
 824 /***********************      LCD配置菜单         **************************/
 825 /**************************************************************************************/
 826 
 827     /* 如果你准备将LCD或OLED用于调整参数,那么解除本行注释
 828      * http://www.multiwii.com/wiki/index.php?title=Extra_features#Configuration_Menu */
 829       //#define LCD_CONF
 830 
 831     /* 用于包含通过LCD进行AUX1 -> AUX4辅助开关切换的设置 */
 832       //#define LCD_CONF_AUX
 833 
 834     /* 可选排除一些功能 - 解除注释以禁用一些不需要的遥测页面或通道设置 */
 835       //#define SUPPRESS_LCD_CONF_AUX2
 836       //#define SUPPRESS_LCD_CONF_AUX34
 837 
 838 /**************************************************************************************/
 839 /***********************      LCD       遥测            **************************/
 840 /**************************************************************************************/
 841 
 842 /* to monitor system values (battery level, loop time etc. with LCD
 843  * http://www.multiwii.com/wiki/index.php?title=LCD_Telemetry */
 844 
 845 /********************************   激活     ***********************************/
 846 //#define LCD_TELEMETRY
 847 
 848  /* 在解除注释于此的一个遥测页面组合中启用自动跳转。 */
 849 //#define LCD_TELEMETRY_AUTO "123452679" // 升序显示1至9页
 850 //#define LCD_TELEMETRY_AUTO  "212232425262729" // 着重显示第2页
 851 
 852     /* 手动步进序列;序列的第一页在启动时加载以允许无交互时显示 */
 853     //#define LCD_TELEMETRY_STEP "0123456789" // 应包含一个0以允许关闭。
 854 
 855     /* 可选地排除一些功能 - 解除注释以禁用一些不需要的遥测页面 */
 856 //#define SUPPRESS_TELEMETRY_PAGE_1
 857 //#define SUPPRESS_TELEMETRY_PAGE_2 // 传感器读数
 858 //#define SUPPRESS_TELEMETRY_PAGE_3 // 复选框项
 859 //#define SUPPRESS_TELEMETRY_PAGE_4 // 遥控输入
 860 //#define SUPPRESS_TELEMETRY_PAGE_5 // 舵机和电机输出
 861 //#define SUPPRESS_TELEMETRY_PAGE_6 // 电池电压
 862 //#define SUPPRESS_TELEMETRY_PAGE_7 // gps
 863 //#define SUPPRESS_TELEMETRY_PAGE_8 // 告警状态
 864 //#define SUPPRESS_TELEMETRY_PAGE_9 // 循环和失败
 865 //#define SUPPRESS_TELEMETRY_PAGE_R // 重置
 866 
 867 /*可选的默认项目的一些遥测页面-完整的可用功能列表见LCD.h */
 868 //#define LCD_TELEMETRY_PAGE1 { output_V, output_mAh, }
 869 //#define LCD_TELEMETRY_PAGE2 { output_gyroX, output_gyroY, output_accZ, }
 870 //#define LCD_TELEMETRY_PAGE9 { output_fails, output_annex, output_debug0, output_debug3, }
 871 
 872 /********************************************************************/
 873 /****                             RSSI                           ****/
 874 /********************************************************************/
 875 //#define RX_RSSI
 876 //#define RX_RSSI_PIN A3
 877 //#define RX_RSSI_CHAN 8   //RSSI 注入指定的通道 (for PPM, Olrs, SBUS, etc.) (Starts at 0)
 878 
 879  /********************************************************************/
 880   /****                             蜂鸣器(BUZZER)                      ****/
 881   /********************************************************************/
 882     #define BUZZER
 883     #define RCOPTIONSBEEP         // 如果你想在遥控选项在通道Aux1至Aux4改变时让蜂鸣器响起,解除注释此项
 884     #define ARMEDTIMEWARNING 480  // (*) 在解锁一段时间[s]后触发警报以保护锂电。(如果你的发射机没有倒计时)
 885     //#define PILOTLAMP             //如果你在使用X-Arcraft导航灯那么解除注释
 886 
 887   /********************************************************************/
 888   /****           电池电压监控                                     ****/
 889   /********************************************************************/
 890    /* 用于V BAT(电池电压)监控
 891        在电阻分压后,我们在模拟V_BAT针脚上应获得[0V;5V]->[0;1023]
 892        通过R1=33k和R2=51k
 893        vbat = [0;1023]*16/VBATSCALE
 894        必须与#define BUZZER结合! */
 895 #define TanVBAT           //自己增加的建议的电压测量功能,需要同时启用VBAT(该模块淘宝可以搜索arduino 电压检测模块,就两块到七块这样,量程是最大25V的)
 896 #define VBAT              // 解除注释本行以激活vbat代码
 897 #define VBATSCALE       131 // (*) 如果读取到的电池电压与真实电压不同,修改该值
 898 #define VBATNOMINAL     126 // 12,6V满电标准电压 - 仅用于lcd.遥测
 899 #define VBATLEVEL_WARN1 110 // (*) (**) 10,7V
 900 #define VBATLEVEL_WARN2  100 // (*) (**) 9.9V
 901 #define VBATLEVEL_CRIT   99 // (*) 9.3V - 临界情况:如果vbat持续低于该值,就会触发警报长响
 902 #define NO_VBAT          16 // (*) 避免在没有电池时响起
 903 #define VBAT_OFFSET       0 //抵消0.1volts,加入有用的齐纳二极管的电压值
 904 
 905 /* 对多个电池进行监控
 906  * 必须同时启用VBAT,VBAT_CELLS
 907  */
 908 //#define VBAT_CELLS
 909 #define VBAT_CELLS_NUM 0 // 设置连接在模拟阵脚pin上的电池数量
 910 #define VBAT_CELLS_PINS {A0, A1, A2, A3, A4, A5 } // 将此设置为模拟引脚序列
 911 #define VBAT_CELLS_OFFSETS {0, 50, 83, 121, 149, 177 } // in 0.1 volts, gets added to voltage value  - useful for zener diodes
 912 #define VBAT_CELLS_DIVS { 75, 122,  98, 18, 30, 37 } // divisor for proportional part according to resistors - larger value here gives smaller voltage
 913 
 914   /********************************************************************/
 915   /****           功率计(电池容量监控)                ****/
 916   /********************************************************************/
 917 
 918    /* 启用电池能量消耗监控(以mAh考虑)
 919        允许在GUI中或通过LCD设置警戒值
 920        全部描述与操作方法请见此 http://www.multiwii.com/wiki/index.php?title=Powermeter
 921        有两个选项:
 922        1 - 硬件: - (使用硬件传感器,配置后将获得相当不错的结果)
 923        2 - 软件: - (使用plush与mystery电调可获得+-5%的料号结果,使用SuperSimple电调结果不佳)    */
 924     //#define POWERMETER_SOFT
 925     //#define POWERMETER_HARD
 926     #define PSENSORNULL 510 // (*) 设置0电流时analogRead()的值;I=0A时,我的传感器得到1/2 Vss;约为2.49伏;
 927                                   
 928     #define PINT2mA 132 // (*) 用于遥测显示:一个用在arduino模拟转换为mA时的整数(例4.9 / 37 * 100
 929                                    /*soft: use fictional value, start with 100.
 930                                    for hard and soft: larger PINT2mA will get you larger value for power (mAh equivalent) */
 931 //#define WATTS // 计算并显示实际瓦(=伏特×安培)需要powermeter_hard和VBAT
 932 
 933   /********************************************************************/
 934   /****                      高度保持                              ****/
 935   /********************************************************************/
 936 
 937   /*定高模式(AltHold)是使用自动油门,试图保持目前的高度的稳定模式。
 938      定高模式时高度仍然可以通过提高或降低油门控制,但中间会有一个油门死区,油门动作幅度超过这个死区时,飞行器才会响应你的升降动作
 939      当进入任何带有自动高度控制的模式,你目前的油门将被用来作为调整油门保持高度的基准。
 940      在进入高度保持前确保你在悬停在一个稳定的高度。
 941      飞行器将随着时间补偿不良的数值。只要它不会下跌过快,就不会有什么问题。
 942      离开高度保持模式时请务必小心,油门位置将成为新的油门,
 943      如果不是在飞行器的中性悬停位置,将会导致飞行器迅速下降或上升。默认设置是 +/-50 uncommend and change the value below if you want to change it. */
 944     #define ALT_HOLD_THROTTLE_NEUTRAL_ZONE    50
 945     //#define ALT_HOLD_THROTTLE_MIDPOINT        1500  // in us    - if uncommented, this value is used in ALT_HOLD for throttle stick middle point instead of initialThrottleHold parameter.
 946 
 947 
 948     /* 解除注释以禁用高度保持特性。
 949      * 此项可用于所有下列应用
 950      * + 你有一个气压传感器
 951      * + 想要高度值输出
 952      * + 不需要使用高度保持特性
 953      * + 想要节省储存空间
 954      */
 955     //#define SUPPRESS_BARO_ALTHOLD
 956 
 957   /********************************************************************/
 958   /****           高度爬升率测定器              (高度仪)           ****/
 959   /********************************************************************/
 960 
 961     /* 启用以获得来自上升/下降中的飞行器/飞机的声频反馈。
 962      * 需要工作中的气压计。
 963      * 目前,输出会通过串行线发送至启用中的vt100终端程序。
 964      * 有两种方式可选(启用其中一个或同时启用)
 965      * 方式1:使用来自气压计的短期移动(更大的代码尺寸)
 966      * 方式2:使用来自气压计的长期高度观察(更小的代码尺寸)
 967      */
 968     //#define VARIOMETER 12            // 可用值:12 = 方式 1 & 2 ;1 = 方式 1;2 = 方式 2
 969     //#define SUPPRESS_VARIOMETER_UP   // 如果不期望有用于向上移动的信号
 970     //#define SUPPRESS_VARIOMETER_DOWN // 如果不期望有用于向下移动的信号
 971     //#define VARIOMETER_SINGLE_TONE   // 仅使用一个声调(响铃);对未打补丁的vt100终端是必需的
 972 
 973  /********************************************************************/
 974   /****                     板子命名                               ****/
 975   /********************************************************************/
 976 
 977     /*
 978      * 这个名字会与MultiWii版本号共同显示
 979      * 在打开电源时显示在LCD上。
 980      * 如果你没有显示设备那么你可以启用LCD_TTY并
 981      * 使用arduino IDE的串口监控器来查看此信息。
 982      *
 983      * 你必须保持此处文本的格式!
 984      * 它必须总共有16个字母,
 985      * 最后4个字母将会被版本号覆盖。
 986      */
 987     #define BOARD_NAME "MultiWii   V-.--"
 988     //                  123456789.123456
 989 
 990  /*************      在EEPROM中支持多个配置参数文件      ************/
 991     //#define MULTIPLE_CONFIGURATION_PROFILES
 992 
 993   /*************      do no reset constants when change of flashed program is detected ***********/
 994     #define NO_FLASH_CHECK
 995 
 996 /*************************************************************************************************/
 997 /*****************                                                                 ***************/
 998 /****************               第 7 部分 - 调试 & 开发者                           **************/
 999 /*****************                                                                 ***************/
1000 /*************************************************************************************************/
1001 
1002 #define VBAT_PRESCALER 16 //设置为16,如果vbatscale将超过255
1003 
1004  /**************************************************************************************/
1005   /********   使用扩展范围[0-2000]微秒的特殊电调              ********************/
1006   /**************************************************************************************/
1007     //#define EXT_MOTOR_RANGE // 在用场效应管驱动空心杯时必须注释它,否则电机上电就转
1008 
1009 /**************************************************************************************/
1010 /********  刷电调 ****************************************************************/
1011 /**************************************************************************************/
1012 // for 328p proc
1013 //#define EXT_MOTOR_32KHZ
1014 //#define EXT_MOTOR_4KHZ
1015 //#define EXT_MOTOR_1KHZ
1016 
1017 // for 32u4 proc
1018 //#define EXT_MOTOR_64KHZ
1019 //#define EXT_MOTOR_32KHZ
1020 //#define EXT_MOTOR_16KHZ
1021 //#define EXT_MOTOR_8KHZ
1022 
1023   /**************************************************************************************/
1024   /***********************     电机,舵机和其他的预置             ***********************/
1025   /**************************************************************************************/
1026     /* 当油门命令在低位时电机将不会旋转
1027        这是立即停止电机的替代方案 */
1028 #define MOTOR_STOP
1029 
1030   /* 一些遥控器的中立点不是1500。可以在此修改 */
1031 #define MIDRC 1500
1032 
1033  /***********************        舵机刷新率                   ***********************/
1034     /* 默认50Hz舵机刷新率 */
1035 #define SERVO_RFR_50HZ
1036 
1037     /* 升至160Hz舵机刷新率 .. 用于多数模拟舵机 */
1038     //#define SERVO_RFR_160HZ
1039 
1040     /* 升至300Hz刷新率,它越快越好(100-300Hz取决于使用的舵机和舵机状态)。
1041        用于数字舵机
1042        不要用于模拟舵机!它们可能遭到破坏。(一些可以使用,但请非常小心) */
1043 //#define SERVO_RFR_300HZ
1044 
1045 
锐单商城拥有海量元器件数据手册IC替代型号,打造电子元器件IC百科大全!

相关文章