基于STM32的四旋翼飞行器设计(14页).docx
《基于STM32的四旋翼飞行器设计(14页).docx》由会员分享,可在线阅读,更多相关《基于STM32的四旋翼飞行器设计(14页).docx(14页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、-基于STM32的四旋翼飞行器设计 摘 要四轴飞行器是一种结构紧凑、飞行方式独特的垂直起降式飞行器,与普通飞行器相比,具有结构简单、故障率低和单位体积能够产生更大升力等优点,所以在军事和民用多个领域都有广阔的应用前景,非常适合在狭小空间内执行任务。 本设计采用stm32f103zet6作为主控芯片,3轴加速度传感器mpu6050作为惯性测量单元,通过2.4G无线模块和遥控板进行通信,最终使用PID控制算法以PWM方式控制电子调速器驱动电机实现了四轴飞行器的设计。关键词: 四轴飞行器,stm32;mpu6050,2.4G无线模块.PID.PWM AbstractQuadrocopter has
2、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 accelero
3、meter 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 m
4、odule ;pid; pwm目录第一章 作品难点与创新11.1作品难点11.2创新点1第二章 方案论证与设计22.1飞控部分硬件框图22.2遥控器部分硬件框图22.3各部分元器件介绍32.3.1 stm32介绍32.3 .2电子调速器42.3.3 mpu6050六轴传感器52.3.4 无线通信NRF24L016第三章 原理分析与硬件电路图83.1 飞行器空气动力学分析83.2飞控部分硬件电路图设计103.3 遥控部分硬件电路图设计10第四章 软件设计与流程114.1 pid算法分析114.2串级pid系数的整定124.3串级pid系统框图134.3.1 飞控部分程序设计144.3.2遥控部分
5、程序设计14第五章 系统测试与误差分析15第六章 总结19参考文献21-第 10 页第十一届中国研究生电子设计竞赛技术论文论文题目: 基于stm32的四旋翼飞行器设计Design of Quadrotor Aircraft Based on STM32参赛单位:南京信息工程大学队伍名称:we are 伐木累指导老师:参赛队员:完成时间:2016.6.18第一章 作品难点与创新1.1作品难点对于一种芯片,最麻烦的就是底层的驱动了,很多驱动得自己编写,为了最大发挥处理器的性能,做了很多驱动优化,将不必要的延时降到最低,比如I2C总线驱动,官方的代码不符合自己的要求,通信效率低,我们花了几天的时间去
6、优化这个驱动,使用了模拟的IIC接口,最后在保证稳定性的前提下,速度提高了一倍。这个设计遇到的最大问题就是怎样保持飞行器的平衡。开始的时候,我们以为很简单,不就是简单的闭环控制么,随着深入研究和实验,发现有些东西已经不能用我现有的知识来解答了,比如姿态的解算。我想姿态解算也是这个项目的难点,怎样时时刻刻都准确的跟踪到飞行器的姿态。很多人都知道使用加速度和陀螺仪检测物体的姿态,很多手机就有这些传感器,但是这两传感器在飞行器上貌似水土不服,陀螺仪随时间推移漂移了,加速度计由于电机的高速运转震动基本上处于半瞎状态。所以我们使用了串级pid算法,并且优化了串级pid算法,使得在只用一个mpu6050的
7、情况下,可以实现稳定的飞行,并且在飞行20层楼层的高度时可以飞出定高的效果。调试过程中,采用无线通信芯片nrf24l01和stm32单片机作为控制端,同时用匿名四轴上位机显示状态。1.2创新点设计的创新点有两个,一是在于遥控器的控制方面,传统的飞行器控制飞行在于通过遥杆控制,通过对遥杆的物理操作实现飞机的左右前后飞行,我们则采用感应式姿态控制,通过遥控器上板载的mpu6050,去跟踪手的姿势,然后将手的物理动作对应到相应的角度,发送给飞控部分,飞控部分将接受到的信号作为期望的角度,实现飞行器的左右前后飞行。本次设计的第二个创新点在于优化pid算法,单纯的pid算法是不足以控制动力如此大的大四轴
8、,再加上只有一个六轴传感器mpu6050是不足以控制好大四轴的,通常市面上的飞行器姿态测量这方面会用到多个传感器,以实现飞行器姿态的跟踪。但是我们只用了一个六轴传感器mpu6050就可以做到非常稳定的飞行,主要原因在于对算法的优化。第二章 方案论证与设计本次设计选择的材料如下:主控芯片:STM32F103ZET6无线通信:NRF24L01传感器:MPU6050六轴传感器遥控主芯片:STM32F407ZGT6机架的型号: F450,重量282克。电机轴距450mm,螺旋桨采用1045型。电机则采用银燕MT-2216,810KV无刷电机,最高转速2极马达210000转/分钟,重量:37g 。电调为
9、好盈20A电子调速器,持续电流30A,短时电流40A。电池则采用了2200mah锂电池。2.1飞控部分硬件框图图2-1从图中可以看出,STM32是电路的核心,它受5v电源控制,它负责和mpu6050,nrf24l01进行通信,处理数据,输出pwm信号给电子调速器,以得到控制电机的转速,实现飞行姿态的调整。2.2遥控器部分硬件框图图2-2 遥控部分STM32F407ZGT6作为主要芯片,nrf24l01f负责和飞控部分无线通信,遥杆主要控制油门大小,mpu6050负责跟踪手的姿势。2.3各部分元器件介绍本次设计主要的工作在于程序的编写,所以就需要对所需要的主芯片和各个模块有一个详细的了解,接下来
10、给大家介绍下我们所用的芯片口和模块介绍。2.3.1 stm32介绍内核:ARM 32位的Cortex-M3,最高72MHz工作频率,在存储器的0等待周期访问时可达1.25DMips/MHZ(DhrystONe2.1)单周期乘法和硬件除法。存储器:从32K到512K字节的闪存程序存储器(STM32F103XXXX中的第二个X表示FLASH容量,其中:“4”=16K,“6”=32K,“8”=64K,B=128K,C=256K,D=384K,E=512K),最大64K字节的SRAM。电源管理:2.0-3.6V供电和I/O引脚,上电/断电复位(POR/PDR)、可编程电压监测器(PVD),4-16MH
11、Z晶振振荡器,内嵌经出厂调教的8MHz的RC振荡器,内嵌带校准的40KHz的RC振荡器,产生CPU时钟的PLL,带校准的32KHz的RC振荡器低功耗:睡眠、停机和待机模式,Vbat为RTC和后备寄存器供电。模数转换器:2个12位模数转换器,1us转换时间(多达16个输入通道),转换范围:0至3.6V,双采样和保持功能,温度传感器。DMA:2个DMA控制器,共12个DMA通道:DMA1有7个通道,DMA2有5个通道。支持的外设:定时器、ADC、SPI、USB、IIC和UART,多达112个快速I/O端口(仅Z系列有超过100个引脚),26/37/51/80/112个I/O口,所有I/O口一块映像
12、到16个外部中断;几乎所有的端口均可容忍5V信号。调试模式:串行单线调试(SWD)和JTAG接口,多达8个定时器,3个16位定时器,每个定时器有多达4个用于输入捕获/输出比较/PWM或脉冲计数的通道和增量编码器输入,1个16位带死区控制和紧急刹车,用于电机控制的PWM高级控制定时器,2个看门狗定时器(独立的和窗口型的),系统时间定时器:24位自减型计数器。多达9个通信接口:2个I2C接口(支持SMBus/PMBus),3个USART接口(支持ISO7816接口,LIN,IrDA接口和调制解调控制),2个SPI接口(18M位/秒),CAN接口(2.0B主动),USB 2.0全速接口。计算单元:C
13、RC计算单元,96位的新批唯一代码。封装:ECOPACK封装。图2-32.3 .2电子调速器电调全称电子调速器,英文Electronic Speed Control,简称ESC。针对电机不同,可分为有刷电调和无刷电调。它根据控制信号调节电动机的转速。本文采用好盈电调20A。对于它们的连接,一般情况下是这样的:1、电调的输入线与电池连接;2、电调的输出线(有刷两根、无刷三根)与电机连接;3、电调的信号线与接收机连接;另外,电调一般有电源输出功能,即在信号线的正负极之间,有5V左右的电压输出,通过信号线为接收机供电,接收机再为舵机等控制设备供电。电调的输出为三四个舵机供电是没问题的。因此,电动的飞
14、机,一般都不需要单独为接收机供电,除非舵机很多或对接收机电源有很高的要求。2.3.3 mpu6050六轴传感器MPU6050是InvenSense公司推出的全球首款整合性6轴运动处理组件,内带3轴陀螺仪和3轴加速度传感器,并且含有一个第二IIC接口,可用于连接外部磁力传感器,利用自带数字运动处理器(DMP: Digital Motion Processor)硬件加速引擎,通过主IIC接口,可以向应用端输出完整的9轴姿态融合演算数据。有了DMP,我们可以使用InvenSense公司提供的运动处理资料库,非常方便的实现姿态解算,降低了运动处理运算对操作系统的负荷,同时大大降低了开发难度 。DMP
15、是 InvenSense 公司的 MPU 器件独特的硬件功能,它能够直接从传感器读出计算好的四元数的数据,获取设备的姿态。DMP功能保存在主处理机的易失性内存中,若需要使用DMP功能,则每次芯片上电后都需要初始化。DMP程序库项目中提供的示例应用程序中给出了更新映像和初始化 DMP 功能的一系列步骤。加载并启用DMP功能的步骤包括:(1)通过函数dmp_load_motion_driver_firmware ()把 DMP 载入MPU内存。(2)通过dmp_set_orientation ()函数更新定位矩(3)当DMP检测到运动或撞击时会触发DMP回调功能。(4)通过函数dmp_enable
16、_feature()启用DMP功能。四旋翼飞行器运用姿态解算计算出空间三轴欧拉角。MPU6050与MCU连接方式如图2-4所示,陀螺仪采样三轴角速度值,加速度传感器采样三轴加速度值,而磁力传感器采样得到三轴地磁场值,将陀螺仪、加速度传感器、磁力传感器采样后的数据进行标定、滤波、校正后得到三轴欧拉角度,其中陀螺仪和加速度传感器选用MPU6050芯片,采用IIC总线与主控板通信。图2-42.3.4 无线通信NRF24L01 NRF24L01是NORDIC公司生产的一款无线通信通信芯片,采用FSK 调制,集成NORDIC自家的Enhanced Short Burst协议。可以实现点对点或是1对6的无
17、线通信。无线通信速度最高可达到2Mbps。 NRF24L01采用SPI通信,可以很方便的连接到MCU上面。2.4G全球开放的ISM频段,免许可证使用。最高工作速率2Mbps,高校的GFSK调制,抗干扰能力强。 126个可选的频道,满足多点通信和调频通信的需要。内置CRC检错和点对多点的通信地址控制。可设置自动应答,确保数据可靠传输。NRF24L01模块介绍 图2-5CE:模式控制线。在 CSN为低的情况下,CE 协同CONFIG 寄存器共同决定NRF24L01 的状态(参照NRF24L01 的状态机) CSN:SPI片选线SCK:SPI时钟线MOSI:SPI数据线(主机输出,从机输入)MISO
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 STM32 四旋翼 飞行器 设计 14
限制150内