ImageVerifierCode 换一换
格式:DOC , 页数:49 ,大小:36.54MB ,
资源ID:8856714      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-8856714.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于STM32的四旋翼飞行控制系统毕业设计.doc)为本站会员(wj)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

基于STM32的四旋翼飞行控制系统毕业设计.doc

1、西华大学毕业设计说明书 目 录1前言11.1背景与意义11.2国内外研究现状11.3论文主要工作22总体方案设计32.1方案比较32.2方案论证与选择33飞行器原理与结构53.1飞行器原理53.2飞行器结构64单元模块设计84.1各单元模块功能介绍及电路设计84.1.1电源84.1.2 STM32F407最小系统94.1.3 下载电路114.1.4 飞控姿态模块114.1.5 无刷电机连接电路124.1.6 串口接口电路124.2特殊器件的介绍124.2.1 无线数传模块124.2.2 飞控姿态模块135软件设计165.1软件设计原理及设计所用工具165.2主要软件设计流程框图及说明175.2

2、.1串口中断流程图175.2.2外部中断流程图185.2.3主程序流程图186系统调试206.1 通信系统206.2 姿态传感器调试216.2.1 传感器数据分析与处理216.2.2 姿态解算236.2.3 数据中断286.3 PID调试306.3.1 PID姿态控制306.3.2 飞控系统PID调试337系统功能、指标参数367.1系统能实现的功能367.2系统指标参数368结论388.1 回顾388.2 展望389总结与体会3910谢辞4011参考文献41附录:421.硬件电路图422.PCB图433.部分程序444.外文翻译46 1前言1.1背景与意义近年来得益于现代控制理论与电子控制技

3、术的发展,四轴飞行器得到了广泛的关注,在民用与工业领域,具有广泛的应用前景。甚至无人机在战争中得到广泛的应用。当下无人机发展火热,其中以四旋翼飞行器的发展最为突出。四旋翼飞行器其具有以下特点:(1)体积小巧,可以工作在恶劣的,危害人类健康和生命的环境中,最大限度地减少人员伤亡,飞行器可以全天工作无需休息,工作效率高。(2)支持配备高端电子产品,多种外设相连接,如照相机、机械臂等,可以实现一些娱乐功能。例如在高空电力线巡检中,无人机能在工作人员的操控下进行工作,可以代替人工对巡检对象实施接近检测,减少工人的劳动强度。也可以携带传感仪器、摄像机等,对巡检对象进行数据收集、分析与存储,这进一步提高巡

4、检的工作效率和巡检精度。在军事上,在局部小规模对战的时候,一些普通的侦察机,可能受到敌方打击而造成不必要的机体人员伤亡,无人机则可以很好地起到替代作用。利用四旋翼飞行器作为侦察机,具有振动小、噪声小、可靠性高、成本低、反侦察能力强、自我销毁等优势。因此无人机的军事价值不可估量。四旋翼飞行器还有着更为广阔的前景等待着开发。比如可以通过为飞行器的添加更加智能的算法实现人机互动,让飞行器帮人取物件等。尽管目前四旋翼飞行器已经在许多领域得到运用,但总体而言依旧处于初步发展阶段。1.2国内外研究现状国际上比较知名的飞行器公司有中国大疆创新和美国的3D Robotics。作为全球无人机领域的领头羊,这两家

5、公司在无人机技术发展速度可以用迅猛来形容。比如大疆公司最新的精灵4无人机,实物图如图1.1所示。图1.1 精灵4实物图精灵4具有以下功能:1. 可感知前方障碍物并自动绕行。 2. 通过视觉识别自动跟拍移动物体。 3. 点击相机画面,即可向指点方向自主飞行。 4. 智能返航,感知障碍物后可自动提升飞行高度。 5. 最大飞行时间28分钟,最大可控距离约5公里。 6. 最高速度提升至20m/s (72km/h)。 7. 一体化云台设计,提升了飞行和影像的稳定性。 8. 利用全新的视觉定位技术,可实现室内外精准定位。又比如:3D Robotics公司最新出品的PIXHAWK飞控,拥有出色飞行稳定性,搭

6、载双传感器系统和冗余电源输入并且可以扩展两组GPS系统,确保飞行失误降到最低。这两家公司占领了全球大部分无人机市场,并且由于技术的高门槛和垄断,其他无人机公司已经被远远的甩在了后面。大部分的无人机公司的技术仅仅停留在稳定飞行、简单航拍和户外GPS定位阶段。1.3论文主要工作无人机作为当今电子产业里一个冉冉升起的新星,具有广阔的市场和发展前景。作为当代大学生,不仅要顺应时代的潮流,更要有作为时代弄潮儿的信心与勇气。四旋翼无人机涉及知识面很广泛,其中核心知识与本专业契合度相当高。比如,一颗功能强劲的微机芯片就可以打造一个功能完备的飞行控制系统。而这恰恰是微机原理和单片机的运用。主流无人机的控制系统

