1、基于单片机的四轴飞行器毕业设计基于单片机的四轴飞行器毕业设计第1章 绪论1.1 论文研究背景及意义图1-1 典型四轴飞行器四轴飞行器是一种具有4个对称旋翼的直升机(如图1-1),具有垂直起降、结构简单、操纵方便及机动灵活等优点,在飞行器上挂载摄像头等模块能够实现许多实用功能。在实际应用方面,以四轴飞行器为代表的小型无人机在执行军事任务时具有很大的优势。它们能够在士兵的操控下进行战场上近距离、小范围、复杂地形环境的敌情侦察,还可以用作通信联系工具或者指示目标机,甚至还能装上弹药直接执行战略攻击任务。在民用与工业领域,四轴飞行器也具有广泛的应用前景。通过携带特定的功能检测模块,四轴飞行器可以感知危
2、险区域的有毒物质浓度或核辐射强度等。微型四轴无人飞行器可以自主完成上述任务,不仅节约成本,而且大大简化了人力劳动,也在人类无法到达的危险、危害环境可以完全代替人类工作。近年来,很多学者和研究机构通过对四轴飞行器进行动力学和运动学分析,建立了系统的数学模型,提出了各种控制算法,并设计了飞行控制系统进行验证;加上传感器技术和控制理论的不断发展,尤其是微电子和微机械技术的逐步成熟,使四轴飞行器的飞行控制成为了一个具有广阔前景的研究课题。1.2 国内外的发展情况早在二战时,载人四轴的原型机已经被设计出来,但因为控制技术还跟不上,飞行器因不稳定而无法投入实际应用。那时欠缺的技术主要是惯性测量和控制器的缺
3、陷,那时候的惯性导航系统一般是十几公斤的大铁疙瘩。为了把这么重的东西放到一个多旋翼飞行器上,飞行器的载荷必须很大,可是人们发现,不管是用油机还是电机做多旋翼飞行器的动力系统,都很难得到足够的载荷。同时,因为固定翼和直升机已经很够实际使用了,所以没有人愿意多花功夫去研究多旋翼飞行器这个棘手的问题。很长一段时间里,只有美国一些研发性的项目做出了多旋翼飞行器的样机。20世纪90年代之后,随着微机电系统(MEMS)研究的成熟,几克重的MEMS惯性导航系统被制作了出来,使得多旋翼飞行器的自动控制器可以制作了。但是MEMS传感器数据噪音很大,不能直接读出来用,于是人们又花了一些年的时间研究MEMS去噪声的
4、各种数学算法。这些算法以及自动控制器本身通常需要速度比较快的单片机来运行,于是人们又等了一些年时间,等速度比较快的单片机诞生。接着人们再花了若干年的时间理解多旋翼飞行器的非线性系统结构,给它建模、设计控制算法、实现控制算法。因此,直到2005年左右,真正稳定的多旋翼无人机自动控制器才被制作出来。之前一直被各种技术瓶颈限制住的多旋翼飞行器系统突然出现在人们视野中,大家惊奇地发现居然有这样一种小巧、稳定、可垂直起降、机械结构简单的飞行器存在。一时间研究者趋之若鹜,纷纷开始多旋翼飞行器的研发和使用。四旋翼飞行器是多旋翼飞行器中最简单最流行的一种。如上所述,最初的一段时间主要是学术研究人员研究四旋翼。
5、四旋翼飞行器最早出现在公众视野可能要追溯到2009年的著名印度电影三傻大闹宝莱坞,到了2010年,法国Parrot公司发布了世界上首款流行的四旋翼飞行器AR.Drone。作为一个高科技玩具,它的性能非常优秀:轻便、灵活、安全、控制简单,还能通过传感器悬停,用WIFI传送相机图像到手机上。AR.Drone的流行让四旋翼飞行器开始广泛进入人类社会。在玩具这个尺寸上,多旋翼飞行器的优势就显示出来了,同尺寸的固定翼基本飞不起来,而同尺寸的直升机因为机械结构复杂,根本没法低成本地制作出稳定的产品。2012年2月,宾夕法尼亚大学的VijayKumar教授在TED上做出了四旋翼飞行器发展历史上里程碑式的演讲
6、。这一场充满数学公式的演讲居然大受欢迎,迄今已经有三百多万次观看,是TED成百上千个演讲中浏览量最高的演讲之一。自此之后,四旋翼飞行器受到的关注度迅速提升,成为了新的商业焦点。在国内,四轴飞行器发展于深圳市大疆创新科技有限公(DJ-Innovations,简称DJI),早年DJI专注在直升机自动控制器上。不过在2010年,AR.Drone的成功也让DJI开始考虑四旋翼飞行器产品。2012年DJI相继推出了风火轮系列四旋翼机架、悟空四旋翼飞控和S800六旋翼飞行器。当时,在AR.Drone的引领下,全球范围内都有一股将四旋翼商业化的热潮,DJI只是众多小四旋翼公司中稍微出众的一个。随着DJI P
7、hantom在2013年1月的推出,四旋翼飞行器市场的形势发生了巨大的变化。“Phantom”在英语里有幻影、精灵的意思,它优雅的白色流线型外形也确实配得上精灵这个称呼。Phantom与AR.Drone一样控制简便,新手学习多半个小时就可以自由飞行。Phantom尺寸比AR.Drone大的多,抗风性更好,还具有内置GPS导航功能,可以在户外很大的范围内飞行。更重要的是,当时利用GoPro运动相机拍摄极限运动已经成为欧美国家的时尚,而Phantom提供了挂载GoPro的连接架,让用GoPro相机的人们有了从天空向下的拍摄视角。特别地,与传统的飞机和直升机航拍不同,多旋翼系统小巧灵活,能让拍摄者自
8、由地控制角度和距离。就像iPhone重新定义了手机一样,我们也可以毫不夸张地说Phantom+GoPro重新定义了航拍,也重新定义了相机。“人类对飞行的梦想是与生俱来的。”你已经看到人们的创意如何在一两年之内被四旋翼点燃起来,更多的飞行器被制造出来,更多的想法也会被创造出来,这样更大的市场也会形成。我相信在未来的十年之内,无人机行业会逐步壮大,我们今天产生的所有想法基本都会实现,更多的想法也会逐步被实现,利用无人机的应用越来越多,无人机将会变成我们生活不可或缺的部分。1.3 本文主要研究内容本设计主要包括遥控器的设计和飞行器的设计,遥控器是飞行器的远程控制单元。在设计过程中,两大部分均采用以A
9、RM Cortex-M3为内核的NXP LPC1549作为中央处理器,飞行器端利用3轴陀螺仪、3轴加速度计融合一体的MPU6050惯性测量单元作为姿态传感器,最终实现悬停、自转、前后左右移动等操作功能。系统采用遥控器无线控制,遥控器端主控芯片采集AD值和按键动作信号,通过NRF24L01无线传输给飞行器,飞行器端的NRF24L01接收到信号之后主控器进行信号收集,飞行器在接收无线信号的同时,还要接收自身姿态传感器MPU6050读出来的值,通过四元数滤波算法,PID控制算法,得到姿态角度值,最终把自身的数据和无线接收到的数据进行统一处理传送给飞行器四个电机的PWM控制I/O口,从而使得飞行器在保
10、持平稳的状态下被遥控器控制,以此来达到遥控的目的。当然,飞行器的状态也可以通过无线发送到遥控器端,遥控器通过显示器可以清晰的观察当前的状况。此次毕业设计作品为小型四轴飞行器,从原理图设计到PCB设计再到焊接调试都是自己独立完成,最终期望达到的目的是实现无线遥控,遥控器显示器实时显示四轴飞行器的状态,并且能实现悬停。第2章 总体方案设计2.1 总体设计原理本次设计硬件部分主要包括遥控器和飞行器两大部分,主控芯片均采用32位基于ARM Cortex-3的NXP LPC1549处理器,遥控器和飞行器之间通信采用2.4G民用无线通信频段的NRF24L01模块,模块与MCU之间通过硬件SPI采用1MHz
11、的速率通信。遥控器外形设计似游戏手柄,直接用PCB电路板打样后作为遥控器外形。遥控器通过采集蘑菇头摇杆电位器ADC电压值以及按键状态发送给飞行器。飞行器外形设计为十字架形状,通过CAD绘制外形导入到Altium Designer软件里Keep-Out Layer层作为飞行器切割外框。飞行器软件设计主要是MCU通过硬件I2C采用400KHz的速率读取MPU6050的数据,并定时利用惯性测量单元(IMU)姿态获取技术,然后通过PID电机自动控制算法,把PID输出量跟无线接收到的数据进行融合,最终通过输出PWM来控制高速空心杯直流有刷电机来实现各种飞行状态。飞行器螺旋桨主要提供三个作用,一是提供升力
12、,保证飞行器能处于飞行状态;另一个是四个螺旋桨分为两两对称布置,单轴对称布置正反螺旋桨叶,互相抵消螺旋桨旋转时产生的力矩;此外,可以通过调整每个螺旋桨转速,达到飞行姿态控制。飞行姿态控制是四轴飞行器设计核心部分之一。2.2 总体设计方案2.2.1 系统硬件电路设计方案本次设计采用NXP LPC1549微控制器作为MCU,并且均采用3.7V充电电池作为电源为系统供电,电池通过CAT2829芯片稳压到3.3V为MCU以及外设供电,飞行器供电比较特殊,其供电分为两个部分:一是3.7V电池直接为电机供电,二是电池稳压到3.3V之后为系统和外设供电。遥控器端的主要硬件部分包括最小系统、无线NRF2L01
13、模块、程序下载、ADC采集、液晶显示器、蜂鸣器、LED指示灯以及串口调试,飞行器端硬件主要部分有最小系统、程序下载,无线NRF2L01模块、电机驱动、惯性测量单元MPU6050以及LED驱动电路,其系统总体框图如图2-1所示。图2-1 系统硬件总体框图2.2.2 各部分功能作用1. MCU控制中心MCU是飞行器和遥控器的控制中心,是它们的大脑,主要功能是收集数据和处理数据并且做出指示。本次设计选用的是32位的基于ARM Cortex-M3为内核的NXP LPC154作为中央处理器,设置72M的时钟频率,完全能达到设计的要求。2. 电源模块电源模块起着为系统充能量的作用,任何电子系统没有了电源,
14、系统肯定会瘫痪,所以电源起着至关重要的作用。本次电源设计模块选用CAT6219作为3.7V转3.3V稳压芯片;CAT6219的低压差的优点完全符合设计要求,遥控还使用了ASM1117-2.5作为3.7V转2.5V的稳压芯片;2.5V电压用于给ADC电位器做参考电压使用。3. 通信模块通信模块在整个系统中起着信号交流的作用,遥控器通过MCU读取的按键信息以及油门方向值发送到飞行器端,飞行器端接收到之后做出相应的动作。本次设计采用NRF24L01无线通信模块,选着此模块的原因是因其通信协议简单、传输距离相对较远、价格低廉等优点。4. 惯性测量单元惯性测量单元主要是在飞行器飞行过程中实时检测姿态的传
15、感器,对于飞行器想要平稳飞行来说具有极其重要的作用。本次设计之所以选用MPU6050作为姿态传感器作为惯性测量单元,是因其具有跟MCU之间进行I2C数据传输,传输速率为400KHz,通信协议简单、价格低廉等优点。5. 电机驱动电机驱动部分主要是MCU通过控制PWM然后控制MOS管打开和闭合作为开关从而控制电机的转动。本设计采用SI2302 N沟道型MOS管,其具有低开启电压大电流并且价格便宜等优点,电路设计也很简单。6. LED状态指示在硬件电路设计中,LED首先必须要有电源指示灯,判断系统是否上电;其次需要有信号指示灯,指示遥控器和飞行器是否通信;最后就是状态显示LED灯显示飞行器状态等等。
16、2.2.3 系统软件设计方案本次设计软件部分包括遥控器程序设计和飞行器程序设计。遥控器程序设计主要包括有无线NRF24L01发送、ADC电压采集之后的处理、显示器驱动显示、读取按键状态以及LED灯指示等,涉及软件包括SPI通信协议、ADC模数转换、I/O口驱动等。飞行器程序设计部分主要包含无线NRF24L01接收、读取MPU6050的数据并通过四元数滤波计算(IMU)以及PID自动控制、电机PWM产生以及控制、LED状态灯等,飞行器软件涉及SPI通信协议驱动、I2C通信协议驱动等。第3章 系统硬件电路设计3.1 Altium Designer Summer 09简介Altium Designe
17、r是目前国内最流行的通用EDA软件,Altium Designer Summer 09是Altium公司在2009年发布的版本,它将电路原理图设计、PCB版图设计、电路仿真、PLD设计以及FPGA设计等多个实用工具组合起来构成EDA工作平台,是第一个将EDA软件设计成基于Windows的普及型产品。与早期Protel 99SE以及Protel DXP2004软件相比,Altium Designer Summer 09功能更加完备、风格更加成熟,并且界面更加灵活操作也简单,尤其是在仿真和PFGA电路设计方面有了重大的改进,摆脱了Protel前期版本基于PCB设计的产品定位,显露出一个普及型全线E
18、DA产品崭新的面貌。本次毕业设计所有硬件设计部分包括原理图和PCB部分都是使用Altium Designer Summer 09来完成的。3.2 总体电路设计3.2.1 遥控器总体电路设计在本次硬件电路设计中,原理图采用把每个模块分开来绘制,然后在所需接口上使用连接口连接,这使得整个遥控器电路图能够直观的显示其中包括了哪些模块单元,并且每个模块之间的连接也非常清楚。此时不需要去知道每个模块的内部连接,知道模块有哪些可用的接口就可以。遥控器硬件电路总图如图3-1所示。由图3-1可以清晰看出,遥控器供电有两种供电方式,一种是采用3.7V电池供电,第二种是通过Micro USB电源线供电。在电源模块
19、中,可输入5V直流电源或输入3.7V直流电源。此次设计中考虑到可能出现两种电源同时接上的情况,所以采用电源开关来控制电源输入类型。从该模块还能看出电源输出的有3.3V和2.5V两种电源。遥控器硬件电路除了电源模块电路,还包括最小系统电路模块、串口调试电路模块、ADC电路模块以及按键跟LED灯模块。图3-1 遥控器硬件电路总图3.2.2 飞行器总体电路设计图3-2飞行器硬件电路总图飞行器硬件电路图如图3-2所示,由图可知,飞行器硬件电路主要包括电源电路、MCU最小系统电路、电机驱动电路、MPU6050外设电路以及LED指示灯电路。3.3 各部分电路设计在硬件电路设计中,对以下几个主要的模块如电源
20、电路、MCU最小系统电路、无线通信电路、MPU6050电路、串口调试电路、电机驱动电路等进行更加详细的介绍。3.3.1 电源电路设计电源是任何电子系统设计的核心,并且需要的是稳定的电源,电源的是否稳定影响着系统的稳定,因此,电源部分也是重点设计的部分。在本次设计中,由于包括遥控器和飞行器两大部分并且都需要单独供电,都有电源部分电路,在这里重点介绍飞行器的电源电路设计。飞行器电源设计使用3.7V充电锂电池作为电源,给系统供电,但是系统需要两种电源,一是MCU和外设需要稳定的3.3V电源,再者就是飞行器电机的3.7V供电。本次设计所选用的空心杯直流有刷电机在工作的时候,对电压的影响非常大,所以要在
21、保证能给电机供电的情况下还能有3.3V的稳定电压,因此本次设计采用CAT6219作为3.3V稳压芯片,采用CAT6219稳压芯片是因为它具有以下几个优点:很低的电压差,能确保3.7V电压能稳定到3.3V;低噪声低功耗设计;电路极为简单;精度高纹波小;低成本低噪声。电源电路设计如图3-3所示,其中330mH电感L1在回路电路中起着消除系统运行产生的磁通量,保证电源的稳定;C6和C9两个100uF的大电容分别放在稳压芯片的输入和输出两端起着滤波的作用,能更加的稳定电源。在本设计过程中,还把电源分为模拟和数字两部分,分别通过磁珠来进行隔离,周围的小电容同时也起着滤波的作用。图3-3 电源电路原理图在
22、遥控器电源设计中,输入电压可以是3.7V或者5V电电源,用到了两个稳压芯片,一个是3.3V稳压芯片CAT6219,3.3V电源给MCU和外设供电;另外用到2.5V稳压片ASM1117,2.5V电源作用是给ADC摇杆电位器提供电源,作为参考电压,采用超低电压的原因是保证采集到的ADC电压值不受电池电量的影响而使得数据不准确。3.3.2 主控单元电路设计MCU是系统的核心,从成本和性能以及掌握32位ARM芯片的熟练情况等各方面综合考虑,本设计遥控器和飞行器均采用NXP LPC1549作为主控芯片,NXP LPC1549是恩智浦公司推出的低功耗、高集成、高性价比的MCU芯片。NXP LPC1549基
23、于32位ARM Cortex-M3内核,主频高达72MHz;具有独立的指令总线和数据总线的哈佛架构,并拥有供外设使用的第三独立总线;内置嵌套向量中断控制器(NVIC)和存储器保护单元(MPU);配备256kB flash、32kB ROM、4kB EEPROM和36kB SRAM;支持FS USB、CAN、RTC、SPI、USART、I2C等外设。程序调试跟下载通过JLINK仿真器SWD模式来进行。NXP LPC1549具有4路定时器PWM,刚好驱动飞行器的四个电机。因此,NXP LPC1549是本系统设计的理想选择。MCU最小系统电路原理图如图3-4 所示。NXP LPC1549处理器一共有
24、48个引脚,包括电源引脚有12个,外部晶振引脚2个,外部RTC时钟引脚2个,USB引脚2个,30个I/O口引脚。 其中30个I/O口引脚中,PIO0_21复用外接复位芯片引脚;PIO0_19、PIO0_20两个引脚复用JLINK仿真调试SWD模式下载的SWCLK和SWDIO引脚;PIO0_0 PIO0_3为SCT定时器产生PWM引脚,同时也复用ADC0通道引脚。PIO0_22、PIO0_23两个引脚分别的硬件I2C的时钟SCL引脚和数据线SDA引脚。 NXP LPC1549引脚还有一种开关矩阵功能,为了使硬件电路设计方便,特有的功能。比如串口的RXD和TXD引脚可以通过软件寄存器配置随意更换引
25、脚而不是固定不变的;硬件SPI引脚也可以通过开关矩阵来配置,这大大减轻了硬件电路设计的难度和开发时间。图3-4 MCU最小系统电路原理图3.3.3 无线通信模块电路设计本次设计无线通信模块采用的是NRF24L01模块。NRF24L01具有以下特性:真正的GFSK单收发芯片内置链路层增强型ShockBurstTM自动应答及自动重发功能地址及CRC检验功能数据传输率1或2MbpsSPI接口数据速率08Mbps125个可选工作频道很短的频道切换时间可用于跳频与nRF24XX系列完全兼容可接受5V电平的输入20脚QFN44mm封装极低的晶振要求60ppm低成本电感和双面PCB板工作电压1.93.6VN
26、RF24L01无线通信模块的通信距离在不接天线时能达到30M左右,跟MCU之间采用1MHz的SPI通信协议进行传输,模块与模块之间采用2.4G无线网络频段通信,其电路原理图如图3-5所示。无线NRF24L01模块与MCU之间连接口如表3-1所示。图3-5 NRF24L01 无线通信模块电路图2.4G 无线网络频段属于 ISM 频段,它是全球范围内被广泛使用的超低辐射绿色环保频段;具有 125 个通讯信道,因为 2.4G 无线网络通讯更通畅,多个通讯指令间不会相互干扰;2.4G 无线网格带宽传速率最高可以达到 108Mbps,因此它的传输速度很快;它的传输距离相对较远(空旷地带:200m 有效传
27、输距离),且不受传输方的影响,支持双向通讯。表3-1 NRF24L01引脚与MCU引脚连接对照MCU引脚NRF24L01引脚功能PIO0_12CE使能发送或接收PIO0_13CSNSPI片选信号PIO0_14SCKSPI时钟信号PIO0_15MOSISPI数据输入脚PIO0_16MISOSPI数据输出脚SPI(SerialPeripheralInterface)是一种串行同步通讯协议,由一个主设备和一个或多个从设备组成,主设备启动一个与从设备的同步通讯,从而完成数据的交换。SPI接口由MOSI(串行数据输入),MISO(串行数据输出),SCK(串行移位时钟),CS(从使能信号)四种信号构成,C
28、S决定了唯一的与主设备通信的从设备,如没有CS信号,则只能存在一个从设备,主设备通过产生移位时钟来发起通讯。通讯时,数据由MISO输出,MOSI输入,数据在时钟的上升或下降沿由MISO输出,在紧接着的下降或上升沿由MOSI读入,这样经过8/16次时钟的改变,完成8/16位数据的传输。SPI模块为了和外设进行数据交换,根据外设工作要求,其输出串行同步时钟极性和相位可以进行配置,时钟极性(CPOL)对传输协议没有重大的影响。如果CPOL=0,串行同步时钟的空闲状态为低电平;如果CPOL=1,串行同步时钟的空闲状态为高电平。时钟相位(CPHA)能够配置用于选择两种不同的传输协议之一进行数据传输。如果
29、CPHA=0,在串行同步时钟的第一个跳变沿(上升或下降)数据被采样;如果CPHA=1,在串行同步时钟的第二个跳变沿(上升或下降)数据被采样。SPI主模块和与之通信的外设音时钟相位和极性应该一致。SPI通信协议时序图如图3-6所示。图3-6 SPI通信协议时序图3.3.4 惯性测量单元电路设计飞行器硬件电路设计中,最重要的地方就要属于惯性测量单元MPU6050的硬件电路设计。因其封装尺寸太小,并且是QFN的封装方式,焊接难度非常之大。MPU6050是集三轴加速度计和三轴陀螺仪与一起的姿态传感器,MPU6050跟MCU直接采用400Hz的I2C协议传输数据。MPU6050与MCU之间连接只需两根线
30、,一跟是I2C时钟线SCL与MCU的PIO0_22引脚连接,另一根I2C数据线SDA与MCU的 PIO0_23引脚连接。惯性测量单元的电路如图3-7所示。图3-7惯性测量单元电路图在图3-7中,3个10K上拉电阻R20、R21、R22是为了增强驱动能力,MPU6050的七位设备地址是b110100x,最后一位是通过AD0管脚的电平来确定,本设计接的是地,所以设备地址是b1101000。MPU6050主要接口是两个引脚,一个是I2C数据线SDA引脚,一个是I2C时钟线SCL引脚。MPU-6050的角速度全格感测范围为250、500、1000与2000/sec (dps),可准确追踪快速与慢速动作
31、,并且,用户可程式控制的加速器全格感测范围为2g、4g8g与16g。产品传输可透过最高至400kHz的IC。MPU-6000可在不同电压下工作,VDD供电电压介为2.5V5%、3.0V5%或3.3V5%,逻辑接口VVDIO供电为1.8V 5%。MPU-6000的包装尺寸4x4x0.9mm(QFN),在业界是革命性的尺寸。其他的特征包含内建的温度感测器、包含在运作环境中仅有1%变动的振荡器。I2C总线支持任何IC 生产过程(NMOS和CMOS 双极性),两条线串行数据(SDA )和串行时钟(SCL)线在连接到总线的器件间传递信息。每个器件都有一个唯一的地址识别(无论是微控制器LCD驱动器存储器或
32、键盘接口)而且都可以作为一个发送器或接收器(由器件的功能决定),很明显,LCD驱动器只是一个接收器,而存储器则既可以接收又可以发送数据。除了发送器和接收器外,器件在执行数据传输时也可以被看作是主机或从机(见表3-2),主机是初始化总线的数据传输并产生允许传输的时钟信号的器件。此时 任何被寻址的器件都被认为是从机。表3-2 I2C总线术语定义术语描述发送器发送数据到总线的器件接收器从总线接收数据的器件主机初始化发送,产生时钟信号和终止发送的器件从机被主机寻址的器件多主机同时有多于一个主机尝试控制总线,但不被破坏报文仲裁是一个在有多个主机同时尝试控制总线但只允许其中一个控制总线并使报文不被破坏的过程
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1