Program.四旋翼【飞控篇】

2019-07-13 22:51发布

【飞控篇】下面先分为三部分,先介绍我所用的飞控板及其硬件特性。接着分两部分,第一部分是飞控板与电调及接收机的连接,第二部分讲飞控板的程序修改和编译烧录(GitHub上multiwii-firmware,配置文件config.h已有中文翻译)
MWC是MultiWii Copter的缩写,它并不是指硬件产品,而是开源固件,是用Arduino IDE来编写的。MultiWii Standard Edition(SE) v2.0是基于Arduino Pro Mini来设计,使用ATmega328P单片机。
246942-9c34ce6e7f500efe.jpg MultiWii Standard Edition(SE) v2.0 MultiWii SE标准版v2.0硬件特征
◆ATMega328P 单片机◆MPU6050 数字三轴陀螺与三轴加速度传感器(自稳用)◆BMP085 数字气压传感器(锁定高度用)◆HMC5883L 三轴数字磁阻传感器(电子罗盘,锁定航向用)◆分离的双路电源稳压器,3.3V/5V的最大电流为150mA/500mA◆双路电源指示LED,3.3V/5V的颜 {MOD}为红 {MOD}/绿 {MOD}◆高亮度状态指示蓝 {MOD}LED◆专用I2C电平转换IC◆FTDI接口带保护二极管及500mA限流保险丝
在多轴旋翼上面基本上都会用陀螺仪、加速度计、磁力计、气压计等等来获得多旋翼的飞行状态等信息。由于微机系统技术(Micro Electro Mechanical System, MEMS)的发展,得以我们将他们整合在很小的IC上面。感测元件的种类虽然多,但是基本就是数字和模拟两种方式的输出,数字常见就是SPI、I2C等通信界面,电路处理较为简单功能性多。模拟电路常见ADC输出,输出大小与电压成正比,会把原始信号资料直接输出。如果想要了解其元件如何测量飞行姿态等及其原理和算法,参考惯性感测元件(Inertial Measurement Unit, IMU)这篇翻译文章。当然如果要自己完全从零开始设计自己的飞行器,那便需要很长的时间。于是选择了这块开源的飞控板,扩展性也比较强。之后的项目基本就是通过自己写云台在倒退过来写自己的飞控板还有遥控器,要学习的东西好多啊。网上已经有很多开源的项目,所以可以拿到很多开源代码,这块飞控板从开发出来之后,模友就不断的更新改进,现在稳定性及MultiWiiConf调试软件等界面开发也较为完善,也是拿它作为入门的原因之一。 246942-64c7cf6e5e95bb4b.jpg 电路原理图 246942-7541abac1f64ab69.png 线路连接原理图
【飞控板与电调及接收机的连接】 246942-99e0d8b6895e9207.jpg 飞控板插槽 上图的白 {MOD}箭头是飞控正前方,我们在下面的【飞控板的程序修改和编译烧录】会讲到Arduino IDE编译的飞控程式中我所设定的飞行模式为 四轴X型(如下图),因此电调接口如下,注意正负极。如果电调有BEC(给飞控板供电),就需要将其中任意三个电调的正极去除,以免供电不一损坏飞控。 246942-9ae1a42a77a74283.jpg 电调电机与飞控板的连接 接收机油门通道为电源通道插三个PIN,其他插槽都为单个PIN。如下图。 246942-4aeeface6ba307ef.jpg 接收机与飞控板的连接
【飞控板的程序修改和编译烧录】这部分的内容我放在GitHib上,GitHub上multiwii-firmware,配置文件config.h已有中文翻译,用到的编译软件为Arduino IDE246942-1a43d963237f08cf.jpg Arduino IDE 1.6.7