基于STM32的四旋翼飞行控制系统毕业设计_第1页
基于STM32的四旋翼飞行控制系统毕业设计_第2页
基于STM32的四旋翼飞行控制系统毕业设计_第3页
基于STM32的四旋翼飞行控制系统毕业设计_第4页
基于STM32的四旋翼飞行控制系统毕业设计_第5页
已阅读5页,还剩52页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1 前言 1.1 背景与意义 1.2 国内外研究现状 1.3 论文主要工作 2 总体方案设计 2.1 方案比较 2.2 方案论证与选择 3 飞行器原理与结构 3.1 飞行器原理 3.2 飞行器结构 4 单元模块设计 4.1 各单元模块功能介绍及电路设计4.1.1 电源 4.1.2 STM32F407最小系统...6下载电路 飞控姿态模块 无刷电机连接电路 串口接口电路 4.2特殊器件的介绍 4.2.1 无线数传模块 4.2.2 飞控姿态模块 5 软件设计 5.1 软件设计原理及设计所用工具 5.2主要软件设计流程框图及说明5.2.1 串口中断流程图 5.2 .

2、2外部中断流程图 5.2.3 主程序流程图 6 系统调试 6.1 通信系统 6.2 姿态传感器调试 6.2.1 传感器数据分析与处理6.2.2 姿态解算 6.2.3 数据中断 6.3 PID 调试6.3.1 PID姿态控制 6.3.2 飞控系统 PID 调试7 系统功能、指标参数 7.1 系统能实现的功能 .1.2. .3. .3.3. .5. .5. .6. .8. .8. .8.9. .1.1. 1.1. 1.2. 1.2. .1.2. 1.2. 1.3. 1.6. .1.6 .1.7 1.7. 1.8. .1.8. . .2.1. .2.1 .2.3. .2.8. .3.0

3、.3.0. .3.3 .3.6. .3.6.精选.......7.2 系统指标参数 8结论 8.1 回顾 8.2 展望 9 总结与体会 10 谢辞 11 参考文献 附录: 1. 硬件电路图 2. PCB 图3. 部分程序 4. 外文翻译 1刖言1.1背景与意义近年来得益于现代控制理论与电子控制技术的发展, 四轴飞行器得到了广泛的关注, 在民用与工业领域,具有广泛的应用前景。甚至无人机在战争中得到广泛的应用。当下 无人机发展火热,其中以四旋翼飞行器的发展最为突出。四旋翼飞行器其具有以下特点:(1) 体积小巧,可以

4、工作在恶劣的,危害人类健康和生命的环境中,最大限度地减少 人员伤亡,飞行器可以全天工作无需休息,工作效率高。(2) 支持配备高端电子产品,多种外设相连接,如照相机、机械臂等,可以实现一些 娱乐功能。例如在高空电力线巡检中,无人机能在工作人员的操控下进行工作,可以代替人工 对巡检对象实施接近检测,减少工人的劳动强度。也可以携带传感仪器、摄像机等,对 巡检对象进行数据收集、分析与存储,这进一步提高巡检的工作效率和巡检精度。在军 事上,在局部小规模对战的时候,一些普通的侦察机,可能受到敌方打击而造成不必要 的机体人员伤亡,无人机则可以很好地起到替代作用。利用四旋翼飞行器作为侦察机, 具有振动小、噪声

5、小、可靠性高、成本低、反侦察能力强、自我销毁等优势。因此无人 机的军事价值不可估量。四旋翼飞行器还有着更为广阔的前景等待着开发。比如可以通 过为飞行器的添加更加智能的算法实现人机互动,让飞行器帮人取物件等。尽管目前四旋翼飞行器已经在许多领域得到运用,但总体而言依旧处于初步发展阶 段。1.2国内外研究现状国际上比较知名的飞行器公司有中国大疆创新和美国的3D Robotics。作为全球无人机领域的领头羊,这两家公司在无人机技术发展速度可以用迅猛来形容。比如大疆公司 最新的精灵4无人机,实物图如图1.1所示。图1.1精灵4实物图精灵4具有以下功能:1. 可感知前方障碍物并自动绕行。2. 通过视觉识别