7、离不开自动控制原理。并且目前无人机在电力行业的应用力度很大,综上,毕业设计选择了基于STM32 ARM单片机的四旋翼飞控系统。 受限于本人知识水平,本文解决以下问题:第一章节:四旋翼飞行器研究背景与意义,国内外发展现状。第二章节:就四旋翼飞行器方案讨论与选择,选择了基于STM32 ARM单片机的四旋翼飞行控制系统。第三章节:简单叙述了飞行器飞行原理,以及机械结构。第四章节:飞行控制系统硬件设计,其中包括单片机最小系统,各类模块接口等。第五章节:程序流程图,对程序流程进行简单说明。第六章节:飞行器控制系统设计,包括传感器数据进行分析和处理,DMP姿态解算方式,配置中断实时更新当前飞行姿态数据。四

8、旋翼飞行器的PID调试策略。第七章节:上位机与飞行器之间的通信系统,PID调试过程。 2总体方案设计 2.1方案比较方案一:基于意大利开源硬件Arduino Nano作为数据处理,姿态结算的飞行控制系统。其飞行控制系统结构如图2.1所示。图2.1 Arduino飞控系统结构图方案二:采用意法半导体的STM32F407VET6作为飞行器的主控芯片。其飞行控制系统结构如图2.2所示。图2.2 基于STM32飞控系统结构图2.2方案论证与选择方案一:Arduino Nano是基于Atmega328P AVR单片机的开源硬件,具有两个外部中断口,可以输出六路PWM波,兼备IIC,UART,SPI通信功

9、能,总的来说,其具有丰富的片上资源和优秀的性能。对它编程使用的是Arduino C,这种C语言类似于标准C,但又针对Arduino系统做了大量的简化工作,提供了许多函数和库文件,但是通用性不高。Arduino虽然是已开源的飞行控制系统,命令是依靠无线遥控器发出的,这会额外增加遥控器的费用。另外Arduino通信协议未知,这并不利于增添代码后的调试工作。方案二:意法半导体的STM32F407VET6为CORTEX-M4内核,属于32位ARM微控制器,常用的编程软件是KEIL和IAR,编程语言可以是汇编,标准C语言,C+等,使用灵活方便。友好的编译方式大大提高了代码的通用性和可移植性。STM32F

10、407VET6具有卓越的性能,并不输于AVR的Atmega328P。这里采用上位机传输命令给飞行控制系统,也简化了系统调试方式。最后考虑到资金、性价比和使用的难易程度选择方案二,基于STM32F407VET6 单片机的飞行控制系统。3飞行器原理与结构3.1飞行器原理四轴飞行器具有两种不同的飞行模式: X 型与十字型。X型飞行方式的四旋翼飞行器姿态改变的方向与机身成一个45度角,十字型飞行方式四旋翼飞行器姿态改变方向与飞行器机身相同。因为采用X型飞行方式的飞行器具有更好的控制灵敏度与稳定性,所以选择了X型的飞行方式。两种工作模式如图3.1所示。YXYX图3.1 X 型(左)与十字型(右)飞行方式

11、图四旋翼飞行器的四个螺旋桨都是电机直连的结构,通过改变电机转速获得旋转机身的力,从而调整自身姿态。在飞行器飞行过程中,螺旋桨会产生两个力,一个是升力,一个是与螺旋桨转向相反的反扭矩。反扭矩会使飞行器沿着螺旋桨旋转的方向自旋,如果不抵消反扭矩会让飞行器一直自转,这会影响飞行器的飞行。四旋翼飞行器通过分配四只螺旋桨的转向来抵消各个螺旋桨产生的反扭矩。以X 型飞行方式为例,按顺时针方向为每个电机编号,右上角电机为1号电机,依次编号1、2、3、4。并将1、2号螺旋桨所在的轴向方向定义为X轴方向,即机头。 3、4号螺旋桨所在的轴向方向定义为Y轴方向。为了抵消螺旋桨的反扭矩,1、3号螺旋桨需要顺时针转动,

