所有飞控大神都玩过的飞控——MWCpdf,txt教程

介绍篇 MWC 程序开源,但是并不简单


它里面的内容不单单针对四旋翼,而是涵盖了小型无人机中几乎所 有的内容,四轴,八轴,直升机,阿凡达等等

研究程序的意义就不多说了,喜欢某种硬件的可以看看硬件程序;喜欢算法的可以研究其导航算法, 控制算法;喜欢应用的可以在此基础上附加功能等

简而言之就是任何方面的爱好者都可以各取所好

MWC固件简介 MWC是MultiWii Copter的缩写,它并不是指硬件产品,而是开源固件

此固件的原创作者是来自法国的Alex,他为了打造自己的Y3飞行器而开发了最初的MWC固件(原创交流帖与官网的链接在最下方)

几年来经过许多高手的参与及共同努力,开发进度越来越快

现在MWC已经基本成熟,可以支持更广泛的硬件平台、外围设备及更多飞行模式,让运行MWC的飞控硬件成为国外开源飞控市场上占有率最高之一的产品

MWC固件支持的硬件平台 MWC固件是用Arduino IDE来编写,支持Arduino发布的几种主要的AVR开发板Pro Mini/Pro Micro/Mega等,也可支持使用STM32的Arduino兼容平台,但STM32目前无法体现出任何性能与端口上的优势,所以仍以AVR为主流,成熟、够用且稳定

本产品CRIUS MultiWii Standard Edition(SE) v2.0是基于Arduino Pro Mini来设计,使用ATmega328P单片机

MWC固件支持的外围设备 1、蓝牙调参模块 – 用安卓手机/平板电脑来调试参数(推荐使用)

2、 OLED显示屏模块 – 可作为机载状态/参数显示器,也可搭配遥控器进行参数调试(不建议使用)

3、 I2C-GPS导航板 – 328P飞控可通过它连接GPS,用于定点/自动返航以及航点飞行功能

4、 GPS – 用于定点/自动返航
5 、OSD – FPV必备,可显示飞控与GPS数据

6 、数传模块 – APC2XX/Xbee/3DR Radio等,用于遥测功能

7、 光流模块 – 用于定点飞行
8、 声纳模块 – 用于低空高精度定高飞行

MWC固件支持的飞行器模式 下载最新的固件可支持以下飞行器模式,可自由在源代码中选择所需的模式并上传到飞控

◆GIMBAL – 独立的云台稳定器(非飞控用途) ◆SINGLECOPTER – VTOL单轴 ◆BICOPTER – 2轴阿凡达飞行器 ◆Tricopter – Y型3轴 ◆QUADP – 经典4轴+模式 ◆QUADX – 4轴×模式 ◆Y4 – Y型4轴 ◆Y6 – Y型6轴 ◆HEX6 – 6轴+模式 ◆HEX6X – 6轴×模式 ◆OCTOX8 – 8轴×4模式 ◆OCTOFLATP – 8轴水平+模式 ◆OCTOFLATX – 8轴水平×模式 ◆FLYING WING – 飞翼 ◆VTAIL4 – V型尾翼4轴(飞行方式同×模式,转向更灵活,主要作为固定翼来飞行) ◆AIRPLANE – 固定翼 ◆HELI_120_CCPM – 直升机/120°倾斜盘,开发中,不建议使用 ◆HELI_90_DEG – 直升机/90°倾斜盘,开发中,不建议使用 MWC固件对遥控器的规格要求 ◆MWC需要至少4通道,但4通道遥控器无法切换飞行模式,强烈推荐6通道以上并带有至少两个开关通道 ◆需具有子微调(Sub Trim)及通道行程(ATV)调整功能 ◆需支持固定翼模式(无混控模式)  CRIUS SE标准版飞控用于多轴飞行器时可实现以下基本功能 ◆ACRO(无自稳,与KK类似) ◆自稳 ◆定高 ◆锁定航向 ◆HeadFree(无头模式,MK称”CareFree”,ACM称”Simple”) 多轴飞行器传感器的作用 陀螺仪:用于保证飞行器姿态的稳定 加速计:可以用于实现飞行器保持水平(LEVEL)的姿态,即用于实现常说的LEVEL 模式

气压计:用于实现定高 使用篇 如何给MWC 上电 1.将MWC 飞行器水平置于地面上 2.上电(上电过程中保持飞行器水平并且不晃动),等待8 秒钟左右,MWC 会对陀螺仪进 行校准,校准操作时红灯会闪烁,校准完毕后,红灯会长亮

