您好,欢迎来到智榕旅游。
搜索
您的当前位置:首页基于STM32单片机的四旋翼飞行器设计

基于STM32单片机的四旋翼飞行器设计

来源:智榕旅游
ELECTRONICS W0RLD・ 游 基于STM32 讥的四旋翼 仟器设计 厦f]大学信息科学与技术学院程煦郭珊珊 陈华宾 【摘要】四旋翼飞行器是一种新型无人飞行器,其结构简单,飞行稳定性强,具有很强的实用价值.基于其上述特性,提出一种以 STM32单片机为核心的四旋翼飞行器的设计,主要包括飞行器的结构以及基本原理的介绍、硬件部分的设计与选择、软件部分的设 计与实现。在硬件部分,主要是以STM32系列微处理器为主控核心,MPU一605()为飞行姿态测量传感器,2.4GHz全球开放频段为无 线数据传榆控制。其中具体各元件的作用与选择将分别从主控单元、IMU模块、电机驱动模块、无线通讯模块及电源模块进行阐 述。在软件部分,主要是通过四元数算法实现姿态解算和PID算法来实现姿态控制 .最后对设计出的四旋翼飞行器提出一些附加功 能.使其更加人机友好化。 【关键词】四旋翼飞行器;STM32;姿态解算;姿态控制 Desi ̄n of quadrotor based on STM32 MCU Abstract:Quadrotor is a new type ofunmanned aerial vehicle with simple structure,strong flight stability and high use value.The framework designed in this paper is based on STM32 MCU.There mainly include the structure ofthe aircraft,the introduction ofthe basic principle,the design and selection of the hardware subpart,the design and implementation of the soRware subpart.In the hardware part,it is mainly based on STM32 series microDrocessor as the core of control,MPU.6050 as the flight attiude sensor tand 2.4GHz in the world as wireless data trans— mission contro1.In which the choice and function of these speciic components fwill be separately clariied fas the main control unit,IMU mod- ule,motor driver module,wireless communication module and power module.In the software part,it is mainly realized through quatemion algofithm in attitude determination and PID algorithm in attiude tcontro1.Finally,the design is improved by some additional functions to make it more user-friendly. Key words:quadrotor:STM32 MCU:attiude detennitnation:attiude conttrol 在飞行中,1号和3号电机顺时针旋转,2号g14号电机逆时针旋 0引言 四旋翼飞行器属于旋翼式无人飞行器的一种,“四旋翼” 转,即:相对的两个电机同向旋转,相邻的两个电机反向旋转。 由此,当四个旋翼转速完全相同的情况下,每个旋翼产生的反扭 力矩大小相同,方向相反,便可两两抵消,达到平衡。 是指飞行器的动力由四个旋翼式的飞行引擎来提供。运用现代 控制技术,可实现用电机对飞行器的控制研究,使其结构更简 单。通过调节飞行器四个旋翼的转速,改变所产生的扭矩和升 力,实现飞行姿态的控制。与传统的单旋翼直升机相比,四旋 翼飞行器的发展更趋小型化、多样化,应用领域愈加广泛。 1 四旋翼飞行器的结构与运动控制 图2四旋翼飞行器俯视结构图 1.1飞行器的结构 四旋翼飞行器通常有“X”型和“十”字型两种类型…,具体 架构如图l所示。主要区别在于设置的坐标系位置不同,“X”型 飞行器的XY轴与两个电机成45。角,而“十”字型飞行器的XY 1.2飞行器的运动控制 飞行器的运动控制主要为垂直运动控制、俯仰与滚转运动 控制和偏航运动控制【 】,其控制规律如表1所示。 垂直运动控制可通过调整功率大小实现。同时增加四个电 机的输出功率,旋翼转速增加,总拉力增大,当总拉力大于整 轴与两个电机方向重合。由于其自身特点, “x”型飞行器在调 节方向上更灵活与稳定【2],“十”字型易明确头尾与飞行控制。 因而,本文选用“X”型四旋翼飞行器进行理论分析。 机的重量时,飞行器垂直上升【 】;反之,同时减小输出功率, 飞行器垂直下降至平稳落地。另当外界扰动量为零时,旋翼产 生的总拉力等于飞行器的自重,保持悬停状态。 俯仰与滚转运动控制是通过各个电机转速的增减产生不平 \、 / 衡力来实现的。当电机1,2转速减小(增加),电机3,4转速增 < ,L、 \ 一, 加(减小)时,旋翼l,2下降(上升),3,4上升(下降),实现 俯(仰)运动;当电机1,4转速减小(增加),电机2,3转速增加 电帆_、\ I,.— 电机/ (减小)时,实现左(右)滚转运动。 。x 基四轴飞行■ 偏航运动控制主要是借助旋翼产生的反扭矩来实现。当电机 l、3转速减小(增加),2、4转速增加(减小)时,旋翼1、3转动 方向上产生的反扭力矩减小(增加),旋翼2、4转动方向上产生的 反扭力矩增加(减小),使得四旋翼飞行器在旋转方向上不能平 _皂子世界・121・ 图1“十”字型和“X”型飞行器 其俯视结构图如2所示,主要由控制中心、旋翼和电机组成。 ELECTRONICS W0 ・技术交流 衡,且在水平方向产生一个扭力,改变偏航角,实现偏航运动。 传感器I2C接口分别连接一个HMC5983L电子罗盘来测量航向和 BMP280气压计来实现定高,以提高获得数据的准确性【7】。 2硬件设计 硬件设计是整个四旋翼飞行器的基础,良好的硬件设计是 后续一切工作得以顺利进行的保证。其设计总体框图如图3所 2.3电机驱动模块 电机是四旋翼飞行器的执行机构。它能够将飞行控制器的 输出转换为旋翼的转速,并通过改变各旋翼的升力与反扭矩来 调节飞行姿态。本设计中选择空心杯无刷电机,空心杯电动机 在结构上采用无铁芯转子,消除了由于铁芯形成涡流而造成的 电能损耗,大大减少了自身的机械能损耗,拥有突出的节能特 表1飞行器运动控制 \\ 辔柳 \\转速 运动\\ 示,主要包括主控单元、IMU模块、电机驱动模块、无线通讯 模块及电源模块【 。 性和控制特性。同时无刷电机质量轻【。】,能够有效提高电机响 应速度,从而能快速控制旋翼转速。 电机 电机 电机 电机 2.4无线通信模块 加e 垂直 运动 俯仰 \ l 增大 (减小) 减小 2 增大 (减小) 减小 3 增大 (减小) 增大 4 增大 (减小) 增大 无线通讯模块,主要用于四旋翼飞行器的远程监控,是飞 行器和地面控制中心连接的桥梁。其设计包括无线遥控器和工 运动 滚转 运动 偏航 运动 (增大) 增大 (减小) 减小 (增大) (增大) 减小 (增大) 增大 (减小) (减小) 减小 (增大) 减小 (增大) (减小) 增大 (减小) 增大 (减小) 作在2.4GHz频段的NRF24L01无线数据通信模块。 无线遥控器,主要用于命令的发送。遥控器上的各个摇杆 分别与电位器相连,当摇杆被拨动时,电位器接入电路的阻值 发生改变,从而其两端电压发生改变,遥控板上的单片机便利 用AD转换器检测该电压,然后转换成数字信号,经过处理、存 储,最后发送给遥控器接收器,以便进行后续操作。本设计选 用STM8S103F3P6作为无线遥控器的主控芯片,STM8S103F3P6 是ARM公司研发的8K字节的Flash程序存储器,成本低,性能 稳定,满足设计需求。 当遥控板得到各通道值后,要发送给飞行控制板,必须 图3硬件实现流程图 使用无线通信。本设计选用工作在2.4GHz频段的NRF24L0l芯 片。NRF24L0l是Nordic公司生产的工作于2.4GHz频段的单片无 线收发器芯片【9】,工作速率高,125频道满足多点通信和跳频通 信的需要,高效的GFSK调制,抗干扰能力强,满足设计要求。 2.5电源模块 电源模块为整个系统提供能量。此飞行器由一个3.7V的航 2.1主控单元 主控单元是整个飞行器的核心,而微控制器更是主控模块的核 心。通过微控制器采集、转换、融合传感器数据,计算飞行器的姿 态信息、高度信息、位置信息,从而实现对四旋翼飞行器的控制。 因此,综合以上信息,微控制器的选择,应基于高性能、 低功耗、低成本的要求。本设计决定采用ARM公司推出的 STM32Fl03系列。再考虑到外设需求引脚数和程序容量,最终 选择STM32F103C8T6芯片。 该芯片为48脚LQFP封装,采用ARM Cortex.M3 32位的内 核[6】,最高工作频率可达72MHz。具有64K或l28K字节片上 FLASH存储器,20K字节的SRAM,7个定时器,12位ADC模 块,和37个5V容忍的GPIO端口,完全满足系统设计需求。 2.2 IMU模块 模锂电池供电,但其中各器件都有各自特定的工作电压,电机 的工作电压为电源电压,微控制器、传感器以及无线通讯模块 合适工作电压均为3.3V。因此必须针对不同元件为飞行器设计 合理的电源电路。本设计采用TP8350升压芯片和开关电路先进行 升压,目的是增大原有的0.4V的压差,让后续的降压芯片处于良 好的工作状态。随后再采用线性电源降压方案提供3.3V电压。 开关电源方案,主要依靠开关升压芯片TP8350实现。 TP8350升压芯片可提供3v-6v的输出电压,具有外接元件少、 低静态电流、高效率的特点。利用TP8350芯片设计开关电路, 可以提高压差,为后续降压芯片的工作做准备。 线性电源方案,核心在于使用MIC5219.3.3BM降压芯片。 IMU模块是整个飞行器不可或缺的一部分。通过由陀螺仪 传感器、加速度传感器、电子罗盘组成的IMU传感器测量出飞 行器的加速度与角速度,然后计算出飞行器的飞行姿态,最后 将测量数据传送至主控制器进行处理,进而向电机驱动模块发 出指令,达到控制各电机转速的目的。因此,IMU模块的核心 是传感器,应选择功能符合上述要求,同时兼具低成本、低功 MIC52l9—3.3BM芯片的噪音低、压差低,精度为l%,拥有过流 与过温保护。本设计中采用两片MIC52l9。3.3BM芯片,将电压 转换为3.3V,供控制系统的不同部分使用。 耗的高性能传感器。 本设计采用MPU60X0系列传感器,再考虑到引脚的匹配 性,最终选择MPU6050传感器。该传感器集成了3轴MEMS陀 螺仪,3轴MEMS ̄I速度计,以及一个可扩展的数字运动处理 器DMP。MPU6050传感器对陀螺仪和加速仪分别用了三个l6 3软件设计 程序流程图如图4所示。系统MCU内部初始化完成后,进 入循环程序。首先读取传感器数据,进行姿态解算,并读取遥 控器的输入值。然后进入飞行器状态监控和姿态控制运算阶 段,最后进行指令解析,计算出要求的姿态和位置数据,调节 位的ADC,将其测量的模拟量转化为可输出的数字量,并拥有 1024字节的FIFO,有助于降低能耗。同时,在实际操作中,将 ・122・电子世再 ELECTRONICS WO D・技术交渡 PWM的占空比,控制旋翼转速,实现飞行姿态控制。 “(f)= f)+Kr + = +(1) 毒 )at+ { 其中 为比例系数, 为积分系数, 为微分系数, 为积 分时间, 为微分时间,其中比例系数、积分时间和微分时间 由被控过程特性决定;“(f)为经过PID算法后的控制输出量,P( 为目标期望角度与实际测量角度的偏差。 比例控制是指控制器的输出与输入偏差信号P(f)呈比例关系 P),比例系数 ,从而得到比例控制输出如(3)所示。当只存在 比例控制环节,系统存在稳态误差。 “ (f)= ) (3) 为消除稳态误差,引入积分控制。所谓积分控制就是控制器的 输出与输入偏差信号 f)的积分呈比例关系,比例系数为 ,得到积分 图4程序流程图 控制输出如(4)所示。当采样周期足够小的时候,通过数值逼近法,用 偏差的总和来代替积分,得到积分控制输出如(5)所示。积分控制虽可 以有效消除稳态误差,但也降低了系统的动态性能。 3.1姿态解算 姿态解算是根据IMU(陀螺仪、加速度计)数据利用姿态 算法实时更新姿态矩阵,求解出飞行器的姿态角,即vaw(偏 航角)、pitch(俯仰角) ̄Droll(翻滚角)【1o】,从而准确描述飞 n,(f):K r 墨 J・口 (41 (5) , 行器的姿态信息的过程。其核心在于旋转的表示,大多数情况 下会选择方向余弦法、欧拉角法或四元数法来表示旋转。 方向余弦法是利用三角函数与坐标表示飞行器的姿态信 息,计算量大,效率低。欧拉角是利用轴角表示旋转,较为直 观,但存在万向节死锁的缺点[111。四元数法是利用四元数表示 其中功采样时间。 为改善系统的动态性能,引入微分控制。所谓微分控制就 是控制器的输出与输入偏差信号P(f)的微分呈比例关系,比例系 数为 ,得到微分控制输出ON(6)所示。由于偏差P(f)是角度,其 微分为角速率,所以将微分值用陀螺仪测得的角速率w(f)代替, 得到表达式如(7)。 出旋转轴与旋转角。由于其乘积可以表示出三维空间中的任意 伸缩变换,因而计算简单。考虑到姿态解算需要多次进行组合 旋转,所以选择易于操作的四元数法。 如上所述,四元数法就是借助中间变量四元数,把读入的 加速度计值和陀螺仪值(即AD值)转化为姿态控制算法需要的 输入值,由于姿态控制算法的输入参数必须是欧拉角,最后还 需要将四元数转化为欧拉角的形式[J2】。其具体流程如下: 首先是获取四元数,主要有两种获取途径,一种是通过相 应的软件计算读入的AD值得到,另一种是通过主控芯片STM32 直接读出相应的四元数的值。其次,需要借助旋转矩阵将其转 化为欧拉角。姿态矩阵是一个3×3的矩阵【I3】,用来确定旋转物 体中某一点的位置,可用四元数分别表示出绕x、Y和z轴旋转 的坐标旋转矩阵,接着将得到的三次坐标旋转矩阵相乘得到姿 。= =K (f) (7) 最后,将比例控制输出、积分控制输出和微分控制输出相 加,得到输入到四旋翼飞行器中的总控制量“(f),表达式如(8): t (r) 《 ) ) (8) 在本设计中,姿态的解算和控制主要依靠三个欧拉角: yaw、pitch和roll。当每一个角度值得到自己的PID控制量 Uvaw(t)、Upi h(t) ̄nu ,f(f)时,将其与输入的油门基准值进行计算, 并将计算结果输入到四个电机中,由此便可以实现对四旋翼飞 行器的飞行修正与控制。 态矩阵。最后将姿态旋转矩阵转换为欧拉角,得到飞行器实时 姿态并输入到姿态控制算法中。 3.2姿态控制 姿态控制是四旋翼飞行器的关键所在。理论上,当四个旋 翼转速完全相同的情况下,电机1、3正转,2、4反转,所产生 的反扭力矩大小相同,方向相反,便可使飞机平稳飞行,但在 4功能实现 在本设计中开发环境选用Keil uVision 5,主要实现功能如 下:一键起飞与降落、坠机保护。其流程图分别如图5、6所示。 4.1一键起飞与降落 一实际中,四个旋翼无法拥有相同的转速,飞行器便会失衡,因 而需要姿态控制算法。PID控制算法操作简单、理论完善,决 定采用实现对飞行的实时控制。 PID算法是对目标期望角度与上一时刻的状态输出量的偏差 键起飞与降落就是通过遥控器按键的控制,实现四旋翼 键起飞包括如下步骤:解锁,起飞与悬停。由于飞行 e(f)进行比例(P)、积分(I)和微分(D)线性组合构成控制量,输入到 四旋翼飞行器中,得到修正后飞行器下一时刻的状态信息并再次 与目标期望值比较,进行循环运算的过程。其表达式如(1)所示: 飞行器的自动起飞与降落功能。 一器默认飞行模式是定高,当起飞按键触发,设定目标飞行高 屯子世界・123・ ELE QNICS W0RLD・技术交流 度后,飞行器便自动解锁。首先按下按键,将飞行器解锁并记 录当前位置。其次,设定起飞标志,不妨假定目标飞行高度为 问变量。由此实现坠机保护的功能(见图6)。 1米,当飞行器自动解锁后,飞行控制板将给电机传输向上指 令,飞行器将加速上升,当高度达到1米之后,减小电机输出功 率,使得总拉力等于飞行器自身重量,便能让飞行器悬停在空 中,以此实现一键起飞的功能。 一5总结 本文是以STM32系列单片机为核心设计一个四旋翼飞行 器的主要过程。首先介绍了四旋翼飞行器的总体架构和飞行的 键降落包括如下步骤:下降,落地检测与锁定。与一键 基本原理,其次,从硬件设计谈起,详细说明了各个部分的作 用与对应元件的选择。再者,阐释其软件实现的过程,说明了 选择四元数算法作为姿态解算和PID算法作为姿态控制的优与 劣。最后,又创造性提出在Keil uVision 5编程环境下,如何实 起飞类似,在一键降落中,将飞行器的期望高度修改为0米,然 后在达到期望高度后进行落地判断,即判断飞行器各个方向的 加速度是否小于一定的阈值,一旦检测到飞行器已经落地,锁 定即可。首先按下按键,传输给飞行器下降的指令,由于期望 高度为0米,飞控板传输向下指令,减小电机输出功率,使得飞 行器下降。当高度下降到与期望高度值相同时候,通过比较加 速度传感器读取到的加速度值和既定阈值,如果加速度值小于 既定阑值,则判定为落地。最后对飞行器进行一键锁定即可。 ~一\ , ■ 记 多 毽录糯l恕量l一~ 现一些附加功能,如一键起飞与降落,坠机保护等来增加人机 友好。在真正操作中,理论与实际有偏差,若想要达到最佳状 态,需要在实践中不断调试,以求完美。 参考文献 由此便实现一键降落的功能。 【1】程学功四旋翼飞行器的设计与研究【D】.杭州:杭州电子科 技大学,2012,1. 【2】夏夜星语.基于MB9BF121K的四旋翼飞行器设计【D】.郑 州:河南工业大学,2015,6. 【3】裴春祥,刘祉正,赵新鹏等.基于STM32的四旋翼飞行器的 设计U1l电子技术与软件工程,2016,12:119-121. 【4】曹延超.基于sTM32的四旋翼飞行器姿态测量系统设计【I】. 软件,2015,36(1):104—109. 【5】谢义建,陈跃东,舒圣焱.基于STM32的四旋翼飞行器的设 计与实现D1.四川理工学院学报(自然科学版),2014,27(3):42-45. 【6】金薇.基于sTM32的四旋翼飞行器的研究与设计U】山西 电子技术,2016,01:92—93. 图5一键起飞与降落流程图 【7】郭晓鸿,杨忠,杨时顺等.一种基于STM32的四旋翼飞行器 控制器UJ.应用科技,2011,38(7):36—40. 4.2坠机保护 在控制飞行器时,由于控制偏差,经常出现坠机的情况。 如果飞行器坠落时,电机没有及时关闭,不但会导致电机堵转 而烧毁,还可能导致人员误伤等严重后果。因此,飞行控制程 【8】李华贵,李刚,李辉等.基于STM32的四旋翼飞行器的设计 与实现卟仪表技术,2015,05:27—30. 【9】陈海滨,殳国华.四旋翼飞行器的设计U1.实验室与研究,2(}13, 32(3):41—44. 序需要加入一些安全机制,避免意外情况发生,比较常用的方 法是利用姿态传感器判断坠毁,迅速关闭电机。 f10】颜平,王丽丹,李梦柯,等.基于STM32的四旋翼飞行器的 设计与实现UJ_电子设计工程,2016,24(2):187-193. 【11】何川,李智,王勇军.基于STM32的四旋翼飞行器的姿态最 优估计U】.电子技术应用,2015,41(12):61—64. 【12】李文鹏,唐海洋.基于STM32的四旋翼飞行器姿态解算的 研究卟单片机与嵌入式系统应用,2015,41(12):13-16. 【13]nieyong.四元数与四旋翼飞行【I .https://github.com/Crazepony/ crazepony-gitbook/blob/master/wiki/quatemiom.md,2016/10/12. 【14]akuarius’blog.四元数和欧拉角【EB].http://blog.csdn.net/ jinzhichaoshuiping/article/details/42584887,2015,2016/10/1 2. [15】质的飞跃.四旋翼飞行器:PID ̄制算法[EB】http:// 图6坠机保护流程图 jingyan.eeboard.com/article/73872,2014,2016/10/12. 坠机时,飞行控制板得到的数据会有若干异常,比如角度 误差大于一定值且持续一段时间,依据这些异常参数,便可以 作者简介: 郭珊珊,男。研究方向:电路与系统。 编写坠机保护程序。由于roll和pitch的取值范围是.1到l,不妨 假定当角度值大于0.5或.0.5且持续时间大于0.2秒,判断为坠 机,锁定飞行器,关闭电机。当角度恢复正常时,重新复位时 ・124・屯子世界 通信作者:陈华宾,男,研究方向:智能电子仪器。 

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- zrrp.cn 版权所有 赣ICP备2024042808号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务