12、2、4号螺旋桨需要逆时针转动,即对角线上的螺旋角旋转方向相同,以此抵消相互之间的反扭矩。四旋翼飞行器的飞行方向与速度都是由飞行器的倾角决定的,并且飞行器倾斜的角度越大,飞行速度也就越快。通过调节各个电机的转速可以达到控制飞行器姿态、速度、甚至是飞行路径的效果。其中,四旋翼飞行器飞行的姿态主要是高度、俯仰角(Pitch)、横滚角(Roll)、偏航角(Yaw),可以继续细分为:上升、下降、前倾、后倾、左倾、右倾、左旋、右旋。(1) 高度:使四个螺旋桨转速相同,当其同时加速时,螺旋桨升力变大,当升力大于飞行器重力时,飞行器拥有向上运动的加速度,飞行器上升;当四个螺旋桨同时减速时,螺旋桨产生的升力变小

13、,当升力小于飞行器重力时,飞行器拥有向下运动的加速度,飞行器下降。 (2) Pitch:就是绕着Y轴方向旋转,所进行的控制为1,2号电机转述同等减小,3,4号电机转述同等增大,飞行器往前倾;反之,会后倾。 (3)Roll:与俯仰控制相似,横滚就是绕着X轴方向旋转,1,4号电机转述同等减小,2,3机转述同等增加,产生右倾;反之,会左倾。 (4)Yaw:同理可得,就是飞行器绕着Z轴旋转。当1、3号电机转述同等减小,其反扭矩和升力减小,并且2、4号电机转述同等增加,其反扭矩和升力增加,由于反扭矩出现不平衡,会使飞行器向右转,反之,会使飞行器向左转。3.2飞行器结构采用的机架型号为 F360,轴距36

14、0mm。螺旋桨型号是1047型。电机采用的是朗宇X2212,980KV无刷电机,即每加1V的电压,电机每分钟980转,电机转速大约是10878转分。通常四旋翼飞行器配2200mah的电池。电调为好盈天行者30A的电子调速器,整个飞行系统用锂电池供电。电机实物图如图3.2所示,电子调速器实物图如图3.3所示。图3.2 朗宇电机实物图图3.3 电子调速器实物图飞行器组装完成后如图3.4所示图3.4 飞行器实物图4单元模块设计 4.1各单元模块功能介绍及电路设计飞行控制系统的硬件结构遵从于方案二的结构框图,即图2.2。以下就重要的单元模块做介绍。4.1.1电源LM1117为低压差电压调节器。其压差输

15、出为1.2V时,负载电流为800mA。它与国家半导体的工业标准器件LM317有相同的管脚排列。LM1117有可调电压的版本,通过2个外部电阻可实现1.2513.8V输出电压范围。另外还有5个固定电压输出(1.8V、2.5V、2.85V、3.3V和5V)的型号。因为设计的飞行器的主控芯片是3.3V的。所以选取固定输出为3.3V的LM1117。LM1117提供电流限制和热保护。输出电压的精度在1%以内。LM1117系列具有LLP、TO-263、SOT-223、TO-220和TO-252、D-PAK等多种封装。飞行器为了提高续航能力,要尽量减轻自身重量,所以这里选取的是SOT-223封装。在电路设计

16、的输出端需要并联一个至少10uF的钽电容来改善瞬态响应和稳定性。LM1117电气特性如表4.1所示。表4.1 电气特性表-LM1117符号参数测试条件最小值典型值最大值单位VREF 基准电压LM1117-ADJIOUT=10mA, VIN-VOUT=2V, TJ=25C10mAIOUT800mA, 1.4VVIN-VOUT10V1.2381.2251.2501.2501.2621.270VVVOUT输出电压LM1117-1.8IOUT=10mA, VIN=3.8V, TJ=25C0IOUT800mA, 3.2VVIN10V1.7821.7461.8001.8001.8181.854VVLM11

17、17-2.5IOUT=10mA, VIN=4.5V, TJ=25C0IOUT800mA, 3.9VVIN10V2.4752.4502.5002.5002.5252.550VVLM1117-2.85IOUT=10mA, VIN=4.85V, TJ=25C0IOUT800mA, 4.25VVIN10V0IOUT500mA, VIN=4.10V2.8202.7902.7902.8502.8502.8502.8802.9102.910VVVLM1117-3.3IOUT=10mA, VIN=5V TJ=25C0IOUT800mA, 4.75VVIN10V3.2673.2353.3003.3003.333

18、3.365VVVOUT压差LM1117-3.3IOUT=0mA, 4.75VVIN15V16mV 电源模块的原理图如图4.1所示。图里的5V电源来源于电子调速器的BEC降压系统。图4.1 电源模块电路图4.1.2 STM32F407最小系统STM32F407VET6是意法半导体基于CORTEX-M4内核的芯片,STM32F407拥有的资源包括:集成FPU和DSP指令,并具有192KBSRAM、1024KB FLASH、12个16位定时器、2个32位定时器、2个DMA控制器(共16个通道)、3个SPI、2个全双工I2S、3个IIC、6个串口、2个USB(支持 HOST /SLAVE)、2个CAN

