思享国logo
  • 点赞

    9

  • 宝推

    0

  • 10

  • 回复

  • 下载附件

    13

返回顶部

点赞数

9

回复数

1

被浏览

620

R7F0C014+MPU6050+HC-SR04+MS5611的四轴飞行器(PCB,源码,设计概要)

2017-12-21 14:30更新
  • 论坛热议

1系统功能概述

1.1 四轴飞行器原理介绍

四轴飞行器通过调节四个电机转速来改变旋翼转速,实现升力的变化,从而控制飞行器的姿态和位置。结构上,本次应用中使用四轴飞行器的飞行模式是 X 模式,如图“图 1.1”所示,四轴飞行器的四个电机一对正转,一对反转使得垂直方向旋转的反扭矩平衡, 从而保证了飞行的稳定。四轴飞行器可以用作航拍、玩具等,

在我们生活中已经越来越常见。

 图片1

图 1.1 四轴飞行器飞行模式(X 模式)


四轴飞行器的基本飞行状态可以分为:垂直飞行、水平飞行(俯仰和翻滚)、偏航飞行,分别如“图 1.2”所示。(1)垂直飞行:如下图(a)所示,同时增加或减少四个电机的转速,四轴飞行器则会垂直上升或下降。(2)水平飞行:如下图(b)所示,增加两个电机的转速,如电机 M1 和 M4,同时减少另两个电机 M2和 M3 的转速,则四轴飞行器将向右飞行,同理可得向前、向后、向左方向的飞行方式。(3)偏航飞行:如下图(c)所示,增加两个电机的转速,如电机 M1 和 M3,同时减少另两个电机 M2和 M4 的转速,则四轴飞行器将顺时针偏转,同理可得逆时针偏转的飞行方

图片2

图 1.2 四轴飞行器飞行

 

1.2 PID 平衡控制

对于四轴飞行器平衡控制算法中,电机的转速并不是单独由油门来决定,而是以油门为基准整合上空间三轴俯仰(Pitch)、翻滚(Roll)和偏航(Yaw)的控制量来决定,如下公式所示。

例如,四轴飞行器机头向下倾斜时(对应俯仰),为了达到平衡,电机 3 和电机 4 增大转速,电机 1 和电机 2 减小转速,此时俯仰控制量应该向负增大(控制量的正负由姿态芯片 MPU6050 摆放决定)。

电机 1 转速 = 油门 + 俯仰 + 横滚 - 偏航

电机 2 转速 = 油门 + 俯仰 - 横滚 + 偏航

电机 3 转速 = 油门 - 俯仰 - 横滚 - 偏航

电机 4 转速 = 油门 - 俯仰 + 横滚 + 偏航

 图片3

上述的三轴控制量则由本系统中使用的增量式 PD 控制得到(PID 控制算法的一种)。以俯仰控制量为例,MPU6050 可以得到空间三轴的旋转角速率,正好是角度的微分,所以可以得到以下计算公式。

 

俯仰(Pitch)控制量 = P * 对应期望角度与实际角度的偏差 + D * 对应轴的角速率值

翻滚(Roll)控制量 = P * 对应期望角度与实际角度的偏差 + D * 对应轴的角速率值

偏航(Yaw)控制量 = D * 对应轴的角速率值

 

由于实际偏航角(Yaw)无法由 MPU6050 测得,需要用电子罗盘,但是电子罗盘在四个电机的电磁作用下,精度受影响较大,所以上式中偏航(Yaw)控制量去除比例项,仅由微分项得到。

MPU6050 的姿态刷新频率约为 10ms 一次

 

1.3 定高控制

高度的采集通过超声波模块 HC-SR04 实现,由于测量距离的限制(约 2cm-120cm),本系统仅适用于室内低空飞行,默认高度设定为 60cm。

定高部分算法,根据超声波检测的距离进行 PID 控制,定高控制的输出量与初始油门(由机身本身的重力和当前电池电量决定)叠加作为当前油门,从而不断调节四轴飞行器油门值来实现垂直方向上的定高,而水平方向由于缺少 GPS 相关模块,未能得到进行水平方向的控制量,所以本系统只能实现简单的悬停。

超声波模块 HC-SR04 置于四轴飞行器底部,高度刷新频率约为 50ms 一次。

 

1.4 四轴飞行器演示板

