基于单片机的无人机系统_第1页
基于单片机的无人机系统_第2页
基于单片机的无人机系统_第3页
基于单片机的无人机系统_第4页
基于单片机的无人机系统_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

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

文档简介

基于单片机的无人机系统摘要伴随着信息时代的发展,无人机不仅仅适用于军事方面,基本民众对于无人机的了解更为直接,无人机在人们的日常生活有了更为重要的地位。本文主要对于工作在10到40米低空的航拍无人机的基本工作原理和无人机的组装,其中主要涉及到MU6050陀螺仪的使用,对于STM32主控芯片对于无人机四个无刷电机的控制和采集电机转速的设计,中间包含有主控芯片对于无刷电机的输出PWM波的控制算法设计和,在取到MU6050陀螺仪的数据后进行无刷电机的转动速度的控制算法设计,拍摄摄像头的设计主要使用鹰眼OV7725摄像头进行空中图像采集。关键词:无人机航拍算法STM32AbstractWiththedevelopmentoftheinformationage,UAVisnotonlysuitableforthemilitary,butalsoforthebasicpublictohaveamoredirectunderstandingofUAV,whichplaysamoreimportantroleinpeople'sdailylife.ThispapermainlyfocusesonthebasicworkingprincipleandUAVassemblyofaerialphotographingUAVworkingat10-40mlowaltitude,whichmainlyinvolvestheuseofmu6050gyroscope,thedesignofSTM32maincontrolchipforthecontrolofUAV'sfourbrushlessmotorsandthedesignofacquisitionmotorspeed,includingthecontrolalgorithmdesignofthemaincontrolchipfortheoutputPWMwaveoftheUAV'smotorandthedesignofAfterthedataofu6050gyroscope,thecontrolalgorithmoftherotationspeedoftheBLDCMisdesigned,andtheeagleeyeov7725cameraismainlyusedforaerialimageacquisition.Keywords:UAVaerialphotographyalgorithmstm32绪论1.1研究背景和研究目的四旋翼无人机在近几年中发展迅速,但是无人机的原型确是在上世纪六十年代中后期才刚刚进入国内的民用领域,在航拍和一些地质勘测中有大量的使用过程,但是其大多数多运用于军用领域,在民用方向上的使用和普及还是有着一大段不一样的方式和方法,在1958年6月29日,北航开启科研攻关,将有人挤改成无人机的“北京五号”,十月一日国庆当天,无线电引导着陆试飞基本成功,标志着国内的无人机的研究正式吹响号角,但是;俩年后,在航空科普方面,1960年,是我国航空模型运动水平空前提高的丰收之年,一共有14人,总共打破12此世界纪录。再后来,我国航模健儿多次刷新各项世界纪录,同年在国外因美国U-2高空侦擦机在前苏联领空呗防空导弹击落,美国人很快启动了中情局的D-21“标签”超音速无人机计划。从此可以看出大多数的无人机在军用方面中的运用远超民用级别。我国于1982年,4架无人机样机和俩套地面控制设备研发并制作完成,并于几个月后完成了第一次无人成功试飞。第二年12月,D-4型号无人机通过了技术评定,被当时期认为是一项科学综合水平较高的综合性科学技术成果,并于1995年批量生产。这样的这一款军用无人机成功的开创了国内军用无人机转换为民用的先行者,是一款真正意义上的中国民用无人机的生产批号和使用型号。自此开始国内的无人机发展迅速关于无人机的相关科学知识发展强劲,不论在植保市场上面还是气象观测上面都有着一定的基础。从上述背景中我们基本可以看出在民用航空邻域无人机属于仅仅只是消费级和专业航拍级的无人机在近现代几年中的发展较为迅速,但是对于信息爆炸的当下这个时代,无人机还是不够大众化和操作的简便化,对于无人机的工作原理的不清晰。本设计将会着手与无人机的便携性和无人机控制算法的普遍性进行研究和设计,在硬件上使用AD制作原理图与PCB设计图使用PCB设计图当作无人机的机架以使其成本的最廉价和资源的充分利用。1.2国内外的发展现状四旋翼无人机进入中国民用市场很多年,从09年零度智控科技公司的成立,到12年极飞科技成立,再到14年亿航成立,其消费级的无人机企业如春天的新芽一般纷纷涌现于市场之中。由于在15年4月8日大疆科技集团推出了一个改变时代的产品,小型航拍多旋翼无人机——精灵3。该产品的生产和销售宣告着消费级无人机的元年的正式开启。精灵3在原有精灵2的基础上,大幅度的提升了无人机的飞行和续航能力,并且采用独立遥控和手机APP的远程显示方式进行人机交互,通过反馈得知大众体验良好,其操作简单,入门门坎低等特点;四旋翼无人机配备有中远距离图像传输,但是图像的传输能力是一个很大的问题图像是否能实时的传输回用户手中是非常重要的,但是精灵3解决了这一技术难题,使大部分的消费者都能够得到良好的航拍体验;与此同时。可以说,精灵3这一款无人机的诞生大大降低了航拍行业的入门门槛,也一样拉开了智能化无人机器人的设计理念。自此之后,几大厂商均以大疆的精灵3作为行业标杆,纷纷校仿出多款同类型产品和同理念,同方向上面的产品,如零度科技推出的探索者系类多旋翼航拍飞行器等。此后,由于无人机资本市场的爆发,本金的不断输入,一样又出现了许多初创型小型无人机企业,零零无限科技有限公司就是其中的冰山一角。此公司推出了小巧玲珑的自拍无人机——hovercamera。该产品把原来混乱不堪的无人机航拍领域有进行了一次小的划分方式,但是比起消费级的无人机,这一款仅仅只是为了自拍而产生的无人机让广大消费者的眼前一亮,其采用了全碳纤维防护罩设计,不仅解决了无人机的安全性问题;与此同时,这一款无人机的体积更小,机身更便于组装和携带这一款无人机在其特殊的标准下俘获了一批消费者的芳心,这样之后再16年5月零度公司又推出了DOBBY这一款自拍式的无人机使得在这一个自拍邻域的无人机有了自己的行业标准建立了自己的技术壁垒。一方面,消费级航拍多旋翼无人机在小型化的道路上越走越远,另一方面,大疆也创新在专业的航拍领域推出了多款中大型航拍无人机,如“悟”系列等,通过这种手段来满足一部分消费者的专业航拍需求。可以说,大疆创新占领了航拍无人机市场超过70%的市场份额。与消费级无人机领域如火如荼的景象相对应,针对于行业机无人机的市场则显得不温不火。极飞科技早期与大疆创新相似,从消费级航拍无人机市场入手,与大疆不同的是,极飞科技更专注于飞控及其配件的研发销售,而并未将精力投入到集成度较高的整机产品研发。另外由于企业融资和一些外界因素等原因,极飞科技退出了消费级航拍无人机的市场,将全部研发资源投入到了农业植保无人机的开发,于此同时,在新疆等地建立了自己的实验项目基地。经过多年的刻苦研发,极飞科技在农业植保无人机领域建立了自己的技术壁垒。总结而言:消费级多旋翼无人机发展迅速,然而,随着需求逐渐趋于饱和,发展放缓,若无法继续挖掘消费者或者对于无人机的新需求,消费级市场将进入停滞期,其产品利润率将会逐年下降。国外的无人机的发展看,无人机的研发受到了多个国家的高度关注,在全世界范围中有着30多个国家与地区开展研究与发展工作其中最具代表性的军用无人机例如美国的大型全球鹰和微星系列的无人机都是在军用中起到不可替代的作用,再说以色列,其无人机设计与制造技术是全球排名较为考前的几个国家之一,其埃尔比特系统公司是其民用无人机的代表公司,公司旗下的赫尔姆斯450无人机在07年5月取得了民用证书。其军用以马拉特子公司的中高空长航时“苍鹭”无人机为代表。日本拥有2346架注册完成的农用无人机,成为世界上农用无人机喷药的第一大国。对比国内外的无人机发展历史可以看出无人机在国内的分化领域尚且不算是特别的清晰和明了未来无人机的全球化进程会加快,主要发展方向会朝着智能化,安全化,超长航时化,功能多样化进行发展。1.3主要设计内容和设计目标本设计主要进行飞控核心板的设计与调试工作,在绪论中了解国内外的无人机发展水平差异,对于无人机的未来发展方向进行一定的预估评价。核心板上主要存在电源电路,主要使用TP7350和TP7333俩个降压传感器使供电12V的锂电池降压到5V和3.3V电压去使用,在测试软件中完成电源电压的转化后使得可以供给NRF2401WiFi的射频模块和蓝牙传输控制模块,对于陀螺仪的调试主要使用其自带的上位机传感器的调试看出陀螺仪在连接芯片时是需要主控面板上有一个定的硬件滤波设计电路,以上多为无人机在搭设时需要提前设计的核心数据链条和硬件电源基础。在软件的设计上,我们首先应打开STM32的4路AD采集口以方便芯片读取无刷电机的转速和方向等数据,在软件上应该首先对于陀螺仪的数据给到一个较高的优先级,在拥有陀螺仪数据的第一时间应该进入算法的运算当中,因为只有在陀螺仪数据确定之后才方便主控芯片判断无人机的无刷电机的转速和转向的控制,在整体完成无人机的连接和组装后我们应第一时间开始调试无人机的PID参数控制。其本设计在最终的目标为无人机可以平稳起飞和降落,在空中的姿态平稳,摄像头图像使用蓝牙或者NRF2401实时传输到遥控器或者手机上面可以实时观测高度角度转速等对应参数的调整,在遥控或者手机上面应使控制灵敏度高和准确判断无人机的飞行是否遵循主控人员的意愿控制无人机进行飞行和转向。系统方案设计本设计采用STM32F4103作为核心CPU,处理器内核为ARMCortex-M4,拥有强大的RAM和多位串口通道,但是功耗小是无人机核心芯片的不二之选。主控板包括传感器MPU6050电路模块、无线蓝牙模块、电机驱动模块,电源控制管理模块等;遥控使用商品遥控及接收机。控制芯片捕获接收机的控制命令信号,传感器与控制芯片之间采用I2C总线连接,CPU和无刷电机之间,CPU通过PWM波的占空比大小控制电机转速,无刷电机通过E6B2-CWZ6C模数转换器反馈给CPU形成闭环控制系统,对于陀螺仪的数据软件上面使用四元数的互补滤波解算姿态,通过解算出的姿态角与预设角度之间存在的偏差error,通过PID微分算法进行控制飞行方式和维持无人机在飞行过程中的稳定。电源E6B2-CWZ6C模数转换器四个无刷电机MU6050陀螺仪BMP280气压传感器遥控器手机蓝牙模块NRF2401WiFi模块主控芯片:STM32f407总体设计框图如图2-1所示电源E6B2-CWZ6C模数转换器四个无刷电机MU6050陀螺仪BMP280气压传感器遥控器手机蓝牙模块NRF2401WiFi模块主控芯片:STM32f407图2-1(总体设计框图)由上方总体框图可以看出对于无人机的设计主要在硬件上主要为调试各类传感器,在软件上面主要进行姿态角的解算和PID的参数调整上面。2.1主控芯片芯片是323位高性能ARMCortex-M4处理器,其内置时钟高达168Mhz,且可以超频支持浮点类的运算与DSP的指令集,一共有144个引脚,中有114个普通IO口,一般情况下大部分IO口可耐受电压为5V,但是模拟通道除外,支持SWD和JTAG俩种下载方式,其储存由1024K的flash和192K的SRAM,在STM32f407芯片中可以使用上电复位和掉电复位还可以使用可编程的电压监控,在时钟方面上,外部可以使用4~26M的外部高速晶振,内部含有16Mhz的高速RC震荡器。在功耗上面芯片可以选择睡眠,停止,待机三种模式,内部一共有3个12为的AD通道,且拥有2个12为的DA通道,且在一般情况下支持定时器,ADC,DAC,SDIO,I2S,SPI,I2C,和串口通道。选择STM32f407芯片作为无人机主控的原因为它的通信接口多达17个,一个SDIO,6个串口,3个I2C接口,三个SPI,CAN2.0HEUSBOTG分别有俩个。2.2MU6050陀螺仪陀螺仪是对于本设计非常重要的一个元器件,它的精密程度直接决定了飞机在飞行途中的姿态问题和其他对于软件算法上面的姿态调整问题,本设计所使用的为一般市面上可以清楚见到的如图2-1所示图2-1(MPU6050陀螺仪外观图)该模块就像一个黑盒函数,对外提供5个引脚分别是:1. MPU6050_VCC_3.3V:供电VCC2. MPU6050_SDA:I2C的SDA,数据线3. MPU6050_SCL:I2C的SCL,时钟线4. MPU6050_INT:中断端口,mpu6050传感器提供几种对应的中断方式(比如摇晃触发产生的中断信号)5. MPU6050_GND:供电GND引脚为常规使用引脚,对应stm32芯片上面对应引脚,MPU-60X0是全球首例9轴运动处理器。这个传感器集成了3轴MEMS陀螺仪,3轴MEMS加速计,以及1个可以扩展的数字运动处理器DMP(DigitalMotionProcessor),可使用I2C接口连接第三方的数字传感器,比如压力计。其端口扩展之后可以通过其I2C或SPI接口输出一个9轴参数信号。MPU-60X0也可通过其I2C接口连接一个或多个非惯性的数字传感器,例如压力传感器。在使用过程中,需要了解对于该模块的最基本的操作,首先对于数据传输我们需要首先开始初始化I2C的端口引脚,使得数据在传输过程中没有任何卡顿,在主函数调用过程中可以随开随用,那么对于mu6050的基本内置寄存器需要有一定的了解,CLKSEL[2:0]用来选择时钟源,通常选择x/y/z轴陀螺作为参考的PLL为时钟源,CLKSEL=001;陀螺配置寄存器:地址:0X1B;该寄存器只关心FA_SEL[1:0]这两个位,用来设置满量程范围:0:±250°/S;1:±500°/S;2:±1000°/S;3:±2000°/S;因为陀螺仪的ADC是16位分辨率,所以最高灵敏度是65536/4000=16.4LSB/(°/S);加速度配置寄存器::地址:0X1C,该寄存器只关心AFS_SEL[1:0]这两位,用来设置满量程范围:0:±2g;1:±4g;2:±4g;3:±8g;通常选择0,即±2g,因为加速度传感器的ADC是16位分辨率,所以灵敏度是65536/4=16384LSB/S;FIFO使能寄存器:地址:0X23,设置对应位为0即可禁止FIFO,设置为1,则可使能加速度传感器的三个轴,全由ACCEL_FIFO_EN控制陀螺仪采样频率分频寄存器:地址:0X19,用来设置mpu6050的陀螺仪采样频率,计算公式为:采样频率=陀螺仪输出频率/(1+SMPLRT_DIV)陀螺仪的输出频率,是1KHZ或8KHZ,与数字低通滤波器(DLPF)的设置有关,当DLPF_CFG=0/7时,频率为8KHZ,其他情况是1KHZ,而且DLPF滤波频率一般为采样率的一般,若采样率为50hz,则SMPLRT_DIV=1000/50-1=19;数据读取:陀螺仪数据输出寄存器,由6个寄存器组成,地址为:0X43~0X48,可以通过读取0X43(高8位)和0X44(低8位)寄存器得到,加速度传感器数据寄存器,也有6个,地址为:0X3B~0X40;可以通过读取0X43B(高8位)和0X3C(低8位)寄存器得到,温度传感器的值可以通过读取MPU60X0中寄存器的0X41(高8位)和0X42(低8位)从而得到所需要的参数,其他方向上的参数以此类推;温度换算公式:Temperature=36.53+regval/340;egval是读取0X41(高8位)和0X42(低8位)的值;对于mu6050对于无人机的飞行是一个非常重要的参数传感器,可以说无人机的飞行基本都是由MU6050所进行控制起飞和降落,使得对于本设计来说MU6050是非常重要的传感器,所以对于无人机MU6050的参数调整,需要知道基本的工作原理,虽然知道常用寄存器但是需要知道如何调用。MPU-60X0是全球首例9轴运动处理器。MPU-60X0这一类的传感器集成了3轴MEMS陀螺仪,3轴MEMS加速计,以及1个可以拓展的数字运动处理器(DigitalMotionProcessor),可以使用I2C接口链接一个三方的数字传感器,例如磁力计。扩展后可以通过其I2C或SPI接口输出一个姿态角参数的信号。MPU-60X0也可以通过其I2C接口连接非惯性的数字传感器,例如压力传感器和气压传感器等等。对应技术手册中对应的管脚外接电路和控制方式,如图2-2所示。图2-2(芯片手册中常规连接方式)MPU-60X0此类的陀螺仪和加速度传感器分别使用了三个16位的ADC采集方式,将其测量的模拟量参数转化为可供芯片识别和输出的数字量。为了精确的跟踪快速与慢速的运动姿态,传感器的测量范围是可以调整的,则一般此类陀螺仪多为可测范围为±250,±500,±1000,±2000°/秒(dps),加速计可测范围为±2,±4,±8,±16g(重力加速度)。2.3BMP280气压传感器BMP280是一种专门为移动端应用设计的气压传感器,该模块的封装极其紧凑,因为其大小和功耗都比较小,这类器件常常使用在移动电话或者手表,或者与其他大型设备相互连接,其传感器采用了成熟的压阻式的压力传感器技术,有着高精度和线性的确认度,但是拥有那么多好处的一个传感器,在价格上面确实非常的亲民。主要有六个引脚主要有:一号引脚为电源引脚(3.3V供电);二号引脚为接地引脚;三号引脚为I2C时钟信号引脚;四号引脚为I2C数据信号引脚;五号引脚为SPI模式下传输引脚;而六号引脚为使能端地址引脚,接低电平引脚地址为0xEC,接高电平引脚为0XEC+1其测试压强范围在0~20000hpa,引脚在芯片的带有标着位的那一端顺时针从一开始到六号端口结束。2.4通信模块通信模块中主要包括NRF2401和蓝牙模块,在整体设计当中,本设计无人机主要使用I2C进行串口通信,所以在挑选通信模块的时候主要选择与I2C相互好匹配的模块,NRF2401主要使用的是STC15L204EA的单片机进行通信控制,通过电路图可以看出在单片机左右俩测分别有五个LED的贴片灯,而我们在测试过程中需要在烧入程序结束后对照无人机和遥控器是否存在LED灯配对完成,所以我们需要在总体程序的最开始加上一段延时程序和初始化程序,一来在初始化后需要等待NRF相互配对完成,二来需要在配对完成之后再进行其余的操作。如图2-3所示程序可以看到在打开一系列的标志位完成后我们有一段的延时初始化,就是重复我上述行为确定NRF2401是否在规定时间内完成连接并且开始传输一定的指令。图2-3(配对程序)对于NRF的工作原理,只有在调试过程中才能深切的理解NRF的工作原理,一个发送通道,六个接收通道,发送端发送的通信地址寄存器中的地址指向的就是接收端哪个接受通信通道收发送端的数据,所以要使的发送端地址寄存器的内置值要与接收端需要接受数据的通道地址内置值是俩俩对应的。对于蓝牙模块,我们使用HC-05型号的蓝牙模块在测试该模块是否好用的时候我们需要使用到TTL转USB的一个转接器,连接方式,芯片上面的RX对应蓝牙上面的TX,其余电源对电源,地线对地线。对于蓝牙的AT指令集我们可以参考《AT指令集》这一本书。当我们一端在无人机上另一端在手机上通过蓝牙调试助手可以相互发送数据即为调试成功。2.5E6B2-CWZ6C模数转换器我们使用E6B2-CWZ6C模数转换器来进行电机的转速反馈给主控芯片,E6B2-CWZ6C模数转换器其工作原理电机每旋转一周产生一段同样占空比的脉冲信号,其工作原理与编码器工作原理一致,所以当主控芯片读取该传感器所传输的信号时,如若出现远远大于预定阈值时,在设计中使芯片输出一种反向的PWM的占空比的输出信号,形成一种闭环控制系统以保证电机在飞行过程中电机不会无限制的加速和减速,让每一次的起落都是一个逐渐增加的过程。硬件电路设计3.1电源电路和芯片的最小系统设计四旋翼飞行器要求整体的设计总质量轻,体积小,因而在电源的选择方面,使用体积小、质量轻、电能容量大的锂电池供电最为合适。系统的核心芯片为STM32F103,常用工作电压为3.3V,同时惯性测量传感器,通信模块NRF2401的常规供电电压也为3.3V,锂电池的电压为12V-15V左右,既然要使系统正常的工作,则至少需要将12V的锂电池电压降压和稳压到3.3V,才能使整个系统正常运行。常用的78系列稳压芯片已适用,但是对于无人机芯片的用电和续航考虑使用tp7350和tp7333俩种稳压芯片进行控制稳压,使得锂电池11.4V的供电可以稳定的使用出5V电压和3.3V电压。电路图如图2-1所示图3-1(电源转换电路)看向上图,可以看到使用TPS7350芯片先将12V锂电池供出的电压稳压至5V,再使用稳压输出的5V电压输入TPS7333芯片使其输出端口输出稳定的3.3V电压以供芯片的正常续航和外置电路工作。使用C15,C16,C17,C18四个带正负方向上的钽电容进行滤波操作。以过滤在稳压过程中产生的噪点和波形抖动。在电源方面上的选择是非常重要的一个好的电源电路可以让无人机的续航提高一到俩个高度和时间的方式,同样在选择好电源配给后,我们主要在硬件上需要调整的还有外围设计电路,在MU6050和气压传感器的方向上与主控STM32F4的信息交互上面的变更,但是对于STM32芯片的使用需要自行设计一个最小系统驱动芯片在最常规的方式下面进行工作,如图3-2所示为芯片的最小系统图,图中我们主要使用PA6,PA7,PB0,PB1,四个IO口作为电机PWM波的输出端口,PB5作为MU6050的参数输入端口,而PB6,PB7,作为气压传感器的数据传输端口进行连接。图3-2(芯片最小电路图)从最小电路图中可以看出芯片复位使用了高电平拉高复位,而并非常规使用的按键复位,这导致在软件的设计中复位程序需要给与端口处一个长时间的高电平延时。3.2通信模块的电路设计到此基本讲述完围绕芯片的一系列电路,但是对于无人机来说,人机交互才是非常重要的一个方面本无人机采用2.4G射频天线与人进行人机交互,在设计初期纠结于为什么使用2.4G射频对于本机进行人机交互的方向上有一定的选择,在最初的时候使用72Mhz的遥控器的时候,由于无线电波的开放性,在72Mhz频段上从72.010Mhz到72.99Mhz之间,每间隔20Khz就分配一个频道,总共50个频道,这样在遥控器与无人机上各有各的一套频率相同的频率发生器(晶振)从而无人机机与遥控器的频率一致的频率发生器从让接收机与遥控器频率相同则可以进行通信交流。伴随着技术的进步2.4GHZ的遥控器就完全不在需要单独配对一套同频率的晶振,只需要遥控器上频率与接收机频率一致则直接进行频率对较即可,使遥控器与接收机直接建立通信连接。家用的遥控玩具,由于要求与价格原因,主要使用40Mhz与27Mhz,相同频率的遥控器可以相互通用操作,这样的问题同样在航模上也会存在一些问题,所以早期使用的72Mhz的遥控器的时候,大家都会先行了解各自使用的频率,避免误通信操作。在现在这个时间上面直接选择相对与会误操作或者串频的选择下主要选择2.4GHZ的遥控器对于本机的人机交互,如图3-3所示为射频电路设计图