6、自动跟拍移动物体。3. 点击相机画面,即可向指点方向自主飞行。4. 智能返航,感知障碍物后可自动提升飞行高度。5. 最大飞行时间28分钟,最大可控距离约5公里。6. 最高速度提升至 20m/s (72km/h)。7. 一体化云台设计,提升了飞行和影像的稳定性。8. 利用全新的视觉定位技术,可实现室内外精准定位。又比如:3D Robotics公司最新出品的PIXHAWK飞控,拥有出色飞行稳定性,搭 载双传感器系统和冗余电源输入并且可以扩展两组GPS系统,确保飞行失误降到最低。这两家公司占领了全球大部分无人机市场,并且由于技术的高门槛和垄断,其他无人机 公司已经被远远的甩在了后面。大部分的无人机公

7、司的技术仅仅停留在稳定飞行、简单 航拍和户外GPS定位阶段。1.3论文主要工作无人机作为当今电子产业里一个冉冉升起的新星,具有广阔的市场和发展前景。作 为当代大学生,不仅要顺应时代的潮流,更要有作为时代弄潮儿的信心与勇气。四旋翼 无人机涉及知识面很广泛,其中核心知识与本专业契合度相当高。比如,一颗功能强劲 的微机芯片就可以打造一个功能完备的飞行控制系统。而这恰恰是微机原理和单片机的 运用。主流无人机的控制系统离不开自动控制原理。并且目前无人机在电力行业的应用 力度很大,综上,毕业设计选择了基于 STM32 ARM单片机的四旋翼飞控系统。受限于本人知识水平,本文解决以下问题:第一章节:四旋翼飞行

8、器研究背景与意义,国内外发展现状。第二章节:就四旋翼飞行器方案讨论与选择,选择了基于STM32 ARM单片机的四简单叙述了飞行器飞行原理,以及机械结构。飞行控制系统硬件设计,其中包括单片机最小系统,各类模块接口等。 程序流程图,对程序流程进行简单说明。飞行器控制系统设计,包括传感器数据进行分析和处理,DMP姿态解算PID调试策略。旋翼飞行控制系统。第三章节第四章节第五章节第六章节 方式,配置中断实时更新当前飞行姿态数据。四旋翼飞行器的PID调试过程。第七章节:上位机与飞行器之间的通信系统,2总体方案设计2.1方案比较方案一:基于意大利开源硬件Arduino Nano作为数据处理,姿态结算的飞行

9、控制系 统。其飞行控制系统结构如图2.1所示。方案二:系统结构如图图2.1 Arduino飞控系统结构图采用意法半导体的STM32F407VET6作为飞行器的主控芯片。其飞行控制2.2所示。图2.2基于STM32飞控系统结构图2.2方案论证与选择方案一:Ardui no Na no是基于Atmega328P AVR单片机的开源硬件,具有两个外部 中断口,可以输出六路PWM波,兼备IIC,UART,SPI通信功能,总的来说,其具有丰富 的片上资源和优秀的性能。对它编程使用的是Arduino C,这种C语言类似于标准C,但又 针对Arduino系统做了大量的简化工作,提供了许多函数和库文件,但是通

10、用性不高。Arduino虽然是已开源的飞行控制系统,命令是依靠无线遥控器发出的,这会额外增加 遥控器的费用。另外Arduino通信协议未知,这并不利于增添代码后的调试工作。方案二:意法半导体的STM32F407VET6为CORTEX-M4内核,属于32位ARM微 控制器,常用的编程软件是 KEIL和IAR,编程语言可以是汇编,标准C语言,C+等, 使用灵活方便。友好的编译方式大大提高了代码的通用性和可移植性。STM32F407VET6 具有卓越的性能,并不输于 AVR的Atmega328P。这里采用上位机传输命令给飞行控制 系统,也简化了系统调试方式。基于 STM32F407VET6 单最后考

11、虑到资金、性价比和使用的难易程度选择方案二,片机的飞行控制系统。第54页3飞行器原理与结构3.1飞行器原理四轴飞行器具有两种不同的飞行模式:X型与十字型。X型飞行方式的四旋翼飞行器姿态改变的方向与机身成一个 45度角,十字型飞行方式四旋翼飞行器姿态改变方 向与飞行器机身相同。因为采用 X型飞行方式的飞行器具有更好的控制灵敏度与稳定 性,所以选择了 X型的飞行方式。两种工作模式如图 3.1所示。与十字型(右)飞行方式图四旋翼飞行器的四个螺旋桨都是电机直连的结构,通过改变电机转速获得旋转机身 的力,从而调整自身姿态。在飞行器飞行过程中,螺旋桨会产生两个力,一个是升力, 一个是与螺旋桨转向相反的反扭

