资讯详情

基于ATMega328P单片机的飞控源代码

MWC是MultiWii Copter的缩写,是通用的开源固件。此固件的原创作者是法国Alex,他在2010年为了打造自己的Y3飞行器而开发了MWC固件,MWC固件是用Arduino IDE来编写。几年来经过众多高手的参与及共同努力,现在MWC已经相当成熟,可以支持广泛的外围设备及飞行模式。 四旋翼视频: http://v.youku.com/v_show/id_XMxNzk1NjA0.html http://v.youku.com/v_show/id_XMjkyNjc5N0.html

倾情巨献,配置参数

/*************************************************************************************************//****           参数配置                                                       ****//*************************************************************************************************//* 此配置文件包含几个部分,每部分您只能设置一个参数. * 1 - 基本设置 - you must select an option in every block. *      this assumes you have 4 channels connected to your board with standard ESCs and servos. * 2 - 飞机设置 - you likely want to check for options for your copter type * 3 - 信号接收设置 - 注: 如果您使用的是标准接收机,请不要设置此部分 * 4 - 设置扩展CPU与板 * 5 - 扩展设置 - select alternate RX (SBUS, PPM, etc.), alternate ESC-range, etc. here * 6 - 可选设置 - enable nice to have features here (FlightModes, LCD, telemetry, battery monitor etc.) * 7 - 开发者高级设定 - 警告:请谨慎的更改此部分的设置,否则飞行器将引发不可预知的灾难!!! *//* 备注: * 1. 参数标记 (*) 的可通过LCD液晶屏显示设置,点击写入E2PROM中,可保存所设置的参数。 *    改变 config.h 后,请重新编译写入飞控中,并点击'Reset' 重启飞控使配置生效。 *//*************************************************************************************************//*****************                                                                 ***************//****************  SECTION  1 - 基本设置                                                *******//*****************                                                                 ***************//*************************************************************************************************/  /**************************    MWC飞控支持的飞行模式    ****************************/    //#define GIMBAL //独立云台增稳    //#define BI //2轴阿凡达飞行器    //#define TRI //Y型3轴    //#define QUADP //四轴十模式    #define QUADX //----------四轴X模式    //#define Y4 //Y型4轴    //#define Y6 //Y型6轴    //#define HEX6 //6轴十模式    //#define HEX6X //6轴X模式    //#define HEX6H   // 新模式:6轴H模式    //#define OCTOX8 //8轴×4模式    //#define OCTOFLATP //8轴水平十模式    //#define OCTOFLATX //8轴水平X模式    //#define FLYING_WING //飞翼    //#define VTAIL4 //V型尾翼4轴(飞行方式同×模式,特点是转向更灵活,主要当作固定翼来飞行)    //#define AIRPLANE //固定翼    //#define SINGLECOPTER //VTOL单轴    //#define DUALCOPTER    //#define HELI_120_CCPM    //#define HELI_90_DEG  /****************************    设置油门行程最低值(怠速)    *******************************/  /*标准电调通过1000~2000us范围内的信号进行控制,如果您需要飞控解后电机就开始慢速旋转,  请设定一个合适的怠速信号值(默认是1100,大多数电调会开始输出电流)请注意此值不要太小,  否则会影响飞行器回中的效果,如果您喜欢解锁后电机停转,请启用“MOTOR_STOP“代码(请参见下文)。  上传程序后如果发现不符合需求,可以再次修改后上传。*/    /* 设置油门通道发送给电调怠速的最低值(电子调速器,简称:电调)*/    //#define MINTHROTTLE 1300 // for Turnigy Plush ESCs 10A    //#define MINTHROTTLE 1120 // for Super Simple ESCs 10A    //#define MINTHROTTLE 1064 // special ESC (simonk)    //#define MINTHROTTLE 1050 // for brushed ESCs like ladybird    #define MINTHROTTLE 1150 // (*)默认怠速  /**************************    设置油门行程最高值    *******************************/    /* 遥控器控制杆行程的最大值(上限为2000) */    #define MAXTHROTTLE 1850 //默认油门最大行程  /****************************    Mincommand          *******************************/    /* 遥控器控制杆行程的最小值。       如果您的遥控器控制杆拨动到最低处,不能低于此数值,请把此数值修改为900 */    #define MINCOMMAND  1000 //  /*******************************    I2C 传输速度   *********************************/    #define I2C_SPEED 100000L     //100kHz 标准模式, this value must be used for a genuine WMP    //#define I2C_SPEED 400000L   //400kHz 高速模式, it works only with some WMP clones  /***************************    Internal i2c Pullups   ********************************/    /* 内部I2C上拉使能 (一般情况下最好使用外部上拉电阻) */    #define INTERNAL_I2C_PULLUPS //----------  /**************************************************************************************/  /*****************         飞控板、传感器 硬件定义            ******************/  /**************************************************************************************/    /***************************    支持的飞控 IMU     ********************************/      /* 如果您的飞控板或传感器非MWC官方的产品:         请使用以下列表中兼容硬件的宏定义进行修正.           备注: 此列表仅对官方的不同硬件版本或与官方版本相兼容的硬件进行修正,其他硬件请慎重 */      //#define FFIMUv1         // first 9DOF+baro board from Jussi, with HMC5843                   <- confirmed by Alex      //#define FFIMUv2         // second version of 9DOF+baro board from Jussi, with HMC5883       <- confirmed by Alex      //#define FREEIMUv1       // v0.1 & v0.2 & v0.3 version of 9DOF board from Fabio      //#define FREEIMUv03      // FreeIMU v0.3 and v0.3.1      //#define FREEIMUv035     // FreeIMU v0.3.5 no baro      //#define FREEIMUv035_MS  // FreeIMU v0.3.5_MS                                                <- confirmed by Alex      #define FREEIMUv035_BMP  //----------FreeIMU v0.3.5_BMP      //#define FREEIMUv04      // FreeIMU v0.4 with MPU6050, HMC5883L, MS561101BA                  <- confirmed by Alex      //#define FREEIMUv043     // same as FREEIMUv04 with final MPU6050 (with the right ACC scale)      //#define NANOWII         // the smallest multiwii FC based on MPU6050 + pro micro based proc <- confirmed by Alex      //#define PIPO            // 9DOF board from erazz      //#define QUADRINO        // full FC board 9DOF+baro board from witespy  with BMP085 baro     <- confirmed by Alex      //#define QUADRINO_ZOOM   // full FC board 9DOF+baro board from witespy  second edition      //#define QUADRINO_ZOOM_MS// full FC board 9DOF+baro board from witespy  second edition       <- confirmed by Alex      //#define ALLINONE        // full FC board or standalone 9DOF+baro board from CSG_EU      //#define AEROQUADSHIELDv2      //#define ATAVRSBIN1      // Atmel 9DOF (Contribution by EOSBandi). requires 3.3V power.      //#define SIRIUS          // Sirius Navigator IMU                                             <- confirmed by Alex      //#define SIRIUSGPS       // Sirius Navigator IMU  using external MAG on GPS board            <- confirmed by Alex      //#define SIRIUS600       // Sirius Navigator IMU  using the WMP for the gyro      //#define SIRIUS_AIR      // Sirius Navigator IMU 6050 32U4 from MultiWiiCopter.com      //#define SIRIUS_AIR_GPS  // Sirius Navigator IMU 6050 32U4 from MultiWiiCopter.com with GPS/MAG remote located      //#define MINIWII         // Jussi's MiniWii Flight Controller                                <- confirmed by Alex      //#define MICROWII        // MicroWii 10DOF with ATmega32u4, MPU6050, HMC5883L, MS561101BA from      //#define CITRUSv2_1      // CITRUS from qcrc.ca      //#define CHERRY6DOFv1_0      //#define DROTEK_10DOF    // Drotek 10DOF with ITG3200, BMA180, HMC5883, BMP085, w or w/o LLC      //#define DROTEK_10DOF_MS // Drotek 10DOF with ITG3200, BMA180, HMC5883, MS5611, LLC      //#define DROTEK_6DOFv2   // Drotek 6DOF v2      //#define DROTEK_6DOF_MPU // Drotek 6DOF with MPU6050      //#define DROTEK_10DOF_MPU//      //#define MONGOOSE1_0     // mongoose 1.0       //#define CRIUS_LITE      // Crius MultiWii Lite      //#define CRIUS_SE        // Crius MultiWii SE      //#define OPENLRSv2MULTI  // OpenLRS v2 Multi Rc Receiver board including ITG3205 and ADXL345      //#define BOARD_PROTO_1   // with MPU6050 + HMC5883L + MS baro      //#define BOARD_PROTO_2   // with MPU6050 + slave  MAG3110 + MS baro      //#define GY_80           // Chinese 10 DOF with  L3G4200D ADXL345 HMC5883L BMP085, LLC      //#define GY_85           // Chinese 9 
锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台