MWC 能使用的传感器 /* I2C gyroscope 陀螺仪*/ //#define WMP //#define ITG3200 //#define L3G4200D //#define MPU6050 //同时包含加速计 /* I2C accelerometer 加速计*/ //#define MMA7455 //#define ADXL345 //#define BMA020 //#define BMA180 //#define NUNCHACK // if you want to use the nunckuk as a standalone I2C ACC without WMP //#define LIS3LV02 //#define LSM303DLx_ACC /* I2C barometer 气压计*/ //#define BMP085 //#define MS561101BA /* I2C magnetometer 磁感计*/ //#define HMC5843 //#define HMC5883 //#define AK8975 //#define MAG3110 /* Sonar 超声波模块*/ // for visualization purpose currently – no control code behind //#define SRF02 // use the Devantech SRF i2c sensors //#define SRF08 //#define SRF10 //#define SRF23 MWC 有一个状态灯LED,它的工作方式如下: 通电后初始化:快速闪动几秒钟后熄灭; 初始化陀螺/加速度计:快速闪动几秒钟后熄灭; 开机后无法顺利初始化:持续闪动(请重新上电); 锁定时,飞行器倾角过大:闪动; 锁定时:熄灭; 解锁后:常亮

遥控器校准 请先看遥控器信号监控,由上往下依次是油门,升降,副翼,航向,AUX1~AUX4

设置通道正反向: 油门/升降舵摇杆往上下方向推,图中对应的滑块也应该往对应方向滑动,如果不正确,则 需要把对应的通道反向; 副翼/方向舵摇杆往左右方向推,图中对应的滑块也应该往对应方向滑动,如果不正确,则 需要把对应的通道反向; 校准通道中立点: 油门通道无需校准,观察升降舵/副翼/方向舵摇杆在中间位置时,对应的滑块是否显示为 1500 左右(允许±&误差),如果不正确,请修改对应通道的中立点,让这三个通道摇杆 在中立点时,对应的数值也在1500 左右

请注意,如果中立点信号位置不准确,会导致飞 行误动作

校准通道行程: 油门通道无需校准,观察升降舵/副翼/方向舵通道摇杆在推到最大/最小位置时,对应的滑 块是否显示为最大1900/最小1100 左右,如果有偏差,请修改对应通道的行程,让其最大 值刚好超过1900,最小值刚好低于1100

请注意,如果不处理好,会导致解锁/锁定油门、 校准传感器和进入液晶编程模式出现故障

有些遥控器(比如天地飞-6A)舵量可能无法同时满足最小小于1100 和最大大于1900,那么 请在主程序文件MultiWii选项中找到以下语句: // ****************** // rc functions // ****************** #define MINCHECK 1100 #define MAXCHECK 1900 将这两项的数值进行修改 #define MINCHECK 1120(如果还是不能解锁请继续增大该数字) #define MAXCHECK 1850 其他 使用串口通信波特率一定要设置对,否则无法接收到或发送数据

解答篇 1、问: 如何飞 答: 1. 把飞行器平放到地面,然后上电(上电过程中,飞行器平地并且不晃动) 2. 解锁 3. 起飞 2、问: 四轴起飞后偏向一边飞行怎么处理? 答: 通过遥控器上的副翼信道及俯仰信道的微调进行修正,例如四轴起飞后往左偏,那 么把遥控器的副翼通道往右边修正,如果是往左前偏那么就需要同时把俯仰通道微调往 下修正以及同时把副翼通道微调往右修正

如果四轴出现自旋现象则通过遥控的航向通道 微调修正

3、问: MWC 飞控安装好,插上电池后解锁控后发现红色LED 灯(MWC-MEGA 飞控的A 灯)闪 烁1 秒左右一次是怎么回事? 答: 飞控板没有水平安装或者机架放置的位置过于倾斜

检查并重新安装,找个四面不靠 磁体、金属的地方,平放机架连接控到计算机在GUI 软里先校准ACC ,然后校准MAG

4、问: 老是感觉数字罗盘不起作用不能定航向,GUI 里数据也不正常 答: 在校准和使用电子罗盘的时候周围不要靠近磁体和金属设备,确保用正确的方法校准 数字罗盘

5、问: MW 飞控传感器校准后,每次飞的时候还需要校准吗? 答: 不用的,校准好后数据会被保存起来的


发表回复