12、矩。反扭矩会使飞行器沿着螺旋桨旋转的方向自旋,如 果不抵消反扭矩会让飞行器一直自转,这会影响飞行器的飞行。四旋翼飞行器通过分配 四只螺旋桨的转向来抵消各个螺旋桨产生的反扭矩。以X型飞行方式为例,按顺时针方向为每个电机编号,右上角电机为 1号电机,依次编号1、2、3、4。并将1、2号螺 旋桨所在的轴向方向定义为 X轴方向,即机头。3、4号螺旋桨所在的轴向方向定义为 丫轴方向。为了抵消螺旋桨的反扭矩,1、3号螺旋桨需要顺时针转动,2、4号螺旋桨 需要逆时针转动,即对角线上的螺旋角旋转方向相同,以此抵消相互之间的反扭矩。四 旋翼飞行器的飞行方向与速度都是由飞行器的倾角决定的,并且飞行器倾斜的角度越

13、大,飞行速度也就越快。通过调节各个电机的转速可以达到控制飞行器姿态、速度、甚 至是飞行路径的效果。其中,四旋翼飞行器飞行的姿态主要是高度、俯仰角(P itch)、横滚角(Roll)、偏航角(Yaw),可以继续细分为:上升、下降、前倾、后倾、左倾、 右倾、左旋、右旋。(1)高度:使四个螺旋桨转速相同,当其同时加速时,螺旋桨升力变大,当升力大 于飞行器重力时,飞行器拥有向上运动的加速度,飞行器上升;当四个螺旋桨同时减速 时,螺旋桨产生的升力变小,当升力小于飞行器重力时,飞行器拥有向下运动的加速度, 飞行器下降。Pitch:就是绕着丫轴方向旋转,所进行的控制为1, 2号电机转述同等减小,3, 4号电

14、机转述同等增大,飞行器往前倾;反之,会后倾。(3) Roll :与俯仰控制相似,横滚就是绕着 X轴方向旋转,1,4号电机转述同等减小, 2,3机转述同等增加,产生右倾;反之,会左倾。(4) Yaw:同理可得,就是飞行器绕着 Z轴旋转。当1、3号电机转述同等减小,其 反扭矩和升力减小,并且 2、4号电机转述同等增加,其反扭矩和升力增加,由于反扭 矩出现不平衡,会使飞行器向右转,反之,会使飞行器向左转。3.2飞行器结构采用的机架型号为 F360,轴距360mm。螺旋桨型号是1047型。电机采用的是朗宇 X2212,980KV无刷电机,即每加1V的电压,电机每分钟980转,电机转速大约是10878

15、转分。通常四旋翼飞行器配2200mah的电池。电调为好盈天行者 30A的电子调速器, 整个飞行系统用锂电池供电。电机实物图如图3.2所示,电子调速器实物图如图 3.3所示。图3.2朗宇电机实物图图3.3电子调速器实物图飞行器组装完成后如图3.4所示A心样匚申出一 化fOP r4. rw耳-_-s來-3 -I4卍:宀L /P :. ?hl-N - -图3.4飞行器实物图.,:小工丁 -3r-I- L*4单元模块设计4.1各单元模块功能介绍及电路设计即图2.2。以下就重要的单元模飞行控制系统的硬件结构遵从于方案二的结构框图, 块做介绍。4.1.1电源LM1117为低压差电压调节器。其压差输出为1.

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

17、。在电路设计的输出端需要并联一个至少10uF的钽电容来改善瞬态响应和稳定性。LM1117电气特性如表4.1所示。表4.1电气特性表-LM1117符号参数测试条件最小值典型值最大值单位VREF基准LM1117-ADJ电压IOUT=10mA, VIN-VOUT=2V , TJ=25?C1.2381.2501.262V10mA w IOUT w 800mA,1.2251.2501.270V1.4V w VIN-VOUT w 10VLM1117-1.8IOUT=10mA, VIN=3.8V , TJ=25?C1.7821.8001.818V0w IOUT w 800mA, 3.2V w VIN w 1

