基于STM32的四旋翼飞行器设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
摘要
四轴飞行器是一种结构紧凑、飞行方式独特的垂直起降式飞行器,与普通飞行器相比,具有结构简单、故障率低和单位体积能够产生更大升力等优点,所以在军事和民用多个领域都有广阔的应用前景,非常适合在狭小空间内执行任务。
本设计采用stm32f103zet6作为主控芯片,3轴加速度传感器mpu6050作为惯性测量单元,通过2.4G无线模块和遥控板进行通信,最终使用PID控制算法以PWM方式控制电子调速器驱动电机实现了四轴飞行器的设计。
关键词:四轴飞行器,stm32;mpu6050,2.4G无线模块.PID.PWM
Abstract
Quadrocopter has broad application prospect in the area of military and civilian because of its advantages of simple structure. Small size, low failure rate, taking off and landing ertically . etc. it is suitable for having task in narrow space.
This design uses STM32f103zet6 as the master chip, and triaxial accelerometer mpu6050 inertial measurement unit, via 2.4G wireless module and remote control panel for communication. Finally using pid control algorithm with pwm drives the electronic speed controller to change moto to realize the design of quadrocopter.
Key word : quadrocopter,stm32,mpu6050,2.4G wireless module ;pid; pwm
目录
第一章作品难点与创新 (1)
1.1作品难点 (1)
1.2创新点 (1)
第二章方案论证与设计 (2)
2.1飞控部分硬件框图 (2)
2.2遥控器部分硬件框图 (2)
2.3各部分元器件介绍 (3)
2.3.1 stm32介绍 (3)
2.3 .2电子调速器 (4)
2.3.3 mpu6050六轴传感器 (5)
2.3.4 无线通信NRF24L01 (6)
第三章原理分析与硬件电路图 (8)
3.1 飞行器空气动力学分析 (8)
3.2飞控部分硬件电路图设计 (10)
3.3 遥控部分硬件电路图设计 (10)
第四章软件设计与流程 (11)
4.1 pid算法分析 (11)
4.2串级pid系数的整定 (12)
4.3串级pid系统框图 (13)
4.3.1 飞控部分程序设计 (14)
4.3.2遥控部分程序设计 (14)
第五章系统测试与误差分析 (15)
第六章总结 (19)
参考文献 (21)
第一章作品难点与创新
1.1作品难点
对于一种芯片,最麻烦的就是底层的驱动了,很多驱动得自己编写,为了最大发挥处理器的性能,做了很多驱动优化,将不必要的延时降到最低,比如I2C 总线驱动,官方的代码不符合自己的要求,通信效率低,我们花了几天的时间去优化这个驱动,使用了模拟的IIC接口,最后在保证稳定性的前提下,速度提高了一倍。
这个设计遇到的最大问题就是怎样保持飞行器的平衡。开始的时候,我们以为很简单,不就是简单的闭环控制么,随着深入研究和实验,发现有些东西已经不能用我现有的知识来解答了,比如姿态的解算。我想姿态解算也是这个项目的难点,怎样时时刻刻都准确的跟踪到飞行器的姿态。很多人都知道使用加速度和陀螺仪检测物体的姿态,很多手机就有这些传感器,但是这两传感器在飞行器上貌似水土不服,陀螺仪随时间推移漂移了,加速度计由于电机的高速运转震动基本上处于半瞎状态。所以我们使用了串级pid算法,并且优化了串级pid算法,使得在只用一个mpu6050的情况下,可以实现稳定的飞行,并且在飞行20层楼层的高度时可以飞出定高的效果。
调试过程中,采用无线通信芯片nrf24l01和stm32单片机作为控制端,同时用匿名四轴上位机显示状态。
1.2创新点
设计的创新点有两个,一是在于遥控器的控制方面,传统的飞行器控制飞行在于通过遥杆控制,通过对遥杆的物理操作实现飞机的左右前后飞行,我们则采用感应式姿态控制,通过遥控器上板载的mpu6050,去跟踪手的姿势,然后将手的物理动作对应到相应的角度,发送给飞控部分,飞控部分将接受到的信号作为期望的角度,实现飞行器的左右前后飞行。
本次设计的第二个创新点在于优化pid算法,单纯的pid算法是不足以控制动力如此大的大四轴,再加上只有一个六轴传感器mpu6050是不足以控制好大四轴的,通常市面上的飞行器姿态测量这方面会用到多个传感器,以实现飞行器姿态的跟踪。但是我们只用了一个六轴传感器mpu6050就可以做到非常稳定的飞行,主要原因在于对算法的优化。
第二章方案论证与设计
本次设计选择的材料如下:
主控芯片:STM32F103ZET6
无线通信:NRF24L01
传感器:MPU6050六轴传感器
遥控主芯片:STM32F407ZGT6
机架的型号: F450,重量282克。电机轴距450mm,螺旋桨采用1045型。电机则采用银燕MT-2216,810KV无刷电机,最高转速2极马达210000 转/分钟,重量:37g 。电调为好盈20A电子调速器,持续电流30A,短时电流40A。电池则采用了2200mah锂电池。
2.1飞控部分硬件框图
图2-1
从图中可以看出,STM32是电路的核心,它受5v电源控制,它负责和mpu6050,nrf24l01进行通信,处理数据,输出pwm信号给电子调速器,以得到控制电机的转速,实现飞行姿态的调整。
2.2遥控器部分硬件框图