图3-3(射频电路)从电路图中可以看出本设计使用的无线发射器20引脚的射频芯片,左端从1号端口到5号端口分别于32单片机上对应数据和模拟信息传输端口连接,而对于射频天线的电源电路的设计使用C22,C23,C24三个无源电容,来对电源和接地线中进行滤波,而右端可以看到该芯片驱动一个高频天线以保证可以达到指定频率的电路需求。3.3H桥电机驱动电路设计无刷电机需要一个驱动电路才能使得无刷电机在有电的情况下不会一上电就胡乱的,没有规则的乱转,所以,基于HIP4082的H桥双MOS电路可以很好的控制无刷电机在只有PWM波到达一定占空比的时候才会使得无刷电机旋转。其电路设计如图3-4所示。图3-4(H桥驱动电路)可以从上面的电路图看出一个4082的芯片可以控制4个N沟道MOS输出俩路可以控制无刷电机的信号端。可以看到在12V接入的地方存在一个肖特基二极管1N5819这个二极管是防止在4082芯片升压达到24V时如果在电机处发生短路可以起到一个保护主控芯片不被超高电压击穿的效果。3.4陀螺仪于气压计外围电路设计本设计使用的MPU6050芯片由于使用的广泛性,在无人机中需要让其数据传输引脚外接引出与主控数据传输统一时钟信号和统一数据流的传输起止位。且如果将模块取到的值直接进入芯片进行计算会造成,参数值的跳动较大,且对于软件滤波算法的压力较大。陀螺仪与气压传感器都是无人机飞行的过程的重要参数所以;俩者的硬件电路设计外围十分相近,其最终设计电路图如图3-5所示。图3-5(气压和陀螺仪外围电路)可以看出俩个模块的供电都是用的3.3V的电压进行对应供电,都在对应的电源端口和接地端口接入一个0.1UF的电容进行滤波操作,并且俩者使用的都为SDA和SCL的端口数据传输。3.5串口引出和最终PCB效果图串口需要引出以方便在程序调试完成后,通过SWD的方式将程序发送给主控芯片,使得芯片内部存有设计初始值和初始程序。端口引出图如图3-6所示。图3-6(串口引出图)从上图可以看出飞控板使用SWD的方式进行人机调试和软件烧入芯片,三号引脚将复位端口引出,在烧入程序的同时因为使用SWD的方式所以主控板不能断电,若断电容易造成芯片烧毁或者烧入不成功。自此硬件电路图所有的原理设计图全部完成,接下来需要制作的便是将上图中所有电路,带有电气连接方式的电路和元器件在 PCB上面使用灵活的部件和走线将之连接起来,最后的效果图如图3-7所示。图3-7(PCB连接完成图)设计为无人机的机架模样方便于无人机的组装和机械结构的更改,在PCB设计中主要使用双面板,其正面使用大面积敷铜代表地线,反之背面一样,但是对于气压和陀螺仪的精密仪器的地线在连接时需要在电源和地线中加入一给0欧电阻过滤杂波。第4章系统的软件实现4.1总体设计在无人机的设计之初我们需要在软件上有一个基本的软件框架,使得我们在软件的设计中少走弯路使得软件的设计更为直观的和方便的加载库文件,其基本框图如图4-1所示为此次软件的基本框图。软件设计上由控制核心STM32F4读取传感器信息,解算姿态角,以姿态角为被控制量融合遥控信息后,输出到四个电机及一个主体舵机以完成四轴飞行控制,本设计利用四元素算法完成姿态角的运算,其核心思维方式为利用加速度传感器测得的重力向量与预估计姿态解算得到的重力向量的误差值来矫正陀螺仪积分误差,然后利用矫正后的陀螺仪积分得到姿态角。图4-1(程序总体设计框图)在陀螺仪与姿态角俩者当中会存在一定的偏差,所以通过偏差PID算法进行控制,在软件的总体设计中这仅仅只是在控制上存在一定的偏差和不一致,通过电机的PID计算可以得出在飞行到什么位置和什么高度的情况下进行一些平衡计算和控制电机转速需要达到什么地步才可以正常起飞和降落的一系列的飞行操作和调整。在完成软件上面的基本控制之后,在外设的主控上我们需要进行一系列的常规配置让无人机可以正常飞行和飞的平衡稳定。在总体设计一章节中我们可以看到我们是通过飞机遥控器进行飞机的总体设计,我们在无人机的软件中需要链接主控芯片使得相对应的指令操作可以传达到无人机的飞控主板上面使得无人机可以在我们的控制下进行飞行和起落。我需要在stm32单片机上面申请使用可以接受2.4Ghz信号的串口进行传输信号和相对应的指令,在软件中需要给与一定的判断条件,在控制串口的总体函数中我们需要在主函数中首先进行申明操作和初始化串口,使得在最后我能在相对最短的时间中完成对应的指令传递给CPU。4.2姿态算法的软件实现姿态角的推导过程,在过程开始我们不妨设不考虑滤波和混乱值的前提下设加速度数据为ax,ay,az,单位m/s^2。则加速度向量为(ax,ay,az)设六轴MU6050数据为:gx,gy,gz,单位:rad/s。则六轴向量为(gx,gy,gz)则可以在载体到导航坐标系中的转换矩阵为:根据余弦矩阵和欧拉角的定义,地理坐标系的重力向量,转到机体坐标系,是中的第三列的三个元素,即。所以加速的向量与估计重力向量叉积:然后利用向量的叉积,可视为误差向量,这个叉积向量仍旧是位于机体坐标系上的,而陀螺积分误差也是在机体坐标系,而且叉积的大小与陀螺积分误差成正比,正好拿来纠正陀螺仪。由于陀螺是对机体直接积分,所以对陀螺仪的纠正量会直接表现在对机体坐标系的矫正过程中。利用上述传导出矫正六轴陀螺仪使得数据得到矫正和分化方式。设其姿态角为θ,则利用上述向量和向量再引入一个常量系数K和t则列出下面的姿态角方程:则利用毕卡二阶算法有:其中为角增量为:最后将四元数转换为欧拉角:Q_ANGLE.Poor=asin(-2*q1*q3+2*q0*q2) Q_ANGLE.Rubilc=atan2(2*q2*q3+2*q0*q1,-2*q1*q1-2*q2*q2+1) Q_ANGLE.Y=atan2(2*q1*q2+2*q0*q3,-2*q2*q2-2*q3*q3+1)可以通过上述算法成功得到了无人机在飞行途中的姿态角参数,但是对于一个新的四轴飞行器来说,一个特殊的机械结构是往往不够的,但是对于无人机的控制来说是一个非常不同的测试结构,对于不同的俯仰角和横滚角其实是差不多的姿态角方式,但是对于无人机的姿态方式,但是对于软件上面的控制方式但是不一样,且俩着的控制方式是截然不同的。四轴飞行器的俯仰,横滚,偏航,升降可以通过四个输入量来控制。通过设定一个期望角度参数值,调整电机转速,使得预估计得到的姿态角参数稳定在期望角之中。控制律的设计主要采用是闭环控制。以姿态角做为被控制量,采用经典的PID控制算法。但是对于软件的PID的控制和调试是相对于不一样的四轴飞行器系统是一个时变且非线性的系统,如若采用传统的PID算法,其中单一的反馈控制使的系统会存在不同程度上的超调和振荡现象,使系统无法得到最理想的控制效果。本文将前馈控制引入到了四轴飞行器系统的控制中,有效地改善了系统的实时性,提高了系统的反应速度;并且根据四旋翼飞行器系统的特点,对传统的数字PID算法进行了改进与优化,在里面引入了微分先行环节,大大改善了系统的动态特性;使得控制器能够更好地适应四轴飞行器系统的实际情况。在姿态角的参数采集的控制中,本设计将控制器提取到的遥控器信号转换为一个参数角度,作为期望角,与运算出来的测量角作差,得到与期望值之间的偏差error。将error乘以一个比例系数kp。在只有Kp的作用下,其整个系统会有静态误差,所以需要利用积分ki控制消除静态误差。但是积分的控制会造成降低系统的动态功能性的性能,甚至造成闭环系统不稳定出现超调,因此要对积分进行限幅,防止积分过大出现超调现象。对于PID的微分,如果采用原来传统的D方法,在人为控制和操纵四轴时会产生输入的设定值变化与跳动频繁且幅度较大,故而造成系统的振荡。对人为控制十分不利,为了解决设定值的频繁变化给系统带来的不良影响,本设计在姿态角控制上引入了微分算法其中的先行PID算法,最大的特点是只对输出量进行微分,即只对陀螺仪取到的参数角速度测量值进行微分,而不对姿态角的预设值进行微分。那么这样,在预设值发生改变时,输出量并不会变化,而被控量的调整变化相对是比较缓和和平稳的,这就特意地避免了预设值在调试过程中的频繁变化给系统造成的振荡,明显地改观了一整个系统的动态性能。在软件的设计上面,PID主要需要配合在姿态角和翻滚角的设计上面原定值与实际值上出现一个或者一系列的误差值,在误差值上做控制的方向。其主要设计流程图如图4-2所示图4-2(PID控制流程图)在软件方向上面,我们主要需要用到四个总体向的中断开关,在软件中需要实际中进行申明,在主程序中进行申明,依次给予标志位和相对于设计对应的中断窗口,我们看向总体的程序框图,我们需要自行设计一个延时函数在主函数中进行调用使用和延时初始化使用,在程序的最开端我们需要在确定所用硬件都可以通电和过电使用的方式下,我们可以在调试和飞行测试前进一步的保护我们的无人机在飞上天的时候是安全的和稳定的。在测试开始前在程序中我们需要在总体的完成前在KIIE的仿真软件中进行仿真和载入实体STM32的实际库函数中是相对于我们的后续设计是只有好处没有坏处的,软件中涉及到一个相对于,在起飞前在所有的设备和电机在起飞前需要全部初始化一次,在对应窗口和对应串口中,需要相对应的延时初始化后,把芯片可运行RAM中的相对杂乱的值取消和重置后才可以进行相对应的姿态验算和四电机控制。4.3控制算法的软件实现由于四旋翼无人机的独特的机械结构,即结构上对应对称,使得四旋翼无人机在俯仰角的控制和横滚角的控制上有近乎相同的控制特性,且两者又相对独立的控制方式。四轴飞行器的俯仰,横滚,偏航,升降可以通过四个输入量来控制。通过提前设定一个期望角度,调整电机控制转速,使得测出的姿态角稳定在期望角的可控范围之中。控制律的设计主要采用是闭环控制。四轴飞行器系统是一个时变且非线性的系统,采用传统PID算法的单一的反馈控制会使系统存在不同程度的超调和振荡现象,无法得到理想的控制效果。本文将前馈控制引入到了四轴飞行器系统的控制中,有效地改善了系统的实时性,提高了系统的反应速度;并且根据四旋翼无人机系统的独特特点,对传统数字PID算法进行了改进,让微分先行进行计算,从而改善了整个系统的动态特性;使得控制器能够更好地适应四轴飞行器系统的实际情况。在姿态角的控制与滤波中,本设计将控制传感器捕获到的一个信号与遥控器信号转换为一个角度,作为预定期望角,与解算出来的实际测量角作差,从而得到偏差error。将error乘以一个比例系数kp。在仅仅只有kp作用下,一整个系统会有静态差值,所以考虑利用积分ki控制消除静态态误差。但是积分控制会大大降低系统整体的动态性能,更有可能造成闭环系统不稳定,所以需要对积分进行限幅,以防止积分过大造成超调。对于微分,如若使用传统的D方法,在人为操纵四旋翼时会输入设定值变化频繁且幅度差值较大,从而造成一整个系统的振荡。对人为控制十分不利,为了解决设定值的频繁变化给系统带来的不良影响,本设计在姿态角的控制上引入了先行微分的PID算法,其最大的特点是只对输出量进行微分,只是对陀螺仪角速度的测量值进行微分计算,而不对姿态角的预设值进行微分计算。这样,就算设定值发生变化,输出量并不会因此有很大的改变,而被控量的变化相对与输入输出值是比较缓和的,这样就很好地避免了预设值的频繁变化而造成系统的整体振荡,可以明显地从参数和飞机飞行的稳定程度改善了系统的动态性能。控制周期定为4ms,姿态控制系统示意图如图4-3所示:图4-3(姿态PID流程示意图)由上述操作我可以得到俯仰,横滚,航向三个控制量,然后将它们分别输入三个独立的如上图所示的PID控制器,我们可以得到三个PID输出:pid_roll,pid_pitch,pid_yaw将这三个输出量做简单的线性运算输出给电机。部分代码如下:#definePIDMIX(X,Y,Z)Motor_Thr+pid_pitch*Y+pid_roll*X+pid_yaw*ZMOTOR1=MOTORLimit(PIDMIX(+1,+1,-1)); //REAR_R后右电机MOTOR2=MOTORLimit(PIDMIX(-1,-1,-1)); //FRONT_R前右电机MOTOR3=MOTORLimit(PIDMIX(-1,+1,+1)); //REAR_L后左电机MOTOR4=MOTORLimit(PIDMIX(+1,-1,+1)); //FRONT_L前左电机4.3.1PID参数调整PID参数的调整和整定是整个PID控制的关键一步,PID在制定预设值是直接影响到控制的效果。故一个PID设计的好不好往往要看其参数能否调节好,本设计的PID参数调节采用凑试法。凑试法是通过实际的闭环系统,通过观察系统的响应曲线,在本设计中通过观察被调量,PID输出,设定值为三条曲线,判断出kp,ki,kd对系统响应的影响大小,通过反复尝试,最终达到一个和预定值相互匹配的满意响应,从而达到确定控制参数kp,ki,kd的目的。在参数调节过程总遵循以下原则: (1)在输出不振荡时,增大比例增益P。(2)在输出不振荡时,减小积分时间常数Ti。(3)在输出不振荡时,增大微分时间常数Td。(4)一般步骤: a.确定比例增益P在确定比例增益P参数时,首先应该去掉PID中的积分项和微分项,一般在调试中使Ti=0、Td=0(具体见PID的参数设定说明),致使一整个PID控制器为纯比例调节。输入设定为系统允许的最大值的60%~70%,由0逐渐加大比例增益P,直至系统出现振荡;以此反推,从此时的比例增益P逐渐减小,直到整个系统的振荡消失,记录此时的比例增益P,则设定PID的比例增益P为当前值的六倍到七倍为最佳比例。比例增益P调试完成。b.确定积分时间常数Ti在比例增益P确定后,预设定一个较大的积分时间常数Ti为初值,然后逐渐减小Ti,直至系统出现振荡之后再次反过来,逐渐加大Ti,直至系统振荡消失。此时的Ti,即为设定PID的积分时间常数Ti为当前值的十五倍到十八倍为最佳参数范围。积分时间常数Ti调试完成。 c.确定积分时间常数Td在调整积分时间常数Td一般不用预设定,为0即可。若要设定,则与确定P和Ti的方法相同,取不振荡时参数的三倍即可。 d.最后让系统空载调整、带载联调再一次调整,再对PID参数进行小幅度的微调调,直至满足控制要求。。(5)在最终调试完成好的标准应是,PID输出曲线在一个阶跃响应来说,响应图像上一大一小两个波行,小波应该是大波的四分之一大小。四轴飞行器的PID整定,我们首先四轴固定在单轴平衡平台上,让飞行器完成单轴平衡,主要观察姿态角的(1)稳定性,能否平衡在期望角度;(2)响应性,当操纵命令改变时,四轴能否即时的响应期望的变化;(3)操纵性,由实际控制四旋翼的使用人员感受四轴的姿态是否混乱或者响应不及时,会不会产生响应过快或者响应过慢等问题。在参数调整时,先调P,将I,D给0,先给一个小值P1,如果飞行器不能稳定在一个角度,则P1给小了,下一次给一个较大值P2,如果飞行器产生震荡则证明P2给大了,那么合适的P在P1-P2之间,反复试验几次可找到P震荡的临界点P0,然后保持P0不变按照调P的方法来调D,D是用来消除误差的,当抖动差不多被消除时,此时有较合适的预初设值P0,D0,在这两个值附近再进行几次或者几组参数上面的调整,观察效果得到最优参数集合。调好P,D后此时四轴的稳定状态与期望状态间也学会有静差,接下来加入I,参数由小到大,当静态误差差不多被消除时,再对P,I,D三组参数在小范围内联调。最后确定恰当的积分限幅值,完成整个PID参数的整定。第5章调试过程5.1硬件调试调试总体为,在总体上设计完AD板之后,生成目录表可否存在未接通或者没有连接上的走线后,发厂打样板PCB,进行自己的焊接和调试,总体硬件调试一般在AD中对应完成,焊接时应注意安全即可,焊接完成板子如下图5-1所示。图5-1(焊接完成图)硬件调试中需要有一个总的硬件器件使用表,总的一个配置清单我们需要用到如表1-1所示的基本器件。类型数量主控板(包含主控芯片及外围电路器件)1无刷电机4MU60501NRF24012其中对于硬件调试难度最大的就是主控板上的主控电路和电机驱动电路,和NRF2401的驱动电路来进行调整和测试是否能正常工作。完成组装后,我们需要进行试飞过程,在软件中我们可以设计好一个预定程序叫一键起飞,但是这些步骤是需要一定的顺序进行操作,打开开关,如果呼吸灯在缓慢地明亮变幻,飞控和遥控器的通信指示灯都亮起,说明一切正常;把无人机机放到水平面上,操控者站在飞机后面(开关所在的位置对应飞机的后面,切记校准时一定要站在飞机的后面,否则肯定会出问题。飞行过程中也要保持飞机的后面正对着自己);左摇杆拉到左下角,保持大概2秒,飞机指示灯闪烁一下,表示解锁成功,解锁成功后松开摇杆,无人机四个螺旋桨底下的指示灯呈不断双闪状态,四个螺旋桨会低速转动;执行解锁操作后,按一下左键,飞机将会自动起飞,起飞高度1米左右,之后开启悬停,飞机保持在空中不动;左摇杆往上推油门,增加飞行高度;左摇杆往下拉油门,降低飞行高度,左摇杆往左推,飞机左旋;左摇杆往右退,飞机右旋;右摇杆往上推,飞机向前移动;右摇杆往下拉,飞机向后移动;右摇杆往左推,飞机水平向左移动;右摇杆往右推,飞机水平向右移动;在无人机飞行过程中按住左键(又或者按下紧急降落按钮),无人机将会自动降落,降落完成后自动锁死(注:短按左键是触发翻滚)。至此试飞结束,飞机一切正常。但是在飞行中或者后续需要一些对于无人机的一些注意事项:失控保护功能:在无人机运行过程中,不论什么原因致使飞机和遥控器互不控制的情况下,会在程序中跳入自动保护功能。自动保护功能启动后无人机将会自动降落,降落到地面后将会自动锁死芯片。自动保护过程中如若遥控信号恢复,失控保护会立即解除,恢复其控制权电池的充电:跟与手机充电一致,使用配套电源充电器,与电池接口或者与飞控板上USB接口对应相接即可;飞机起飞后,总是往同一个方向漂移,并且速度还是比较快的,把飞机放在水平地面上,