18、0V1.7461.8001.854VLM1117-2.5输IOUT=10mA, VIN=4.5V , TJ=25?C2.4752.5002.525V出0w IOUT w 800mA, 3.9V w VIN w 10V2.4502.5002.550VVOUT电LM1117-2.85压IOUT=10mA, VIN=4.85V , TJ=25?32.8202.8502.880V0 w IOUT w 800mA, 4.25V w VIN w 10V2.7902.8502.910V0w IOUT w 500mA, VIN=4.10V2.7902.8502.910VLM1117-3.3IOUT=10mA,

19、 VIN=5V TJ= 25?C0 IOUT 800mA, 4.75V VIN 10V3.2673.2353.3003.3003.3333.365VV?VOUT压差LM1117-3.3IOUT=0mA, 4.75V VIN 15V16mV+5VT K,心 11117IN 2OUT电源模块的原理图如图4.1所示。图里的5V电源来源于电子调速器的BEC降压系统。图4.1电源模块电路图4.1.2 STM32F407 最小系统STM32F407VET6是意法半导体基于 CORTEX-M4内核的芯片,STM32F407拥有的 资源包括:集成 FPU和DSP指令,并具有192KBSRAM、1024KB F

20、LASH、12个16 位定时器、2个32位定时器、2个DMA控制器(共16个通道)、3个SPI、2个全双工 I2S、3 个 IIC、6 个串口、2 个 USB (支持 HOST /SLAVE)、2 个 CAN、3 个 12位 ADC、 2个12位DAC、1个RTC(带日历功能)、1个SDIO 接口、1个FSMC接口、1个10/100M 以太网MAC控制器、1个摄像头接口、1个硬件随机数生成器、以及112个通用IO 口 等。该芯片的配置十分强悍,具有卓越的性能。相对STM32F1来说,许多功能进行了重大改进。STM32最小系统电路图如图4.2所示。:STIONDntvr.Hn r.Kr)rst7

21、r.Fn STIr.Trj.LFD 5T2JTTLFD STS rrrCHD3pf:V5GNDCM Ml J5C2 tn AiJtcll czrv2 匸辽!iR csriljl TO? onCflD衆I4RD+HFFXM hr5严 F麗罔二二弋芒 FWM=_4虾緬: cmE I冬卜.1川FB征 ESnsoE r.Fn 5Tijg r.Fn STfjyI上ij iTpriAjiDHP nTTUiMCURAO-WKLiP I fiART-l_rX Aik-1I、& HS 1:l Pt tlPADTlJhKln-CPA J;SART_RX.ADr2J_r;Z rrfi_RtF_rL6; fTIi_B

22、ror.=ATX:ZriKl 1,TC1PA:.irT;ARTEjT7C ADn 五JKITTMEC: -SFI :_M lW、DTfi_m:J U .Fl OIILUTZcE EATH-|Zj rWllPTZrAJJ;AIlT2ZRX-arG_Tjri-irL0-A D口$_刑訂 匝NELI:电叔打r7rfl_S-Krl7fn_HS_TiCm:S3:_W?r.Ybr l:_IM4J?. l_(Hrrhl hChlALHX蟲TKI 工jm4.14怡 3舸 11_更 lunTC;raJrirfjxAM 叮生/nA已.oin- rrrrrutDt.ADC 12jN i sttm年站FTTTisfX

23、Pr社r_Nja |二儿口0戈_佩-iiH2_Mli-_HH_VEiT jl2S_CKIS.M2SniCi_Dri2r3_mAnrMJ_DlTn? r.ARXOTr3 jaUCBir - - srrs sck-psj ckuartiriiTrsART3-mc _二_ .一二一_一 I, , _一 _一_ _ -= _PA1 U AT41 _ltX DTr_ I T4-_RX i FTl _?.H D *5 C _ J1X7 M_DJ iT7 S A S.TJ!_RXT2 M c s tITC 11iFA rZiT AN I _T7C 常31飞?_応_ FTP T7iK I -_Ty h-JJI

24、LJ_t rCLlL MrOfl-NFlSMCfiinSSSm-l 牙 X K J AjT EL-PT I jPAB-TST)TC- -lb订 4;.TrK;SWOE| 怕门.ITDI.-ISL叩P1K)-C)TGJ5_L;LP:_DI ADC2_rrS ra 1 n JL|-BS_rE LAdtiz n?7 PB哪D币 1 r严HGTTTKVHPLX匚IC*FII SCKrBAJVTRT无丽_?4方和1 _ifT50l253cx1_SDj PH只 ArM_bLJCUU:i_ITCL.FI-HHLH MI-UIU H百工 竺可丈1:工辽也迂丁元DK?问帀厂沽l_寸亦ARTL-TK m FTT?

