基于STM32的四旋翼自稳控制实验案例
实验题目:基于 STM32 的四旋翼自稳控制实验案例
1. 课程简要信息
本实验案例已在课程《电子设计竞赛基础与实战》中实施,该课程是以卓越工程师建设为背景,结合全国大学生电子设计竞赛项目,实施以项目实践为主线,以实际案例为基础的创新实践课程。授课学时 32 学时,电气与电子工程相关专业从大一到大三年级学生均可参与课程学习。
2. 实验内容与任务(限 500 字)
以嵌入式STM32单片机为核心控制器,设计一套能够利用加速度计、陀螺仪及电子罗盘传感器系统实现自主稳定飞行的四旋翼无人机,任务分为基础和扩展任务,每项任务每个阶段相对独立,按完成情况考核成绩,鼓励学生全部完成,实验要求如下:
基础任务:
1) 分模块检测组成四旋翼飞行的无刷电机、电调、锂电池等飞行动力系统状态,保证稳定运行;
2) 分析四旋翼姿态检测的加速度计、陀螺仪及电子罗盘传感器系统实时读取数据并记录;
3) 四旋翼可以实现一键自主起飞、稳定飞行;
4) 接收到降落任务请求后,四旋翼可以慢速安全降落;
扩展任务:
5) 四旋翼可以定高 $3 0 \mathrm { c m }$ 飞行 5 秒并安全降落。
3. 实验过程及要求(限 300 字)
知识储备:
1) 学习 STM32F103 系列单片机嵌入式系统 C 语言编程,了解串口通信、I2C 通信、PWM 输出编程,熟悉在线仿真调试程序方法;2) 四旋翼飞行原理,无刷电机转速控制,传感器数据采集传输,飞行姿态稳定控制策略;
设计电路与器件选择:
3) 掌握 DCDC 稳压电路设计,设计一个稳压电源供电电路,将锂电池电压降低,供飞控使用;
4) 选择满足参数要求的高性价比姿态检测传感器,如GY-86 10轴运动处理传感器,学会查阅读懂芯片英文版参数手册;
5) 掌握无刷电机转速控制原理,电子调速器工作过程以及接线方法,学会选择功率匹配的桨叶、电机、电调、锂电池组成的动力系统;
6) 将四旋翼动力系统、控制系统、传感器检测系统分模块调试。
程序设计与参数选取:
7) 根据实验要求,设计飞控原理图及绘制PCB,焊接装配飞控,最终实物范例详见附件 1;8) 利用Keil5 C语言开发平台建立飞控项目程序,分模块调试程序,分自由度调试 PID参数、通过无线串口实现在线调整参数,软件开发环境详见附件 2;
观察现象与测试数据:
9) 按四旋翼横滚、偏转、俯仰三个自由度分别独立调试PID自稳控制参数,通过读取控制过程波形,反复调试找出最优参数并固化程序,参数调试波形图详见附件3;
结果分析与方案优化:
10) 在调试PID自稳控制参数过程中,考虑测试静态、动态性能以及稳定性,如增加外部扰动,拨动四旋翼使其处于不同偏转角度,测试对应的反应速度和误差;通过单独更改横滚、偏转、俯仰三个自由度角度,测试稳定性,减少误差,继而实现多自由度稳定性。
11) 撰写实验总结报告,记录实验数据,三人一组,各组讨论自稳控制最优参数的选择方法。将实验进展以视频、PPT等多媒体方式进行答辩展示。
4. 相关知识及背景(限 150 字)
这是一个综合运用电子和自动控制技术解决工程实际问题的典型案例,需要运用 STM32 单片机嵌入式硬件技术平台,传感器及检测技术、信号放大、模数信号转换、参数整定、PID控制、PWM调速及动静态性能相关知识与技术手段。此外还涉及多自由度稳定控制策略及调速方法、抗干扰、安全管理、成本效益等现代工程概念与素养能力培养。
5. 教学目标与目的(限 100字)
四旋翼作为较完整的工程项目,可引导学生深入学习经典控制理论。在动手实践过程中,通过可行性分析、器件选型、成本核算、理论计算、软硬件设计,工装装配,设备安全调试,扎实培养学生灵活掌握工程项目全流程概念。
6. 教学设计与引导
本实验的过程是一个比较完整的工程实践项目,需要经历学习研究、方案论证、成本核算、系统设计、实现调试、测试标定、安全管理、设计总结等全流程。在实验教学中,应该从以下几个方面对学生的循序渐进引导:
1) 四旋翼机体搭建时,学习无人机架构的几个典型模块,如飞行控制器、无刷电机、电子调速器、加速度计、陀螺仪、电子罗盘、电源模块等。引导学生先熟悉各个模块,进而掌握各模块之间的协作关系,结合四旋翼要实现的功能进行设计、制作、组装;
2) 掌握 STM32 编程的 C 语言基础,熟悉各器件的基本参数,对四旋翼所要完成的工作有初步规划然后进行任务编程,烧录程序,通过在线调试实时调整参数,找到最优参数完成实验要求。
3) 先通过四旋翼一个自由度的自稳控制学习自动控制理论以及 PID 调参方法,进而逐步扩展到多自由度的综合调试;
4) 搭建安全可靠的模拟实验试飞平台,对四旋翼在不同工况情况下,实现自稳飞行,进而实现稳定的前进、后退、左偏转、右偏转、上升、下降动作;
5) 指导学生学习GY-86 10轴运动处理传感器的基本原理,其中集成的MPU6050是一种低成本较稳定的三轴加速度传感器。了解不同类型传感器的选型,在后续实验扩展中可以完善姿态解算功能,继而提高四旋翼稳定性;
6) 在程序设计方面引导学生根据四旋翼不同自由度的自稳控制参数,分别学习比例、积分、微分 PID 经典参数调节作用和方法,在最终整机调试时快速找到最优参数;
7) 在实验完成后,组织学生以视频、PPT 展示项目开发过程和成果,演示讲解开发难点重点,对比交流不同解决方案,拓展知识面。部分实验成果详见附件 4
7. 实验原理及方案
1) 系统结构

