




已阅读5页,还剩17页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
四旋翼飞控系统设计文档第一章 绪论1.1 研究背景任何由人类制造、能飞离地面、在空间飞行并由人来控制的飞行物,称为飞行器。在大气层内飞行的飞行器称为航空器,如气球、滑翔机、飞艇、飞机、直升机等。它们靠空气的静浮力或空气相对运动产生的空气动力升空飞行。飞行器不仅广泛应用于军事,在民用领域的作用也在增加,机载 GPS 和 MEMS(Micro-Electro-Mechanical Systems)惯性传感器的飞行器甚至可以在没有人为控制的室外环境中飞行,也就是大家所熟知的无人机,。因此国内外研究人员对飞行器进行了大量研究。对飞行器的研究目前主要包括固定翼、旋翼及扑翼式三种,而我们所研究的四旋翼飞行器在布局形式上属于旋翼的一种,相对于别的旋翼式飞行器来说四旋翼飞行器结构紧凑,能产生更大的升力,而且不需要专门的反扭矩桨保持飞行器扭矩平衡。四旋翼飞行器能够垂直起降,不需要滑跑就可以起飞和着陆,从而不需要专门的机场和跑道,降低了使用成本,可以分散配置,便于伪装,对敌进行突袭和侦察。四旋翼飞行器能够自由悬停和垂直起降,结构简单,易于控制,这些优势决定了其具有广泛的应用领域,在民用,医疗,军事等领域都有着无限的潜力。在民用领域,它可以进行航拍,以得到在地面难以测量和计算的数据;在医疗领域,四旋翼直升机可以进入普通地面机器人难以到达的地区进行搜救等活动,最大程度的避免人员财产损失;在军用方面,四旋翼直升机可以作为侦查使用,它飞行灵活,稳定,同时,若在四旋翼直升机上增加其他机械装置,则可以利用它完成更加复杂和重要的任务。然而,作为一个 MIMO 非线性系统,四旋翼飞行器输入变量与输出变量之间的耦合作用、时变非线性的动力学特征、系统本身的不确定性及外部的干扰等的引入,使得系统的控制问题变得十分复杂。如何能够设计出有足够的飞行动力并且具有良好稳定性的控制系统,是四旋翼飞行器如今面临的主要问题,这也使得强大而又易于控制的发动机和控制飞行器协调工作的控制系统成为四旋翼飞行器设计的关键。近几年来,国外一些知名研究机构扩展了四旋翼飞行器的研究领域,希望其在无GPS信号的室内环境中可以利用一些特定的传感器数据进行导航,所以拥有一个稳定的飞控系统是非常必要的,而国内对于四旋翼飞行器飞控系统的研究起步较晚,一些稳定的飞控系统都被商品化,我们不能对其根据自己的需求进行修改,这给我们的研究带来很多的不便,因此我们需要开发一款属于自己的飞控系统。1.2 国内外研究现状MD4-200 是德国 microdrones 公司研发的微型无人飞行器,机体和云台完全采用碳纤维材料制造,这种材料拥有更轻的重量和更高的强度,也使 MD4-200具有抗电磁干扰的能力。飞行时间不低于 20 分钟。MD4-200 的核心是 AAHRS(姿态、高度及航向参考系统),集成了加速度计、陀螺仪、磁力计、气压计、湿度计、温度计等多种高精度传感器和卓越的控制算法,md4-200的操控因而变得非常简单。可制定飞行航线规划,让飞行器按照预设的航线自动飞行。采用选配的 GPS 系统能够实现空间位置锁定与自动航点导航功能,还可以选择以 microSD 卡作为记录器的飞行记录仪来实时记录和分析飞行数据,所有重要的飞行数据都可以下载到数据中心,包括电池状态、高度、姿态、位置、飞行时间等,用于航后的数据分析。MD4-200 还具有安全保护措施以避免坠毁,它能够在电量不足和失去控制信号时自主降落。OS4是瑞士洛桑联邦理工学院(EPFL)自动化系统实验室开发的一种电动小型四旋翼飞行器(S.Bouabdallah, R.Siegwart,2007),研究的重点是机构设计方法和自主飞行控制算法,目标是要实现室内和室外环境中的完全自主飞行。该项目进行了两个阶段的研究。已经分别基于多种控制算法(例如:PID、LQ、Backstepping、Sliding-mode),实现了飞行器姿态控制。2006年 1 月 EPFL 已经实现了 OS4在室内环境中基于惯导的自主悬停控制。麻省理工学院(MIT)计算机科学和人工智能实验室 Robust Robotics Group开发了一种微型四旋翼飞行器(R.He,S.Prentice,N.Roy,2008),安装北阳(Hokuyo)的激光测距仪、地平面传感器、摄像机,组成了“激光测距+视觉”的自主飞行系统。它既没有安装 GPS 也没有安装惯性导航装置,因为对于微型飞行器而言,惯性导航装置成本高昂、体积大和质量重。这种微型四旋翼飞行器利用机载的激光测距仪估算自身的相对位置、偏航角和高度信息;利用机载激光扫描仪和照相机用于环境感知、重建并规划飞行、建立自身在环境地图中的映射和确立明确的飞行路径以在室内狭小的空间和存在 GPS 盲区的区域安全稳健的自主飞行。Kinect Quadrocopter MIT 是麻省理工学院 Computer Science and ArtificialIntelligence Laboratory 和 Robotics and States Estimation Laboratory 合作研制的。在四旋翼飞行器上安装 Kinect,使四旋翼能够完全自主 3D 地图映射(3-Dmapping)和飞行。采用 SLAM (Simultaneous Localization And Mapping)算法构建环境模型,并使用 Kinect 传感器采集数据信息。SLAM 地图映射使得飞行器还能够在 GPS 盲区(如室内、密集的城市环境等)自主飞行执行任何和进行远程控制(A.Bachrach,R.He,N.Roy,2009a,A.Bachrach,R.He,N.Roy,2009b)。这对于四旋翼4DraganFlyer X4 是 Draganfly Innovation Inc.设计的一种超级遥控摄像飞机,具有惊人的性能和良好的稳定性,它轻便小巧易于携带,质量为 680g,最大长度约 77.5cm,有效载荷为 250g。可用来测量、工业测绘、军事侦察、空中摄影等;机载高性能处理器可以运行数千行代码并且接收传感器(三个加速度计,三个陀螺仪,一个气压传感器)输出的信息并加以处理。操作者使用手持式控制器可以控制它飞行的方向、速度大小,也可以调整飞行的高度。可以做到自动平衡,该项目由 Office of Naval Research 和 ArmyResearch Office 资助,具有明显的军事用途。AR.Drone 直升飞机是法国派诺特(Parrot)公司开发的一款飞行器,AR.Drone类似于一款无人驾驶直升机,拥有四个独立旋翼,操作员可以使用 iPad、iPhone、和 iPod Touch 上的软件对其进行飞行控制操作。由于整个飞机的操作都是基于飞机自身发出的 Wi-Fi 信号,因此操控距离可达 50 米。该飞行器的下方还加装有重力感应装置、陀螺仪、机械控制芯片等部件,利用智能飞行技术可以纠正风力和其他环境误差,平衡 AR.Drone 的飞行速度和角度。这款航模的驾驶舱前部安装有一个摄像头,可以将第一人称视角的画面通过 Wi-Fi 信号传回 iPad(或iPhone、iPod Touch),这样就能在 iPad 上看到逼真的模拟驾驶舱画面,而 Parrot公司还提供有 SDK,游戏开发者可以针对该产品设计开发虚拟空战游戏。1.3 国内外现有的四旋翼飞控系统1.4 文档主要内容设计四旋翼飞行器需要综合很多方面,例如设计飞行器结构、选择合适的传感器件和有效的控制算法等等。本文的主要任务是实现四旋翼飞行器完整控制系统的设计,包括实验用飞行器模型硬件部分及软件部分设计,系统的动力学建模,姿态解算原理及实现,基于动力学模型的控制器设计,最终还要完成装置的调试和飞行实验。具体研究内容分为以下几个部分:(1) 系统硬件设计。通过分析四旋翼飞行器的飞行原理,确定结构模块化的硬件设计思路,分别进行系统控制模块、PWM驱动模块、IMU(惯性测量)模块和遥控器信号捕捉模块硬件原理的分析和实物电路的设计。(2) 结合四旋翼飞行器的硬件结构,进行软件编程部分的工作。按照四旋翼飞行器的飞行原理和控制特性进行系统飞行控制主程序以及各模块软件编程。(3) 对四旋翼飞行器系统的控制方法进行研究,根据飞行原理进行动力学建模,并完成系统控制器的设计。(4) 系统调试和实验结果分析。首先对系统的各个模块进行相关调试和检测,然后组装模型,进行四旋翼飞行器实物系统的飞行实验,验证理论设计方案的合理性。第二章 四旋翼飞控系统硬件平台搭建2.1 四旋翼飞行器飞行原理图2-1 四旋翼模型图四旋翼飞行器故名思议采用四个旋翼作为飞行的直接动力源,旋翼对称分布在机体的前后、左右四个方向,如图2-1,四个旋翼处于同一高度平面,且四个旋翼的结构和半径都相同,旋翼1 和旋翼3 逆时针旋转,旋翼2 和旋翼4 顺时针旋转,四个电机对称的安装在飞行器的支架端。四旋翼飞行器和典型的传统直升机不同,直升机配备有一个主转子和一个尾浆。他们是通过控制舵机来改变螺旋桨的桨距角,从而控制直升机的姿态和位置。四旋翼飞行器是通过调节四个电机转速来改变旋翼转速,实现升力的变化,从而控制飞行器的姿态和位置。由于飞行器是通过改变旋翼转速实现升力变化,这样会导致其动力不稳定,所以需要一种能够长期确保稳定的控制方法。图2-2 四旋翼飞行器飞行原理图四旋翼飞行器是一种六自由度的垂直起降机,因此非常适合静态和准静态条件下飞行。但是四旋翼飞行器只有四个输入力,同时却有六个状态输出,所以它又是一种欠驱动系统。因为电机1 和电机3 逆时针旋转的同时,电机2 和电机4 顺时针旋转,所以当飞行器平衡飞行时,陀螺效应和空气动力扭矩效应均被抵消。四旋翼典型的控制模式有两种,即“十”模式和“X”模式,如图2-2是“十”模式控制原理图,图a)中表示的是1号电机转速比3号电机快,这飞行器会向后方运动,同理图b)中3号电机转速比1号电机转速快,则飞行器向前方运动,图c)和图d)表示的是飞行器向左右运动的控制原理图,图e)和图f)表示的是飞行器上下运动的控制原理图,当四个电机转速同时增大时飞行器会上升,同时减小时飞行器会下降。图g)和图h)表示的是飞行器偏航方向的控制原理图,当1号和3号电机转速比2号和四号转速快时,飞行器会逆时针旋转,同理增加2号和4号电机的转速,飞行器会顺时针旋转。四旋翼的另外一种控制模式是“X”模式,和“十”模式控制方式相比只有在前后和左右方向上不同,而垂直方向和偏航方向控制完全相同。“X”模式下左右运动依靠左右两对电机的转速差控制,前后运动依靠前后两对电机的转速差控制。本实验室开发的飞控系统基于的是“X”模式。2.2 四旋翼飞控系统硬件平台设计2.2.1 设计目标本实验室所设计的四旋翼飞控系统的目标是设计出一套完整的四轴飞行器飞行控制系统,并利用硬件和软件实现设计的控制系统,从而实现我们的控制目标,期望通过该飞行控制系统可以让四旋翼飞行器在近地环境下,通完成垂直起降、悬停等动作,并在对其施以外界干扰时能自动调节迅速恢复到平稳状态,最后能在此基础上通过暴力测试。同时为了能够满足飞行试验的需要提出了以下要求:(1)具有较高的可靠性。(2)具有较好的可维护性,配件的购买和更换方便,便于外场试验。(3)具有较好的安全防护机制,可以应对突发的故障。(4)具有一定的续航能力,提高外场飞行试验效率。2.2.2 系统硬件结构整个系统硬件部分根据模块化思想进行设计,结构框图如图2-3所示 图2-3系统硬件结构框图从上图可以看出整个系统主要包含的模块有遥控器信号捕捉模块、IMU(姿态测量模块)、PID控制器模块、PWM输出模块、IIC模块和USART(无线串口)模块。下面简要介绍每个模块的功能:遥控器信号捕捉模块:这个模块主要用来捕捉遥控器的PWM波信号,遥控器2通道信号主要用做飞行器的油门,1通道信号作为飞行器横滚角设定值,3通道信号作为飞行器俯仰角设定值,4通道作为飞行器俯仰角设定值,5通道信号作为模式切换开关信号。IMU(姿态测量模块):该模块包括三个传感器总共九轴数据,这个模块和STM32连接的接口是IIC接口,九轴数据通过基于互补滤波的姿态解算算法算出当前飞行器的姿态然后和上一个模块给出的姿态设定值做差,得到姿态误差。PID控制器模块:该模块由软件生成,我们开发最后决定使用分段PID串级控制,使用串级控制的好处是可以很好地消除外部扰动,之所以使用分段PID是因为在误差小时,所需要的控制作用较小,而误差较大的时候所需要的控制作用较大。,该模块输入是姿态误差,输出是控制量对应的四个电机的PWM输出。PWM输出模块:利用stm32自带的PWM生成器直接产生需要的PWM波,PWM波的参数主要是周期与占空比。IIC模块:之所以要加上这个模块是因为STM32这块芯片的硬件IIC使用时不能满足使用要求,我们开发的时候是根据时序自己编写软件的模拟IIC来解决这个问题的。USART(无线串口)模块:这个模块主要是用于调试PID参数和姿态数据的实时回传给上位机,里面主要涉及的是通信协议的编写。2.2.3 器件选取(1)微控制器选型飞控系统是一个多输入多输出系统,输入信号主要是对四旋翼飞行器飞行姿态的设定值,开发第一阶段使用遥控器信号给定姿态的设定值,第二阶段使用上位机给定姿态设定值,所以选择的控制器需要都能够接受这两种设定信号。飞控系统输出的控制信号是PWM(脉冲宽度调制)信号,所以需要微控制器可以比较容易的产生PWM信号。整个飞控系统还涉及到飞行姿态的解算,所以需要微控制器的主频较高,这样可以提高姿态解算的时间。还有IMU(惯性测量单元)接口是IIC接口,所以需要所选择的微控制器具有IIC通信接口。最后由于控制系统具有3ms的控制周期,所以需要微控制器的定时器精度较高,基于以上这么多要求,本飞控系统选定的微控制器是ST(意法半导体公司)的STM32系列芯片。图2-4 STM32芯片图如图2-4所示,这个系列的芯片是基于ARM Cortex-M3内核的微控制器,片上集成32-512KB的Flash存储器。6-64KB的SRAM存储器。具有3种低功耗模式:休眠,停止,待机模式。为RTC和备份寄存器供电的VBAT。两种调试模式:串行调试(SWD)和JTAG接口。具有12通道DMA控制器,支持的外设有定时器,ADC,DAC,SPI,IIC和USART。具有2个12位的us级的A/D转换器(16通道),A/D测量范围:0-3.6 V、双采样和保持能力、片上集成一个温度传感器。具有最多高达112个的快速I/O端口:根据型号的不同,有26,37,51,80,和112的I/O端口,所有的端口都可以映射到16个外部中断向量。除了模拟输入,所有的都可以接受5V以内的输入。最多多达11个定时器:4个16位定时器,每个定时器有4个IC/OC/PWM或者脉冲计数器。2个16位的6通道高级控制定时器:最多6个通道可用于PWM输出。2个看门狗定时器(独立看门狗和窗口看门狗)。Systick定时器:24位倒计数器。2个16位基本定时器用于驱动DAC。最多多达13个通信接口:2个IIC接口(SMBus/PMBus),5个USART接口(ISO7816接口,LIN,IrDA兼容,调试控制),3个SPI接口(18 Mbit/s),两个和IIS复用,CAN接口(2.0B),USB 2.0全速接口,SDIO接口。(2)IMU(惯性测量单元) 选型四旋翼飞行器在空中飞行时由于受到周围环境的影响,无法使飞行器一直保持平衡的状态,这就需要一定的传感器件来对飞行器的姿态进行检测,而现在一般使用传感器就是IMU,以前的IMU一般只有三轴陀螺仪,但是由于陀螺仪往往存在温度漂移,所以就需要有其他的传感器件对陀螺仪数据进行纠正。现在IMU一般包括三轴陀螺仪,三轴加速度计和三轴磁力计,其中加速度计和磁力计用来对陀螺仪数据进行纠正。本套飞控系统选用的传感器信号是MPU6050,其整合了三轴加速度计和三轴陀螺仪,坐标轴定义如图2-5图2-5 MPU6050坐标轴定义MPU6050的角速度全格感测范围为250、500、1000与2000/sec (dps),可准确追踪快速与慢速动作,并且,用户可程式控制的加速器全格感测范围为2g、4g8g与16g。产品传输可透过最高至400kHz的IIC。磁力计选用的是Honeywell公司的HMC5883l三轴数字罗盘,接口是IIC,通过配置输出频率最高是75HZ。(3)电调、电机、螺旋桨及机架选型实验室的四旋翼飞行器电调、电机和螺旋桨都是DJI公司的,其中电调(电子调速器,用来控制电机的转速,输入是一定周期的PWM波,英文简称ESC)如图2-6的规格参数如下: 电流 : 30 AOPTO兼容信号频率 : 30Hz - 450Hz电池 : LiPo ( 3-4S 1500mAh 2600 mAh)。电机如图2-7,规格参数如下:定子尺寸 : 22 x 15mm KV值 : 920KV rpm/V 螺旋桨 : 10 x 4.5 in型号:2212实际重量:60克。螺旋桨如图2-8所示,规格是10英寸。图2-6 DJI电调图2-7 DJI电机图2-8 DJI 1045螺旋桨由于飞控程序一开始不稳定,在调试的时候肯定会出现炸机的情况,所以机架必须非常结实,我们选取的机架是XAircraft公司的X450Pro机架,如图2-9图2-9 XAircraft X450Pro机架 (4)电源、遥控器及无线模块选型关于遥控器的选型,主要看设计飞控系统时需要多少个输入信号,为了满足当前使用和以后继续开发的要求,实验室选择的是天地飞公司的一款7通道的遥控器,型号WFT07,如图2-10所示图2-10 天地飞遥控器与接收机关于电源的选型,本系统选用的是锂电池,用它来给电调供电,同时通过稳压电路输出5V给控制板供电。关于无线模块的选型,由于有时候飞行器飞的距离比较远,所以选择如图2-11这款无线模块,它的型号是XBEE PRO 900 HP 250MW,传输距离野外无遮挡距离一般为4-10km。图2-11 XBEE PRO 900无线模块第三章 四旋翼飞行器软件设计3.1 软件设计需求本系统主要完成的是四旋翼飞行器的垂直起降控制和一定范围内的姿态变化控制。在飞行控制的软件设计中,预期的目标是让飞行器能够快速到达设定的姿态,并且在垂直方向可以稳定在设定的高度上,而对于飞行器最基本的飞行特性-悬停就是第一个我们要完成的任务。 由四旋翼飞行器的飞行原理可知,飞行器飞行姿态的调节最终体现在四个带螺旋桨电机的速度调节上,在四个电机不同的转速组合条件下,飞行器能够实现俯仰、横滚、偏航等不同的飞行姿态,相应的飞行控制系统也使用三个控制通道,采用一定的控制律控制每个通道。在软件设计的时候忽略各通道之间的耦合作用。根据上述飞行控制系统的设计要求,将四旋翼飞行器飞控系统软件任务划分为以下几部分:(1)初始化任务:完成系统、外设及相关数据变量的初始化工作(2)数据通讯任务:通过点对点无线模块完成数据的下传、上传。(3)遥控器信号捕捉任务:通过对遥控器信号的解析通过一定的时序完成对遥控器信号的捕捉 (4)数据采集任务:完成陀螺仪、加速度计及磁力计的数据采集工作。(超声波)(5)定时器定时及PWM输出:需要利用一个定时器对控制周期进行定时,同时利用四个定时器来产生PWM波对电调进行控制,继而控制电机。(6)姿态解算任务:对采集到的九轴数据利用一定的滤波算法融合在一起,进而实现对飞行器姿态的解算。(7)控制律解算任务:采用PID控制律,在每个控制周期内对PWM波输出进行更新,即对电机的控制量更新,本飞控系统是个控制姿态的闭环系统而不是控制电机转速的闭环系统。课件软件任务工作量大,而且涉及到各个任务之间的协作问题,所以设计出一个合理的任务时序,可以提高整个系统运行效率。3.2 飞控系统及各模块的软件流程3.2.1飞控系统软件流程本系统软件开发环境是IAR Embedded Workbench IDE for ARM,这个环境具有高度优化的 IAR AVR C/C+编译器;一个强大的编辑器;一个工程管理器;一个具有世界先进水平的高级语言调试器。使用户在开发新的项目时也能在所熟悉的开发环境中进行。一般基于ARM开发系统用的开发环境有两个,一个就是IAR,另外一个是MDK,明显后者在编译的时候速度很慢,而且调试环境前者比后者简单且容易直观,所以选择前者作为开发环境。图2-12是整个系统的软件流程图 图2-12 飞控系统整体软件流程图从图中可以看出整个系统的流程是这样的,首先必须对系统的各个硬件模块进行初始化,初始化完毕以后需要读出保存在Flash的控制参数,这些控制参数都是在上一次试飞过程中调试完毕并保存在Flash中的,读取完参数后把这些参数赋值给相应的运算变量以备之后的PID运算,紧接着依据捕捉的遥控器2通道的信号上升沿是否大于1700判断是否需要对电子调速器进行行程的校准,接着就是进入姿态解算模块对姿态数据进行更新,再对发送给上位机的缓冲区数据进行更新。之后就是判断系统是否处于解锁和关闭状态,这些都是出于安全防护的考虑,因为如果对整个系统没有锁定这一功能,而操作者在对系统上电的时候系统就处于运行状态,假如这个时候遥控器信号不是正常值,很容易出现危险的情况。同理为什么要判断遥控器是否关闭,原因是遥控器关闭的时候信号处于异常状态,如果不加这个判断,即遥控器关闭状态下对系统上电,且解锁完毕,飞行器会出现异常的工作状况。接着就是等待控制周期标志置位,对控制量进行更新,本系统的控制周期是2.5ms,之所以采用这个控制周期是因为控制电调的PWM波周期是2.5ms。这里还需要说明一点是程序流程图里面没有提到好几个子模块的程序,它们分别是遥控器信号捕捉模块,主要应用的是中断子程序,算法在下面小节会具体说明;还有控制周期定时子模块,主要是控制周期一到对标志置位;还有数据发送子程序,应用DMA发送;姿态传感器数据接收子模块,通信协议是IIC;还有上位机数据接收子程序,应用的是中断子程序;还有PWM控制量输出子程序;还有“X”模式四个电机控制量耦合关系子程序和Flash读取存储子程序。本章只叙述程序的流程和算法,代码详见附录。下面将对这些子程序一一详细介绍。3.2.2飞控系统子模块软件流程(1)Flash存储和读取子程序STM32微控制器一个比较抢眼的有点事内置了大容量的Flash存储器,通过STM32内部的Flash控制模块可以对Flash存储其进行操作。STM32内置的Flash具有128KB的容量,可以重复擦写10万次。以上特性决定了STM32内置Flash可以符合本系统中对于控制参数的读写要求。本飞控系统主要有5组15个参数,每个参数数据类型都是浮点型占用4个字节,所以参数总共占用的空间是60个字节。同时在处理传感器数据时需要先对传感器数据进行标定,标定数据也会存储到Flash中,那些数据大小也不大,总共是28个字节,所以根本不需要外部Flash来存储这些数据,这样既可以节约开发成本,还可以减小控制电路的复杂度。但是特别要注意的是由于内部Flash主要用于程序的存储,所以这些数据存储在最后几页,以免和主程序地址冲突,破坏主程序的执行。要成功对STM32内部Flash进行写操作,关键是要遵循如下的流程:图2-13 Flash写操作流程这里需要说明的是对Flash写是写一页大小的,所以最后在程序里面不同数据各占了一页的大小。在Flash存储和读取子程序主要包括的是Flash本身的读写函数,MPU6050标定数据读写函数,HMC5883L标定数据的读写函数,控制参数读写函数。具体代码详见附录。(2) IIC通讯接口子程序上文中有提到过STM32这款微控制器具有其本身的硬件IIC的,但是由于使用不便,所以本系统中使用的IIC通讯接口是模拟硬件IIC时序的模拟IIC,即用软件代码实现硬件IIC的功能。IIC只要求两条总线线路,一条串行数据线SDA,一条串行时钟线SCL。图2-14表示的是典型的IIC接口连示例。图2-14 典型的IIC接口连示例每个连接到总线的器件都可以通过唯一的地址和其它器件通信,主机/从机角色和地址可配置,主机可以作为主机发送器或主机接受器。但是如果两个或者更多的主机同时请求总线,可以通过冲突检测和仲裁防止总线数据被破坏。IIC的的通信协议可以简单概括为如下:a) 数据的有效性 在时钟信号高电平的时候,SDA线上的数据必须保持稳定,数据线仅可在SCL时钟信号为低电平时改变。b) 起始和结束条件起始条件:当SCL为高电平是,SDA线上由高到低的跳变被定义为起始条件;结束条件:当SCL高电平时,SDA线上由低电平变为高电平的跳变被定义为结束条件。总线在起始条件之后被视为忙状态,在结束条件后被视为空闲状态。c) 应答每当主机向从机发送完一个字节的数据,主机总是需要等待从机给出一个应答信息已确认是否接收成功。从机应答主机所需的时钟仍是主机提供的,应答出现在每一次主机完成8个数据位传输后紧跟着时钟周期。d) 带有7位地址的数据格式典型的IIC传输数据流由最高位在SCL的驱动下依次传输。在起始条件后,第一个字节由长度为7位的传输地址信息和长度为1位的数据方向位组成。数据方向位为1表示主机请求从机数据,为0表示主机向从机输出数据。在随后的第9个时钟周期,主机将等待从机的应答。e) 仲裁仲裁时间发生在至少有两个设备的同时向总线传输起始条件、尝试成为主机的时刻。赢得仲裁的设备将成为主机,其余设备将退出仲裁保持在空闲状态,直至下一次总线空闲后才能再次申请控制总线。 自己编写的IIC通讯接口程序其实就是按照上述协议编写的模拟IIC程序,实验证明模拟IIC程序可以准确的读取传感器数据。(3)MPU6050读取子程序在读取传感器数之前需要对传感器进行初始化,让其进入可用状态,首先需要设置时钟,接着定义传感器数据量程,再接着对传感器设置低通滤波器频率,最后开启传感器。随后还需要对中断模式进行配置,读取事先做好的标定值,然后就是读取传感器数据。最后再对读取到的传感器数据减掉标定的偏移量,经过滑动平均滤波器最后应用于姿态解算。(4)磁力计读取子程序磁力计数据读取和MPU6050数据读取大同小异,也是先对传感器初始化让其进入可用状态,然后读取标定值,对读取的数据减去标定偏移量,经过滤波器最后应用于姿态解算。(5)姿态解算子程序姿态解算主要应用的算法是互补滤波,将在下一个章节详细叙述。(6)遥控器信号捕捉子程序遥控器信号在接收机上表现的形式是周期是21ms的PWM波,而其实有用的信号只是高电平,所以遥控器信号捕捉子程序主要做的事情是通过一定的数量关系把高电平时间捕捉出来。通过示波器可以发现高电平的时间范围是1ms到2.5ms之间,程序中把1ms的时间量化为1000的数量,同理2.5ms量化为2500的数量,所以定时器需要分频成1MHZ,即计数器计一次数就是1us,然后上升沿瞬间读一次计数器,下降沿的瞬间读一次计数器,两次计数器数值相减就是高电平的时间。但是计数器会有溢出出现,这个问题的解决在下面的流程图很好的体现:图2-15 遥控器信号捕捉流程图当下降沿时间比上升沿时间小时,返回主程序,遥控器信号保持上次的捕捉值不变。本系统主要捕捉遥控器六个通道的信号值,每个通道捕获原理相同。(7)PWM控制信号输出STM32有一个PWM波发生器,只要对相应的寄存器进行赋值就可以得到所需要的PWM波。而本系统需要的PWM控制信号也即是PID计算出一个值然后赋给对应的寄存器就可以得到控制量。这个子程序中还包括对控制量的初始化,对控制量平滑滤波和限幅。最后是根据相应的控制模式(“X”或者“十”)把控制量输出到电机,如表2-1和表2-2所示。从表格中可以看到控制量主要是Pitch,Yaw,Roll三个通道的控制量,规定电机的顺序是右后1号电机,右前2号电机,左后3号电机,左前四号电机。表2-1 “十”模式电机控制量控制量电机油门RollPitchYaw电机1+10+1-1电机2+1-10+1电机3+1+10+1电机4+10-1-1表2-2 “X”模式电机控制量 控制量电机油门RollPitchYaw电机1+1-1+1-1电机2+1-1-1+1电机3+1+1+1+1电机4+1+1-1-1表格中的“+1”表示控制量相加,“-1”表示控制量相见,比如“X”模式下的对电机1的控制量输出等于油门量减去Roll控制量加上Pitch控制量减去Yaw控制量。(8)PID控制子程序该子程序主要用来控制姿态,用的是分段串级PID控制,具体算法详见下面章节。(9)USART(无线串口)通讯子程序上一章中已经提到本系统采用的无线模块的接口是全双工异步串口协议,所以需要用到STM32中的USART收发器,其中把数据发送到上位机系统采用的是DMA发送的形式,这样可以保证数据连续发送,保证数据发送的实时性,从而上位机上可以看到很好的系统运行的状况。而上位机把PID参数发送到系统中实时性要求不高,而且不需要一直发送控制参数,只需要发送一次,系统接收到控制参数就把其写入到Flash,然后根据上位机发送的标识(用来区别本次发送的是
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025版东莞离婚协议书模板定制及婚姻财产分割专业服务合同
- 2025版茶楼茶艺馆投资合作合同
- 2025年跨境电商进口关税保证金合同样本
- 2025版餐厅人力资源管理与经营合作合同范本
- 二零二五年度城市广场场地租赁管理公约
- 二零二五年度校园宿舍装修合同示范
- 2025版人工智能技术服务购销合同
- 二零二五年度生物科技干股入股协议书模板
- 2025年度办公大楼智慧化办公环境设计与施工合同
- 二零二五年度二手房交易房产证办理代理合同范本
- 西北工业大学固定资产验收报告
- 六年级下册综合实践活动教学设计-我们的毕业季 全国通用
- 【课件】Unit+2Reading+for+writing+课件人教版(2019)选择性必修第四册
- 大学英语六级词汇表(全)含音标
- 历年农商行考试真题及答案(DOC)
- 2014红星美凯龙建材品类系列知识培训:卫浴篇
- 卫生部手术分级目录(2023年1月份修订)
- GB/T 9576-2013橡胶和塑料软管及软管组合件选择、贮存、使用和维护指南
- 神经康复学教学大纲
- 煤矿用防爆电气设备防爆检查标准培训课件
- 护士注册健康体检表下载【可直接打印版本】
评论
0/150
提交评论