通过观察遥控器陀螺仪参数窗口中左下角和右下角的数字是否接近0或者就是0,如果不接近0,或者参数跳动明显,首先进行水平校准操作(双摇杆下拉2秒),然后再进行飞行测试。5.2软件调试软件调试,总体上可以分为俩个大部分,一个为电机的PID控制调试,另一个为姿态角的测试与调试过程,利用蓝牙模块将解算出的姿态角数据发回上位机,摇动四轴机体,观察上位机数据曲线与姿态演示立方块。此方法总体为姿态角的调试过程,而电机PID的调试需要在大量的数据模拟下进行一次次的在MTLAB中模拟输出或者输入量后再根据使用者的习惯进行修正,所以再此部分主要进行介绍如何再上位机中直观的反印出软件是否进行了本设计所要的设计或者再本设计所需要的设计方向继续运作。黄色和蓝色为直接由加速度计算出的俯仰与横滚角,红色和青色为姿态解算后的姿态角,可以很直观的看出直接由加速度传感器得出的值计算出的姿态角噪声大,杂质多,不平滑,不能完整反映姿态角的变化。而由四元数算法过滤解算后的姿态角反应快,杂质少,噪声小,平滑足以满足控制要求。仅仅观察曲线并不是特别直观,还可以通过观察上位机中的立方块,当小立方块的姿态转动方式与四轴机体能够保持一致变化时说明姿态过滤解算良好。通过以上手段可知姿态角解算满足需求。其上位机展示如图5-2所示。图5-2(滤波前后对比图)在姿态角上调试完成后,我们进行PID的参数调整,首先我们要清楚电机再PID控制下的基本工作原理,由资料可以知道无刷直流电机主要由电机主体,位置检测器,驱动器和控制端组成。电动机的定子绕组多做成三相对称星形连接,如图一所示,本文中电机为三相六状态,其中L、R、ea、eb、ec是其电机A、B、C三相等效电路,Q1、Q2、Q3、Q4、Q5、Q6为六只功率N沟道MOS管。三个间隔120度的霍尔传感器霍尔A、霍尔B、霍尔C对称放置在定子上,电机转子每转动一周,三个霍尔传感器则分别产生相差120度的相位方波信号,编码控制器对霍尔信号进行处理,算出电机转速,产生三相换相逻辑信号,则触发MOSFET功率晶体管导通。通过逆变

温馨提示

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

评论

0/150

提交评论