本篇用户手册使用的演示板如“图 1.3”所示,单片机 R7F0C014 通过 I/O 端口模拟 IIC 控制姿态芯片MPU6050,然后使用 MPU6050 的硬件解算(内置的 DMP 模块)直接获取和姿态相关的四元数等数据,再将四元数转化为欧拉角,最后以当前姿态角和捕捉的遥控数据为控制量,通过 PID 控制四个电机以达到控制四轴飞行器姿态的目的。通过 MPU6050 的硬件解算,可以避免复杂的姿态融合算法,从而减轻单片机的负担。

 图片4

图 1.3 四轴飞行器演示板


系统整机结构图如“图 1.4”所示。为了硬件的安装和固定,演示板背面并没有贴装任何器件,而是直接固定在机架上。机架的底部用于放置锂电池,并固定超声波模

 图片5

 

图 1.4 四轴飞行器整机正面和背面

 

1.5 操作说明

(1)启动:依次打开四轴飞行器和遥控器的电源开关,四轴飞行器的四个机翼处 LED 将会闪烁两秒,然后变为常亮。

(2)解锁:将遥控器左手边的油门拉至最低,油门摇杆上方的蓝色 LED 点亮,解锁完成(注意:解锁完成前不要操作方向摇杆),此时,右手方向摇杆上方的蓝色 LED 不断闪烁,表明和四轴飞行器通信正常,便可以开始遥控飞行器。

(3)定高飞行:此功能仅限室内低空飞行(1.5 米以内)。解锁完毕后,拉高油门,待四轴飞行器达到一定高度后,按下遥控器最右下方按键,进入定高飞行,四轴飞行器会定高在默认设定的 0.6 米处飞行。再次按下此按键,四轴飞行器将自动降落,落地后需将油门拉至最低。

注意:因四轴飞行器飞行过程中,电机的电流消耗较大,可以达到数安培,飞行时间只能持续几分钟,当机翼处 LED 闪烁时,说明电池电量已过低,为了安全起见,请充电后再使用。

 图片6

图 1.5 四轴飞行器和遥控器


 图片7

图 1.6 四轴飞行器整机加外壳

 

1.6 四轴飞行器的不足和可改进之处

(1)四轴飞行器定高:由于本应用使用超声波定高(硬件限制),所以只适用于室内低空定高飞行。对于室外高空定高飞行,用户可以根据需要加入气压计 MS5611 实现,本系统中也预留了此部分电路。但是由于场地环境限制,以及测试的时候发现气压计 MS5611 存在测量精度不足和数据随时间漂移等问题,因此没有添加此部分功能。如有条件及需求,用户可以自行添加此部分功能。

(2)姿态控制:姿态获取方面,本应用使用姿态芯片 MPU6050 的硬件 DMP 功能直接读取并计算得到当前姿态,由于读取的周期限制(约 10ms),姿态的更新频率有限。用户也可以采用读取 MPU6050三轴重力加速度和三轴陀螺仪数据来获取当前姿态,但是需要经过较为复杂的姿态运算和滤波(如卡尔曼滤波),建议采用高主频的 MCU 实现(如 72MHz 以上),以提高姿态的更新频率。而姿态控制算法方面,本应用使用的是相对简单的单级 PID 控制,用户也可以选择串级 PID 控制以达到更好的控制效果。

(2)参数调节:系统中的姿态和定高的 PID 参数等适用于本套机械结构,是经过多次试验,得到的较优参数,用户需要根据自己的系统选择和调试相应参数,调试四轴飞行器时,请做好一定保护措施,防止意外情况。

(3)遥控距离:由于本系统遥控器采用的是 PCB 天线,遥控器的发射功率强度有限,以致操控有效距离不到 10 米。用户可以使用更大的天线(如鞭状天线)加入遥控器的 2.4GHz 发射部分,以实现远距离操控。


1.7 安全注意事项

四轴飞行器具有一定危险性,操作不当可能会发生人身伤害。在调试四轴飞行器的时候,最好在室外空旷地方,并做好一定保护措施。刚接触四轴飞行器的用户,应尽量在近距离低空飞行,熟练操作。如出现操作失误,应快速拉低油门,使四轴飞行器尽快降落,防止失控发生意外。

 

四轴飞行器演示板介绍

 图片8


四轴飞行器演示板

四轴飞行器演示板的硬件结构框图如下

图片9


您尚未登录, 登入  或  注册  后可查看全部