19、、3个 12位ADC、2个12位DAC、1个RTC(带日历功能)、1个SDIO 接口、1个FSMC接口、1个10/100M以太网MAC控制器、1个摄像头接口、1个硬件随机数生成器、以及112个通用IO口等。该芯片的配置十分强悍,具有卓越的性能。相对STM32F1来说,许多功能进行了重大改进。STM32最小系统电路图如图4.2所示。图4.2 STM32最小系统电路图STM32上电复位后默认使用内部晶振(精度8MHz左右),为了让飞行控制板稳定工作,这里选择了外接8MHz的晶振,在程序里切换为使用外部8MHz晶振,并通过芯片自带的锁相环PLL倍频到168MHz。所以需要修改系统时钟配置System

20、_stm32f4xx.c文件,把PLL第一级分频系数M修改为8,这样才能让主时钟频率达到168MHz。在STM32F40xx里,可以通过BOOT1:0引脚选择三种不同启动模式。一般我们选用从主闪存存储器启动。启动模式如表4.2所示。表4.2 启动模式-STM32启动模式选择引脚启动模式说明BOOT1BOOT0X0主闪存存储器主闪存存储器被选为启动区域01系统存储器系统存储器被选为启动区域11内置SRAM内置SRAM被选为启动区域根据选定的启动模式,主闪存存储器、系统存储器或SRAM可以按照以下方式访问: 从主闪存存储器启动:主闪存存储器被映射到启动空间(0x0000 0000),但仍然能够在它

21、原有的地址(0x0800 0000)访问它,即闪存存储器的内容可以在两个地址区域访问, 0x00000000或0x0800 0000。 从系统存储器启动:系统存储器被映射到启动空间(0x0000 0000),但仍然能够在它原有的地址(互联型产品原有地址为0x1FFF B000,其它产品原有地址为0x1FFF F000)访问它。 从内置SRAM启动:只能在0x2000 0000开始的地址区访问SRAM。注意:当从内置SRAM启动,在应用程序的初始化代码中,必须使用NVIC的异常表和偏移寄存器,从新映射向量表之SRAM中。 4.1.3 下载电路如果采用用串口烧录程序,必须先配置BOOT0为1,BO

22、OT1为0,然后按复位键,最后再通过程序下载代码,下载完以后将BOOT0置GND,复位后运行代码。这里采用了jlink(SWD)下载方式,需要接:jlink的第1脚(VDD)、第7脚(TMS/SWDIO对应STM32的PA13)、第9脚(TCK/SWCLK对应STM32的PA14)、第4.6.8.10.12.14.16.18.20中的任意一个脚(地脚)、第15脚(RESET对应STM32的NRST)。SW模式下载电路如图4.3所示。图4.3 SW模式下载电路图4.1.4 飞控姿态模块性能良好的飞控传感器是飞行器稳定飞行重要保证,GY-86模块上集成了陀螺仪、加速度计、磁力计和气压计,很适合飞行

23、器上使用。GY-86模块与飞行控制系统连接电路图如图4.4所示。图4.4 GY-86模块连接电路图4.1.5 无刷电机连接电路无刷电机依靠PWM波来驱动,PWM波通过电子调速器输送到无刷电机,电子调速器有3个接口,VCC,GND和Mx。在电路板上需要给出连接口。如图4.5所示。图4.5 无刷电机接口电路图4.1.6 串口接口电路如图4.6所示,将单片机上的串口一一引出,主要作用是连接无线数传模块,用于收发上位机命令。其余串口接口可用来外扩模块,如超声波模块和GPS。图4.6 串口接口电路图4.2特殊器件的介绍4.2.1 无线数传模块CC1101无线数传模块,体积小巧,尺寸仅为1.45*2.8C

24、M,操作简单,工作频段为433MHZ,穿透能力强,可直接和51、AVR、STM8、STM32、MSP430、PIC等单片机的串口相连接。实物图如图4.7所示。 图4.7 无线数传模块图CC1101无线数传模块和STM32单片机串口连接后,串口就可以实现远距离无线收发数据,这样的好处就是减少了调试难度,因为如果不使用无线数传模块的话,就只有另购NRF24L01通信模块,这会增添代码量,加大调试难度。4.2.2 飞控姿态模块选择GY-86模块的原因是其集成度很高,实物图如图4.8所示。图4.8 GY-86模块实物图模块上的MPU6050是InvenSense公司推出的全球首款整合性6轴运动处理组件