25、 ISr l_?tuAiTMi.TJLjIjCI V a1|-Wj1 ilSAKTB K3tL AHrLKniiTC An-TnJ-VRTfTSijj:n 知:n n 耳_FTRTTTV 讥;打G 飞 vninrjjr 恤I)卜妒yr肋IVSS iiVH.tTCSTj II Jjul 7? I瓦r5MC_D2C:AML_KX-PD0 1巧*匚_口耳.4汕 亡TTf/FD LJART5_KXSDIC_CVI&-KM 1)1 : -nwr Li.KT7T4iiTz_Lra.mm rSM(M)ELSRT27HTSL F7:Hr WKTSAETZ-IXTnJ rSMC_KVVATT-L;3ART:JR

26、X.TD| f 詁r* TTFThl -fij L)K I XTDOXPlSE5DI0_IM-IX?;fl_D6-C)TG_rS_5CLl2C_5C?DC;L_O 9? 95 L La_tS SU/t-yiDrn 口5_UL Mt_D7jl2L l_?ilJiJrANI IX ra I D-Pi2_SOLl2SrstUUSAHl_IXVTtflB_inJT_D5TJK_l3_HL PHii.vnnvRTTptxFirirjzc _hPBI羽232丁1号世坠氨工冲代宝直R l-TX DO,FKl 3-7;FlrKJrZS2_riL.t AHJ_JXKIH_T 1 rai 4号 FHjn 亦ent

