#ifndef CONFIG_H_
#define CONFIG_H_
/*************************************************************************************************/
/**** 可配置参数 ****/
/*************************************************************************************************/
/* 此文件由几个部分组成
* 要创建一个可行的配置组合,你至少必须在第 1 部分做出选择。
* 1 - 基本设置 - 你必须在每个模块中选择一个选项。
* 这假设你有 4 个通道连接到你的板上,使用标准的电子调速器(ESC)和舵机。
* 2 - 特定飞行器类型的选项 - 你可能需要查看适合你飞行器类型的选项
* 3 - 遥控系统设置
* 4 - 备用 CPU 及电路板 - 如果你有……
* 5 - 备用设置 - 在此选择备用的接收器(SBUS、PPM 等)、备用的电子调速器范围等。
* 6 - 可选功能 - 在此启用一些实用的功能(飞行模式、液晶显示屏、遥测、电池监控等)
* 7 - 调试与开发 - 如果你知道自己在做什么,请注意风险
* - (电子调速器校准、动态电机/螺旋桨平衡、诊断、内存节省……)
* 8 - 已弃用 - 这些功能将在未来的某个版本中移除
*/
/* 注意事项:
* 1. 注释中标记有 (*) 的参数会存储在 EEPROM 中,可以通过串口监视器或液晶显示屏进行更改。
* 2. 注释中标记有 (**) 的参数会存储在 EEPROM 中,可以通过图形用户界面(GUI)进行更改。
*/
/*************************************************************************************************/
/***************** ***************/
/**************** 第 1 部分 - 基本设置 *******/
/***************** ***************/
/*************************************************************************************************/
/************************** 多旋翼飞行器的类型 ****************************/
// #define GIMBAL
// #define BI
// #define TRI
// #define QUADP
#define QUADX
// #define Y4
// #define Y6
// #define HEX6
// #define HEX6X
// #define HEX6H // New Model
// #define OCTOX8
// #define OCTOFLATP
// #define OCTOFLATX
// #define FLYING_WING
// #define VTAIL4
// #define AIRPLANE
// #define SINGLECOPTER
// #define DUALCOPTER
// #define HELI_120_CCPM
// #define HELI_90_DEG
/**************************** 电机最小油门 ****************************/
// 设置发送给电子调速器(ESC)的最小油门指令。 这是使电机能够以怠速运转的最小值。 /
// #define MINTHROTTLE 1300 // 适用于天行者(Turnigy)10A 豪华型电子调速器
// #define MINTHROTTLE 1120 // 适用于超级简易型 10A 电子调速器
// #define MINTHROTTLE 1064 // 特殊的电子调速器(西蒙克协议,simonk)
// #define MINTHROTTLE 1050 // 适用于像小瓢虫(ladybird)这类有刷电子调速器
#define MINTHROTTLE 1050 // () ()
/**************************** 电机最大油门 *****************************/
// / 这是电子调速器(ESC)在全功率运行时的最大值,该值最高可提升至 2000。 */
#define MAXTHROTTLE 1850
/**************************** 最小指令值 ******************************/
// / 这是电子调速器(ESC)在未解锁时的数值。
// 在某些情况下,对于一些特定的电子调速器,此值必须降低到 900,否则它们将无法启动。 */
#define MINCOMMAND 1000
/********************************** I2C 速率 ************************************/
#define I2C_SPEED 100000L // 100kHz 标准模式,对于真正的 WMP 必须使用此值
// #define I2C_SPEED 400000L // 400kHz 快速模式,仅适用于部分 WMP 克隆版
/*************************** 内部 I2C 上拉电阻 *******************************/
// / 启用内部 I2C 上拉电阻(大多数情况下,使用外部上拉电阻效果更好) */
// #define INTERNAL_I2C_PULLUPS
/**************************************************************************************/
/***************** 电路板与传感器定义 ******************/
/**************************************************************************************/
/*************************** 组合式惯性测量单元(IMU)电路板 ********************************/
/* 如果你使用特定的传感器板:
请对这个列表进行任何修正。
注意,来自 Alex 的说明:我仅拥有部分板子,对于其他板子我不太确定,相关信息是通过遥控模型论坛收集的,使用时请谨慎 */
// #define FFIMUv1 // Jussi 制作的第一款 9 自由度 + 气压计板,配备 HMC5843 <- 已由 Alex 确认
// #define FFIMUv2 // Jussi 制作的 9 自由度 + 气压计板的第二个版本,配备 HMC5883 <- 已由 Alex 确认
// #define FREEIMUv1 // Fabio 制作的 9 自由度板的 v0.1、v0.2 和 v0.3 版本
// #define FREEIMUv03 // FreeIMU v0.3 和 v0.3.1 版本
// #define FREEIMUv035 // FreeIMU v0.3.5 版本,无气压计
// #define FREEIMUv035_MS // FreeIMU v0.3.5_MS 版本 <- 已由 Alex 确认
// #define FREEIMUv035_BMP // FreeIMU v0.3.5_BMP 版本
// #define FREEIMUv04 // FreeIMU v0.4 版本,带有 MPU6050、HMC5883L、MS561101BA <- 已由 Alex 确认
// #define FREEIMUv043 // 与 FREEIMUv04 相同,但使用最终版 MPU6050(具有正确的加速度计刻度)
// #define NANOWII // 基于 MPU6050 + 专业微控制器的最小型 Multiwii 飞控板 <- 已由 Alex 确认
// #define PIPO // erazz 制作的 9 自由度板
// #define QUADRINO // witespy 制作的完整飞控 9 自由度 + 气压计板,带有 BMP085 气压计 <- 已由 Alex 确认
// #define QUADRINO_ZOOM // witespy 制作的完整飞控 9 自由度 + 气压计板,第二版
// #define QUADRINO_ZOOM_MS// witespy 制作的完整飞控 9 自由度 + 气压计板,第二版 <- 已由 Alex 确认
// #define ALLINONE // CSG_EU 制作的完整飞控板或独立的 9 自由度 + 气压计板
// #define AEROQUADSHIELDv2
// #define ATAVRSBIN1 // 爱特梅尔(Atmel)9 自由度板(由 EOSBandi 贡献)。需要 3.3V 电源。
// #define SIRIUS // 天狼星导航 IMU 板 <- 已由 Alex 确认
// #define SIRIUSGPS // 天狼星导航 IMU 板,使用 GPS 板上的外部磁力计 <- 已由 Alex 确认
// #define SIRIUS600 // 天狼星导航 IMU 板,使用 WMP 作为陀螺仪
// #define SIRIUS_AIR // 来自 MultiWiiCopter.com 的天狼星导航 IMU 6050 32U4 板 <- 已由 Alex 确认
// #define SIRIUS_AIR_GPS // 来自 MultiWiiCopter.com 的天狼星导航 IMU 6050 32U4 板,带有远程 GPS/磁力计
// #define SIRIUS_MEGAv5_OSD // 巴黎天狼星™ ITG3050、BMA280、MS5611、HMC5883、uBlox http://www.Multiwiicopter.com <- 已由 Alex 确认
// #define MINIWII // Jussi 制作的 MiniWii 飞控板 <- 已由 Alex 确认
// #define MICROWII // 来自 http://flyduino.net/ 的 MicroWii 10 自由度板,带有 ATmega32u4、MPU6050、HMC5883L、MS561101BA
// #define CITRUSv2_1 // 来自 qcrc.ca 的 CITRUS 板
// #define CHERRY6DOFv1_0
// #define DROTEK_10DOF // Drotek 10 自由度板,带有 ITG3200、BMA180、HMC5883、BMP085,有或没有 LLC
// #define DROTEK_10DOF_MS // Drotek 10 自由度板,带有 ITG3200、BMA180、HMC5883、MS5611、LLC
// #define DROTEK_6DOFv2 // Drotek 6 自由度 v2 板
// #define DROTEK_6DOF_MPU // Drotek 6 自由度板,带有 MPU6050
// #define DROTEK_10DOF_MPU//
// #define MONGOOSE1_0 // 猫鼬 1.0 板 http://store.ckdevices.com/
// #define CRIUS_LITE // Crius MultiWii 精简版
// #define CRIUS_SE // Crius MultiWii SE 版
// #define CRIUS_SE_v2_0 // Crius MultiWii SE 2.0 版,带有 MPU6050、HMC5883 和 BMP085
// #define OPENLRSv2MULTI // OpenLRS v2 多通道遥控接收器板,包括 ITG3205 和 ADXL345
// #define BOARD_PROTO_1 // 带有 MPU6050 + HMC5883L + MS 气压计的原型板
// #define BOARD_PROTO_2 // 带有 MPU6050 + 从磁力计 MAG3110 + MS 气压计的原型板
// #define GY_80 // 中国产 10 自由度板,带有 L3G4200D、ADXL345、HMC5883L、BMP085、LLC
// #define GY_85 // 中国产 9 自由度板,带有 ITG3205、ADXL345、HMC5883L、LLC
// #define GY_86 // 中国产 10 自由度板,带有 MPU6050、HMC5883L、MS5611、LLC
// #define GY_521 // 中国产 6 自由度板,带有 MPU6050、LLC
// #define INNOVWORKS_10DOF // 带有 ITG3200、BMA180、HMC5883、BMP085 的板子,可从 http://www.diymulticopter.com 购买
// #define INNOVWORKS_6DOF // 带有 ITG3200、BMA180 的板子,可从 http://www.diymulticopter.com 购买
// #define MultiWiiMega // 带有 MEGA + MPU6050+HMC5883L+MS5611 的板子,可从 http://www.diymulticopter.com 购买
// #define PROTO_DIY // 10 自由度 MEGA 原型板
// #define IOI_MINI_MULTIWII// www.bambucopter.com 上的板子
// #define Bobs_6DOF_V1 // BobsQuads 6 自由度 V1 板,带有 ITG3200 和 BMA180
// #define Bobs_9DOF_V1 // BobsQuads 9 自由度 V1 板,带有 ITG3200、BMA180 和 HMC5883L
// #define Bobs_10DOF_BMP_V1 // BobsQuads 10 自由度 V1 板,带有 ITG3200、BMA180、HMC5883L 和 BMP180 - BMP180 与 BMP085 软件兼容
// #define FLYDUINO_MPU // 带有 MPU6050 breakout 板和板载 3.3V 稳压器
// #define CRIUS_AIO_PRO_V1
// #define DESQUARED6DOFV2GO // 仅带有 ITG3200 的 DEsquared V2 板
// #define DESQUARED6DOFV4 // 带有 MPU6050 的 DEsquared V4 板
// #define LADYBIRD
// #define MEGAWAP_V2_STD // 可从 http://www.multircshop.com 购买 <- 已由 Alex 确认
// #define MEGAWAP_V2_ADV
// #define HK_MultiWii_SE_V2 // 好小子(Hobbyking)的板子,带有 MPU6050 + HMC5883L + BMP085
// #define HK_MultiWii_328P // 背面也标有 "Hobbybro" 的板子。ITG3205 + BMA180 + BMP085 + NMC5583L + DSM2 接口(史派克特隆卫星接收器)
// #define RCNet_FC // 来自 http://www.rcnet.com 的 RCNet 飞控板,带有 MPU6050 和 MS561101BA
// #define RCNet_FC_GPS // 来自 http://www.rcnet.com 的 RCNet 飞控板,带有 MPU6050 + MS561101BA + HMC5883L + 优北罗(UBLOX)GPS
// #define FLYDU_ULTRA // MEGA+10 自由度+MT3339 飞控板
// #define DIYFLYING_MAGE_V1 // 来自 http://www.indoor-flying.hk 的 diyflying 10 自由度 MEGA 板,带有 MPU6050 + HMC5883L + BMP085
// #define MultiWii_32U4_SE // 华科尔(Hextronik)的 MultiWii_32U4_SE 板
// #define MultiWii_32U4_SE_no_baro // 华科尔(Hextronik)的 MultiWii_32U4_SE 板,去掉 MS561101BA 以节省闪存空间
// #define Flyduino9DOF // 飞duino(Flyduino)9 自由度 IMU 板,带有 MPU6050+HMC5883l
// #define Nano_Plane // Multiwii 飞机版,带有尾前置 LSM330 传感器 http://www.radiosait.ru/en/page_5324.html
/*************************** 独立传感器 ********************************/
/* 如果你已经在上面选择了特定的传感器板,请将以下内容保持注释状态 */
/* I2C 陀螺仪 */
// #define WMP
// #define ITG3200
// #define MPU3050
// #define L3G4200D
#define MPU6050 // 组合式传感器,集成陀螺仪和加速度计
// #define LSM330 // 组合式传感器,集成陀螺仪和加速度计
/* I2C 加速度计 */
// #define NUNCHUCK // 如果你想使用连接到 WMP(可能是某种主控板)的 Wii 手柄扩展模块作为加速度计
// #define MMA7455
// #define ADXL345
// #define BMA020
// #define BMA180
// #define BMA280
// #define NUNCHACK // 如果你想在不连接 WMP 的情况下,将 Wii 手柄扩展模块作为独立的 I2C 加速度计使用
// #define LIS3LV02
// #define LSM303DLx_ACC
// #define MMA8451Q
/* I2C 气压计 */
// #define BMP085
// #define MS561101BA
/* I2C 磁力计 */
// #define HMC5843
// #define HMC5883
// #define AK8975
// #define MAG3110
/* 声呐传感器 */ // 目前仅用于可视化展示,没有配套的控制代码
// #define SRF02 // 使用 Devantech SRF 系列的 I2C 声呐传感器
// #