网络资料:多旋翼无人机飞控系统设计之详细设计方案
    在进行多旋翼无人机飞控系统设计之前,有必要列写一份详细的设计方案书;这是飞控系统设计的基石,并且在一定程度上指导了后续的研发工作。本篇博文列写了之前笔者在进行无人机飞控开发过程中所撰写的精简版本的设计方案书,虽有不完善之处,但也在一定程度上对飞控系统的整个硬件和软件逻辑进行了梳理,有一定的参考价值。

    1.系统功能
    1.1实时姿态解算
    拟采用MPU6050+IST8310(磁力计)+SPL06-001/MS5611(气压计)的IMU配置,采用I2C/SPI总线进行实时的传感器数据获取,并进行数据融合(互补滤波/Kalman滤波)得到实时的姿态角和姿态角速度数据。
    1.2姿态控制
    使用PID控制器,根据姿态角误差产生期望的控制量。
    1.3位置估计
    使用超声波和气压计融合的方式获取无人机当前高度,使用光流传感器来得到无人机的平动速度。
    1.4位置控制
    通过位置误差产生期望的姿态角,无人机跟踪期望姿态角,从而消除位置误差。
    1.5电机控制
    根据姿态信息,通过PID控制器产生实时的控制量,使用定时器产生不同占空比的PWM波来控制四个旋翼电机转速。
    1.6实时通信
    使用数传将无人机的飞行数据实时回传到地面站。
    1.7姿态模式
    只开启姿态自稳功能。
    1.8定高模式
    使用姿态自稳+定高控制,在保持姿态稳定的基础上加入高度闭环控制,使无人机达到高度稳定的效果。
    1.9定点模式
    使用姿态自稳+定高控制+位置控制,无人机三个通道的位置均闭环控制,达到定点的效果。
    1.10飞行状态实时显示
    通过LED模块显示无人机实时飞行状态。
    2.硬件方案
    2.1硬件原理图

    2.2硬件接口

    2.3机械参数
    估计尺寸:6.5 c m ∗ 4.5 c m ∗ 2.5 c m 6.5cm4.5cm2.5cm6.5cm∗4.5cm∗2.5cm
    2.4器件选型

    2.5硬件设计要点
    a.电机转动带来的震动会对姿态解算精度造成很大影响,所以设计要考虑减震措施。
    b.设计要充分考虑密封防护措施,以提高防尘防水性能。
    c.PCB板上加入测试点,方便检测与调试。
    2.6硬件测试方法
    1)电源线路部分的测试,板子上电后检查各个节点电压是否正常,是否有短路和断路的情况存在。
    2)进行MCU的焊接,随后使用简单的例程来测试MCU功能是否正常,焊接是否正常。
    3)使用示波器检测PWM端口输出是否正常。
    4)使用串口输出姿态数据来检测IMU模块是否正常。
    3.软件方案
    3.1软件功能
    1)通过姿态解算,得到实时的无人机姿态角和姿态角速度信息。
    2)通过扩展传感器模块,得到实时的无人机的位置信息。
    3)通过SBUS通信模块,获得遥控器的各个通道值。
    4)通过PID控制器进行无人机的姿态和位置的控制。
    5)通过LED模块实时显示无人机所处的状态,操控者能在较远视距飞行时得到实时反馈。
    3.2模块功能划分
    1)IMU模块
    2)扩展传感器模块
    3)BEC模块
    4)电机控制模块
    5)SBUS通信模块
    6)数传通信模块
    7)LED模块
    3.3流程调度
    1)进行LED、IMU、USART、PWM、ADC、TIMER和PID参数的初始化。
    2)IMU传感器测量值通过I2C接口输入MCU,进行姿态解算,更新姿态信息。
    3)根据扩展传感器模块测量数据更新无人机的位置信息。
    4)位置控制器产生期望的姿态角。
    5)PID控制器根据当前姿态信息产生期望的控制量。
    6)将控制量转化为对应占空比的PWM波输入电机,进行转速控制。
    7)将无人机信息通过数传发送给地面站。
    8)更新LED灯的显示状态。
    3.4接口定义
    1)IMU模块
    输入:IMU原始测量数据;输出:三轴姿态角和姿态角速度,气压高度。
    2)扩展传感器模块
    输出:无人机的高度和位置信息。
    3)BEC模块
    输入:+25.2V电源电压;输出:+5V电压。
    4)电机控制模块
    输入:当前时刻姿态角;输出:经PID控制器生成的PWM波控制量。
    5)SBUS通信模块
    输入:SBUS接收机原始数据;输出:遥控器各个通道的值。
    6)数传通信模块
    输入:无人机当前时刻的姿态、速度、位置等信息;输出:将无人机信息转换成符合数传协议的数据。
    7)LED模块
    输入:无人机当前时刻的状态;输出:显示与该状态对应颜色的灯光。
    3.5测试方法
    针对每个模块先进行功能测试,在确保各模块功能正常后,进行整块板子的测试。
    IMU模块的测试:使用串口输出解算的姿态角,观察输出的信息是否准确,是否存在延时。
    SBUS模块的测试:将SBUS输入接口采集到的数据打印至串口,使用串口调试助手观察采集到的SBUS信号是否正常,确保正常后进行下一步的SBUS信号解析工作。
    电机控制模块的测试:使用示波器观察PWM输出是否正常,转动传感器观察PWM波形是否有对应的变化,是否存在延迟。
    数传通信模块的测试:首先观察数传输出串口是否有稳定且正确的输出;接着连接好整个数传链路,观察地面站是否能接收到正确的信息。