27、匚吃DMSAJEbimudd上c巧人讯 J ) D-XJS.RT1_|-X.H)K rswrD 14a.ABTZ!-R 龙 TDq PMC_D1 i.-3ART3_CKTDl 0 T F R:Mr_A fil IS.KI1 r77:.Tni TSMCAIT-VSARTJRrSlPDt: 一F$疔 mmmfc mm: Fvit ik/pb巧HS LIPPCidDH力 FiPtl5M(32 pLn;VSS n .vrn 4 nh s mu石 vrih 1VTIl Ivrih 1VHATVC-lP IVCAP 2SIM52F407VGT6D胡耳md By EfQ23g 2012/07/07I.O I

28、 H M M5Z户KO rSMCZKOL: TJCSOl-PE TTArFr:.K-FC_AZT.FFZTULC DOlTSMO L9;ntJ| TRACKDI砖讯-虛二口估山元rM-T=TH TrtALCDlfStt(二A?匕 DChl:匚Dt/Pld TRACTDlTSHfTTJCMT DT.-FK, FSMC ru-rr?LQiPlOOFSMC用卜专 FW匚 MTTJFS1C TJl阡J mfr DPFll |FSlC T曲阡 V IT-C n肝It Jvd TSl I.TRiaFSVC ni吓 13NRSTROOTWVSSaSTM32F4(nVGT6用 RT=FRTIC 吆 I鴻卜.I

29、f TEE 円I E$ERVT, It 需 FklF:IJz_.科It I寿UH*21丄一節A 5 1 I图4.2 STM32最小系统电路图STM32上电复位后默认使用内部晶振(精度 8MHz左右),为了让飞行控制板稳定 工作,这里选择了外接8MHz的晶振,在程序里切换为使用外部 8MHz晶振,并通过芯 片自带的锁相环PLL倍频到168MHz。所以需要修改系统时钟配置 System_stm32f4xx.c 文件,把PLL第一级分频系数M修改为8,这样才能让主时钟频率达到168MHz。在STM32F40XX里,可以通过BOOT1:0引脚选择三种不同启动模式。一般我们选 用从主闪存存储器启动。启动

30、模式如表 4.2所示。表4.2启动模式-STM32启动模式选择引脚启动模式说明BOOT1BOOT0X0主闪存存储器主闪存存储器被选为启动区域01系统存储器系统存储器被选为启动区域11内置SRAM内置SRAM被选为启动区域根据选定的启动模式,主闪存存储器、系统存储器或SRAM可以按照以下方式访问:从主闪存存储器启动:主闪存存储器被映射到启动空间(0x0000 0000),但仍然能够在它原有的地址(0x0800 0000)访问它,即闪存存储器的内容可以在两个地址区域访问, 0x00000000 或 0x0800 0000。从系统存储器启动:系统存储器被映射到启动空间(0x0000 0000),但仍

31、然能够在它原有的地址(互联型产品原有地址为0x仆FF B000,其它产品原有地址为0x仆FF F000) 访问它。 从内置SRAM启动:只能在0x2000 0000开始的地址区访问SRAM。注意:当从内置SRAM启动,在应用程序的初始化代码中,必须使用NVIC的异常表和偏移寄存器,从新映射向量表之 SRAM中。4.1.3下载电路如果采用用串口烧录程序,必须先配置BOOT0为1, BOOT1为0,然后按复位键,最后再通过程序下载代码,下载完以后将 BOOT0置GND,复位后运行代码。这里采用 了 jlink( SWD )下载方式,需要接:jlink的第1脚(VDD )、第7脚(TMS/SWDIO

32、 对应 STM32 的 PA13)、第 9 脚(TCK/SWCLK 对应 STM32 的 PA14)、第 6.18.20中的任意一个脚(地脚)、第 15 脚(RESET对应 STM32 的 NRST)。 SW模式下载电路如图4.3所示。GND彳图4.3 SW模式下载电路图4.1.4飞控姿态模块性能良好的飞控传感器是飞行器稳定飞行重要保证, GY-86模块上集成了陀螺仪、 加速度计、磁力计和气压计,很适合飞行器上使用。 GY-86模块与飞行控制系统连接电 路图如图4.4所示。Header TOTOSTT-GXZDRJYTrmoTTTNTtucrfiice CiY

33、SS图4.4 GY-86模块连接电路图4.1.5无刷电机连接电路无刷电机依靠PWM波来驱动,PWM波通过电子调速器输送到无刷电机,电子调速器有3个接口,VCC,GND和Mx。在电路板上需要给出连接口。如图 4.5所示。AGgp侥曲 MIAGNDAUNDrWM M5458014ir _13 14IntcilaccFPWMFWM M4图4.5无刷电机接口电路图4.1.6串口接口电路如图4.6所示,将单片机上的串口一一引出, 收发上位机命令。其余串口接口可用来外扩模块,主要作用是连接无线数传模块,用于 如超声波模块和GPS。GND5DR-RXIUARPTrl(靠13 14rGND-1 f_lO.ea

34、d&r5_ XTTTRX.51亠I1 ART4 RXUSEInterlace Oihers图4.6串口接口电路图4.2特殊器件的介绍4.2.1无线数传模块CC1101无线数传模块,体积小巧,尺寸仅为 1.45*2.8CM, 433MHZ,穿透能力强,可直接和 51、AVR、STM8、STM32、 的串口相连接。实物图如图4.7所示。操作简单,工作频段为MSP430、PIC等单片机图4.7无线数传模块图CC1101无线数传模块和STM32单片机串口连接后,串口就可以实现远距离无线收 发数据,这样的好处就是减少了调试难度,因为如果不使用无线数传模块的话,就只有 另购NRF24L01通信模块,这会增

35、添代码量,加大调试难度。4.2.2飞控姿态模块选择GY-86模块的原因是其集成度很高,实物图如图4.8所示。|Io 二;2 松、宀*“X - g . C严oHH、Of 1r -力応?图4.8 GY-86模块实物图DMP: Digital Motion P rocessor)硬件加9轴融合演算数据。有了 DMP,我们可 实现姿态解算,降低了运动处理运算对MPU6050芯片实物图如图4.9所示。模块上的MPU6050是InvenSense公司推出的全球首款整合性6轴运动处理组件, 相较于多组件方案,免除了组合陀螺仪与加速器时之轴间差的问题,减少了安装空间。 MPU6050内部整合了 3轴陀螺仪和3

36、轴加速度传感器,并且含有一个第二IIC接口,可 用于连接外部传感器,并利用数字运动处理器( 速引擎,通过主IIC接口,向应用端输出完整的 以使用InvenSense公司提供的运动处理资料库, 操作系统的负荷,同时大大降低了开发难度。:: Jst. .,图4.9 MPU6050芯片实物图MPU6050的特点包括: 以数字形式输出6轴或9轴(需外接磁传感器)的旋转矩阵、四元数(quaternion) 欧拉角格式(Euler Angle forma)的融合演算数据(需DMP支持)。 具有131 LSBs/ /sec敏感度与全格感测范围为 250、 500、 1000与 2000 /sec 的3轴角速

37、度感测器(陀螺仪)。 集成可程序控制,范围为 2g、 4g、 8g和 16g的3轴加速度传感器。 移除加速器与陀螺仪轴间敏感度,降低设定给予的影响与感测器的飘移。 自带数字运动处理(DMP: Digital Motion Processing引擎可减少MCU复杂的融合演 算数据、感测器同步化、姿势感应等的负荷。内建运作时间偏差与磁力感测器校正演算技术,免除了客户须另外进行校正的需求。 自带一个数字温度传感器。带数字输入同步引脚(Sync pin)支持视频电子影相稳定技术与GPS。可程序控制的中断(interrupt),支持姿势识别、摇摄、画面放大缩小、滚动、快速下 降中断、high-G中断、零

38、动作感应、触击感应、摇动感应功能。 VDD 供电电压为 2.5V 5%、3.0V 5%、3.3V 5%; VLOGIC 可低至 1.8V 5%。? 陀螺仪工作电流:5mA,陀螺仪待机电流:5uA;加速器工作电流:500uA,加速器 省电模式电流:40uA10Hz。?自带1024字节FIFO,有助于降低系统功耗。? 高达400Khz的IIC通信接口。? 超小圭寸装尺寸:4x4x0.9mm ( QFN)。MPU6050芯片工作电路图如图4.10所示。D+3JVM2 L鉴丄-嗦INI Ml2U2scrSDAINTAUX_CLAUXZDAKESVRESV RESVNCtCLKIN护NClUVLOGIC

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

40、作用在物体上的力,这里需要注意的是在地球上任何物体都会受到地球给的重力,芯片也不例外,所以 X,Y,Z坐标轴上测得 的加速度包含了重力在三个坐标轴上的重力加速度分量。5软件设计5.1软件设计原理及设计所用工具上位机采用Lab windows制作。Lab windows是美国国家仪器公司推出的交互式 C语言开发平台。可编写检测系统、数据采集系统等应用软件。用于数据采集分析和显示。软件界面如图5.1所示。file Edit Yift* uild fiunLibrary Tools 亶InMcwv Options tllpL1 囤rwtTwifiwi nj.阜已3o帖Pi: ” 同 exviEdew

41、ibi. i Gi& In:lvde rilas:丽:m 门 Vi*r Ttn&ifsuii回 ciricdprUp. , i-J 囤 2::时:曰O Sa-jrcp ri 1 石匸Eld narTTiha-nc-f-i白12za: ntT-faz E|吧| JliZ-匚淤5匚士2:lnzi-L.de- T二 1汕归c4ficliriLr4phts(vo id);/h帘/tMiin Rout incHi/nm/mtm MM*” HHMihtiKd 1*(1 (|4 HUiHM 也MMibii M* 制mlwiln (liinL arse. cHr 电f纽口)i1 tin tDlKlt Co.

42、ars:v, 0) = 11 川deeded t p ini- inr irieMerrul cokipi ler: heirrles? cttirv I Etlurn -1; /lb uul judi、4ET (p*neI Handle = LjaLPanel 0. *cx(tlndD(?iin?. uili r, F4lt_)l Mi y酬厲Hitt卅*寓HhH叶峯Mu*郴細?|肿冊=榊K刖榊阳用厲卅/*吋/flKeca leu ate +Iif UutpJl LIrfoha和川*/刖1|41艸#41*41艸申刊吗艸* 神*1屮艸*車列 *期艸* 特(1(屮W Irt 01邙1丄日临 E

43、ppcRlrWftVfifcinns fine :sne I. In(l npnt rol. I nt 冃呵卜, I I H- II K II hLn 13/135Cfll L护 I I粘 |tebis图 5.1 Lab Windows 界面图5.2所示。STM32F407芯片使用C语言软件开发系统KEIL开发。KEIL提供了包括C编译器和功能强大的仿真调试等在内的完整开发方案。操作界面如图f lie Efft 帥fw fraecr F蚀n KAua 陳呻h軻mi kohAinqjpw heivd鼻I二-JSI * I怜h血如童章胆-色吃叭.61瀕兰越 凋I Obidcsnrr- J |豪弓

44、鞘J ?1商朮JL312425朋J7丄a39JU132JJ14J5JGJ7Jd加占:洽 C*lCrlLllvlu4- 1)0)(. r.RO.jrctf; .叮 r 祚冷惜IE Oj_LOCXu)打丄认柑JU汽世 if (tXifrttcLnjiii)runt DCd-t 亠 5-PiD_P17OU I* in_KDL KilE, Oin-PJD_i* HAIHt) U f+tOUJ.附tm?TMrtt:o-Pn)丁rC貼TH OCT 卜F:WAVE,OUI+Pl匸TA兀阳TE, OimFTD丁E;ir.oinrLDtfl3=tliEtrtt:&+PII Pn EiiIE. QCI+Z ID

45、RO(L_EirE. 007-PID 7T RilE. 0UT+Fn_BEZ;C,O(n n Bt a 4t ettl ctPLDi_Pn_lttJE. QU I-f lD_hLL_iiAlL Uin+Plb_?rK#_ElATf .OUl+P:liUT. UU7rLDtaJtiJli 如0b Ja 11-5).ifioiaE 11gtJ, IQL):tug吃T曲Mg 1730.J1G5). ri-itnl-JBLJrOZlbJL jioLo TJQ. 11:5).nI_:-TCTD=jrto3. nl-riDtoS; r,_4fomI =nntfl* nJ- J二not or Qt旳.n2.

46、4=rwtQ2-rir0t q d.昭=4=TiotbbU)I I (.bx (nJ_3 510)1 (sbiJ |i sbr (tQI fiFin) I I:jibj h rtLMTfir*l tllNJ,:叩门;Ti_9L堆址蛇(TlltJ” lOJUiJ ; TIYSetCtJitarsl iTITli lOdiJ; THiiS(TIKi, 1400);1S_1jCiCX-1.上计throctl*-:f00.图5.2 KEIL操作界面图5.2主要软件设计流程框图及说明5.2.1串口中断流程图无线数传模块连接在串口上,当串口有中断发生时,说明接收到上位机命令,需要处理串口数据。串口中断流程

47、图如图5.3所示。图5.3串口中断流程图5.2.2外部中断流程图GY-86飞控姿态模块的数据就绪中断连接在单片机外部中断的管脚上,当 STM32F407接收到外部中断时,说明一组飞行器姿态数据已经就绪,需要进行姿态解 算。外部中断流程图如图5.4所示。图5.4外部中断流程图5.2.3主程序流程图在主程序里,进行一系列初始化后就进入while大循环,在循环里主要做了通信数5.5所示。据处理,这是为了防止飞行器飞行角度过大导致飞行器侧翻问题,其次就是调整PWM波占空比调节无刷电机转速。主程序流程图如图(1)图5.5主程序流程图根据主程序流程图底层驱动主要使用到的部分如下:USART1 :外接扩展的

48、传感器模块。USART2:用于调试程序、发送和接收上位机命令的通信。IIC :用于读取GY-86模块的值,此处使用GPIO模拟IIC。GPIO:用于控制LED,通过不同的闪烁以及亮灭提示飞行器的运行状态。 SYSTICK :滴答定时器,用于系统的精确定时以及延时。TIM定时器的PWM通道:使用TIM3和TIM4的PWM功能输出4路不同占空比的 PWM波给电子调速器从而控制无刷电机的转动。(8)外部中断:利用单片机的外部中断,可以及时的获取当前的飞行姿态。 独立看门狗:溢出时间为2s,防止系统死机停止工作。6系统调试6.1通信系统飞行器不同于一般的控制系统,由于带有四个螺旋桨,并且电机转速很高,

49、近距离 调试意味着伴随着安全隐患。需要构建一个通信系统对飞行器进行远距离调试。用上位机对飞行器实时控制,上位机发送到飞控系统的数据很多,比如想要加减油 门,让飞行器往哪飞,在调试的时候需要随时更改 PID参数,这也是上位机要发送命令。 对于飞行控制系统,也需要发送数据到上位机,比如,当前四个电机的转速,当前飞行 器的姿态,以及正在使用的PID参数。为保证通信的准确性,及时性,对于数据传输编 写一个通信协议很有必要。上位机如图 6.1所示。COM am屋h PffiPITCU沟廉F丄TUH. IftMlWLL. 1腐 Jfe-1m虔Ift度刘】LL角底TTCB.DSjSf.Dpit 由 FITCILP嫌虚EOLL. V速度YUJtrirrn

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论