25、,相较于多组件方案,免除了组合陀螺仪与加速器时之轴间差的问题,减少了安装空间。MPU6050内部整合了3轴陀螺仪和3轴加速度传感器,并且含有一个第二IIC接口,可用于连接外部传感器,并利用数字运动处理器(DMP: Digital Motion Processor)硬件加速引擎,通过主IIC接口,向应用端输出完整的9轴融合演算数据。有了DMP,我们可以使用InvenSense公司提供的运动处理资料库,实现姿态解算,降低了运动处理运算对操作系统的负荷,同时大大降低了开发难度。MPU6050芯片实物图如图4.9所示。 图4.9 MPU6050芯片实物图MPU6050的特点包括: 以数字形式输出6轴或

26、9轴(需外接磁传感器)的旋转矩阵、四元数(quaternion)、欧拉角格式(Euler Angle forma)的融合演算数据(需DMP支持)。 具有131 LSBs/sec敏感度与全格感测范围为250、500、1000 与2000/sec的3轴角速度感测器(陀螺仪)。 集成可程序控制,范围为2g、4g、8g 和16g 的3轴加速度传感器。 移除加速器与陀螺仪轴间敏感度,降低设定给予的影响与感测器的飘移。 自带数字运动处理(DMP: Digital Motion Processing)引擎可减少MCU复杂的融合演算数据、感测器同步化、姿势感应等的负荷。 内建运作时间偏差与磁力感测器校正演算技

27、术,免除了客户须另外进行校正的需求。 自带一个数字温度传感器。 带数字输入同步引脚(Sync pin)支持视频电子影相稳定技术与GPS。 可程序控制的中断(interrupt),支持姿势识别、摇摄、画面放大缩小、滚动、快速下降中断、high-G中断、零动作感应、触击感应、摇动感应功能。 VDD供电电压为2.5V5%、3.0V5%、3.3V5%;VLOGIC可低至1.8V5%。 陀螺仪工作电流:5mA,陀螺仪待机电流:5uA;加速器工作电流:500uA,加速器省电模式电流:40uA10Hz。 自带1024字节FIFO,有助于降低系统功耗。 高达400Khz的IIC通信接口。 超小封装尺寸:4x4

28、x0.9mm(QFN)。MPU6050芯片工作电路图如图4.10所示。图4.10 MPU6050芯片工作电路图MPU6050主要用于采集飞行器飞行时X,Y,Z三个轴上的加速度和偏转角速度。具体的讲,陀螺仪的测量物理量是偏转、倾斜时的转动角速度和坐标轴上的线加速度。MPU6050内部通过MEMS工艺做出了一个参考坐标系,当芯片随着飞行器动作时,芯片的坐标相对参考坐标发生旋转时,芯片会读出这个差异。经过芯片内部处理后,会输出一个绕坐标轴旋转的角速度。MPU6050芯片坐标轴分布如图4.11所示。图4.11 MPU6050芯片坐标轴分布图关于加速度的测量其实是当物体在加速过程中作用在物体上的力,这里

29、需要注意的是在地球上任何物体都会受到地球给的重力,芯片也不例外,所以X,Y,Z坐标轴上测得的加速度包含了重力在三个坐标轴上的重力加速度分量。5软件设计 5.1软件设计原理及设计所用工具上位机采用Lab windows制作。Lab windows是美国国家仪器公司推出的交互式C语言开发平台。可编写检测系统、数据采集系统等应用软件。用于数据采集分析和显示。软件界面如图5.1所示。图5.1 Lab Windows界面图STM32F407芯片使用C语言软件开发系统KEIL开发。KEIL提供了包括C编译器和功能强大的仿真调试等在内的完整开发方案。操作界面如图5.2所示。图5.2 KEIL操作界面图5.2主要软件设计流程框图及说明5.2.1串口中断流程图无线数传模块连接在串口上,当串口有中断发生时,说明接收到上位机命令,需要处理串口数据。串口中断流程图如图5.3所示。 进入串口中断接收中断数据处理数据串口标志位置1结束图5.3 串口中断流程图5.2.2外部中断流程图GY-86飞控姿态模块的数据就绪中断连接在单片机外部中断的管脚上,当STM32F407接收到外部中断时,说明一组飞行器姿态数据已经就绪,需要进行姿态解算。外部中断流程图如图5.4所示。进入外部中断读取模块数据姿态解算DMP标志位置1

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2