2) 电路原理图

3) PCB 版图

4) 实现方案
硬件系统设计:
控制系统是四旋翼飞行的“心脏”,它主要由主控模块、姿态传感器模块(GY-86)、电机、电调及其驱动模块、无线数据传输模块、电源模块等组成。各种姿态传感器的数据是通过蓝牙 4.0无线通信模块,并传输给主控模块,主控模块通过内部“四元数”算法计算出飞行器当前相对于地面的飞行姿态角的变化,结合目标角度进行 PID 运算,最后输出 PWM 量加载到电调上,使得其输出电流发生变化。
$\textcircled{1}$ 主控芯片选型:
基于硬件空间、重量和性价比综合考虑,系统选择 STM32F103VET6 单片机作为飞控系统的主控芯片。STM32F1 系列属于中端 32 位 ARM 微控制器,该系列芯片是意法半导体(ST)公司出品,其内核是 Cortex-M3。而 STM32F103VET6 拥有 512KFLASH 以及 72MHz 主频,芯片集成定时器,CAN,ADC,SPI,I2C,USB,UART等多种功能,能够满足飞控的所有需求。
$\textcircled{2}$ 传感器模块选型:
传感器采用GY-86模块与超声波 US-100,GY-86 是一个 10轴模块,其集成了三轴陀螺仪与三轴加速度传感器 MPU6050 以及三轴磁力计 HMC5883L,同时还配有高精度气压计 MS5611,满足飞控系统的姿态采集功能。US-100 超声波测距模块可实现 $2 \mathrm { c m } { \sim } 4 . 5 \mathrm { m }$ 的非接触测距功能,自带温度传感器对测距结果进行校正,同时具有GPIO,串口等多种触发方式,内带看门狗,工作稳定可靠。满足飞行高度的精确与实时采集功能。
$\textcircled{3}$ 主控模块与传感器模块通信:
首先考虑使用的通信模块为 NRF24L01,使用SPI协议对其进行读写操作。无功放的情况下,其具有 10 米左右的通信距离,该距离过短。同时,其一次最多发送 32 个字节,因此,若数据帧超过32个字节,则需人为进行分包处理。由于系统中的数据帧为72 个字节,分包处理显得较为繁琐,相比于NRF2401,蓝牙协议更为普及,便于与多设备连接,在设备扩展方面胜于NRF2401,于是,最
终选择使用蓝牙 4.0 模块代替 NRF2401。
软件系统设计:
$\textcircled{1}$ 自稳控制程序流程图$\textcircled{2}$ 主程序代码:

int main(void)
{
Load_Config();
NVIC_Configuration(); RCC_Configuration(); SysTick_Configuration(); TIM3_Init(2500);
TIM6_Init(); Usart1_Init(); Soft_I2C_Init(); Mpu6050_Init();
HMC5883L_Init();
Quaternion_Init(); Led_Init();
Rc_Init();
Motor_Init();
TIM_Cmd(TIM3,ENABLE);
while(1)
{ if((loop.cnt_10ms $> = 1$ )) { loop.cnt_ $1 0 \mathrm { m s } = 0$ ;
//Data_Exchange();}if(loop.cnt_50ms >= 50){loop.cnt_ $5 0 \mathrm { m s } = 0$ ;Led_Task();}}}项目程序整体架构详见附件 5
8. 教学实施进程
四旋翼俯仰动作作为一个自由度来调试稳定性是一个非常有的代表性实验单元,以下将以此为例,叙述实验教学实施进程。
| 例,寂述实验教字实施进程。 | ||||
| 课程名称:电子设计竞赛基础与实战 | 本科课时:4课时 | |||
| 授课单元:第一节 四旋翼俯仰动作自稳调试 | ||||
| 教学目标: | 知识目标:(1) 认识 STM32单片机(2) 搭建STM32开发环境(3) 认识四旋翼俯仰动作控制原理(4) 了解PID控制参数作用 | |||
| 能力目标:(1) 实现四旋翼无刷电机启动(2) 熟悉 STM32在线调试过程(3) 掌握PID参数调整方法(4) 实现俯仰自稳 | ||||
| 教学重点: | (1) 搭建 STM32开发环境(2) STM32应用程序的结构及运行过程 | |||
| 教学难点: | (1) STM32在线调试设置和技巧(2) PID 参数调整方法 | |||
| 教学媒体: | 多媒体机房 | |||
| 教学手段: | PPT 讲授+实物演示 | |||
| 教学实施进程 | ||||
| 主要步骤 | 任务安排 | 现场教学环境 | 师生互动 | 时间分配 |
| 告知 (教学内容) | (1)认识 STM32单片机(2)搭建STM32开发环境(3)认识四旋翼俯仰动作控制原理(4)了解PID控制参数作用(5)预习自学什么是四旋翼 | 实物+视频展示 | 老师需明确讲解本项目教学目标,学生仔细观看老师实物演示的现场操作过程 | 15分钟 |
| 引入(项目引入) | 问题引入法:四旋翼作为时下热门的一种无人机,技术发展迅速,这一节我们从什么是四旋翼,如何控制,然后探究自稳控制的实现过程。预习STM32开发过程 | 课件演示 | 学生分组研讨:(1)四旋翼如何飞起来(3)四旋翼构成与人体构成的相似与区别 | 15分钟 |
| 实施(任务驱动) | (1)如何搭建STM32开发环境,安装串口驱动、下载烧录程序(2)怎样设计STM32项目工程架构和满足编程规范(3)如何下载程序(4)如何在线调试程序(5)俯仰自稳例程学习与如何找到PID参数并调试(6)如何记录调试过程参数数据和波形曲线 | (1)多媒体教学(2)案例教学(3)视频教学 | 老师把搭建 STM32环境,如何建立工程、编程过程、将IO操作例程作为入门项目演示给学生后,给学生时间自己建一个工程。随后展开俯仰例程调试,做好记录 | 120分钟 |
| 归纳验收(知识/能力/素质) | 使学生能充分吸收和掌握搭建 STM32开发环境的能力,熟练创建和运行俯仰自稳项目程序,掌握严谨的科学实验方法,树立安全试飞意识 | 课件演示 | (1)学生分组总结并坐演讲答辩,再由老师提出改进建议和做本节课程总结归纳(2)课后学生按规范撰写实验报告,老师批阅反馈 | 15分钟 |
| 创新(拓展) | 如何选择不同类型传感器实现四旋翼定高飞行 | 」视频演示 | 师生互动,头脑风暴 | 15分钟 |
| 预习下一节单元实验:多自由度自稳控制 | ||||
9. 实验报告要求
实验报告是对实验过程的全面总结和记录,要求各组按分工独立完成,页数控制在 10 页以内,数据图表清晰,论述严禁。实验报告需要反映以下工作:
1) 实验内容和目标
2) 实现方案论证
3) 理论推导计算
4) 硬件设计与器件选型
5) 程序设计与参数确定
6) 四旋翼单轴稳定性测试数据及波形记录
7) 四旋翼多轴稳定性测试数据及波形记录
8) PID 参数整定过程数据记录
9) 预算与成本分析
10) 安全测试注意事项
11) 持续改进与创新应用设想
12) 心得体会与意见建议
10.考核要求与方法(限 300 字)
实验考核采用百分制,包括实验过程和结果综合评判,具体分值如下表:
| 考核项目 | 考核内容 | 评分标准 | 分数 |
| 实验验收 | 功能与性能指标的完成程度、完成时间 | 完成单轴自稳:5分完成双轴自稳:5分完成三轴自稳:5分完成前进动作:2分完成后退动作:2分完成左偏转动作:2分完成右偏转动作:2分完成上升动作:2分完成下降动作:2分规定时间内完成:8分 | 35分 |
| 实验质量 | PCB 设计完整性、程序设计规范性 | PCB 绘图达标:5分编程规范:5分 | 10分 |
| 自主创新 | 功能构思、电路设计的创新性,自主思考与独立实践能力 | 电路设计创新性:5分扩展功能实现:5分自主完成:5分 | 15分 |
| 实验成本 | 是否充分利用实验室已有条件,材料与元器件选择合理性,成本核算与损耗 | 预算统计规范:5分器件选型合理:5分 | 10分 |
| 实验安全 | 实验过程是否按设备安全操作规程执行 | 安全完成实验:10分 | 10分 |
| 实验数据 | 测试数据和测量误差 | 测试数据完整:10分 | 10分 |
| 实验报告 | 实验报告的规范性、完整性、独立性 | 自主规范完成:10分 | 10分 |
| 合计 | 100分 | ||
11.项目特色或创新(可空缺,限 150 字)
基于STM32单片机开发的四旋翼作为一种无人机平台,具有体积小,垂直起降,机动性强,负载能力强,快速灵活,能执行各种特殊、危险任务等特点。项目涉及自动控制理论、安全机制、传感器技术、姿态解算控制、电机转速控制和无线通信。囊括多个交叉学科知识,以四旋翼为实验载体可极大激发学生对电子和单片机技术学习的兴趣。
附件1 飞行控制器:

附件 2 Keil5 程序开发环境


附件3参数调试波形图

附件 4 实验成果

附件 5 项目程序整体架构

实验案例信息表
| 案例提供单位 | 天津理工大学工程训练中心 | 相关专业 | 电工电子 | |||
| 设计者姓名 | 王鑫 | 电子邮箱 | wangxin20052122@163.com | |||
| 移动电话 | 13752018626 | 通讯地址(含邮编) | 天津市西青区天津理工大学主校区(300384) | |||
| 设计者姓名 | 刘艳玲 | 电子邮箱 | Liu. yan. ling@126.com | |||
| 移动电话 | 18622061799 | 通讯地址(含邮编) | 天津市西青区天津理工大学主校区(300384) | |||
| 设计者姓名 | 姚红 | 电子邮箱 | yh97587@126.com | |||
| 移动电话 | 13820997587 | 通讯地址(含邮编) | 天津市西青区天津理工大学主校区(300384) | |||
| 相关课程名称 | 电子设计竞赛基础与实战 | 学生年级 | 1~3年级 | 学时(课内+课外) | 32+20 | |
| 支撑条件 | 仪器设备 | STM32飞控、四旋翼、直流稳压源、示波器、万用表、信号源 | ||||
| 软件工具 | Keil5程序编译软件、Altium Designer 绘图软件 | |||||
| 主要器件 | 三轴磁力计 HMC5883L、加速度MPU6050、STM32、无刷电机、电调、锂电池等 | |||||