关键词:四轴飞行器;STM32;MPU6050;蓝牙控制
Abstract: This paper introduces the miniaturization and portability of the STM32 four-axis aircraft. It introduces how to control the MINI quadcopter through the Bluetooth of the mobile phone, and realizes a series of actions such as deflection, pitch, and lift of the MINI four-axis. The fuselage is composed of PCB components integrated with various components, mainly divided into microprocessor module, inertial measurement unit, communication module and power module.
Key words: quadcopter; STM32; MPU6050; Bluetooth control
1 引言
四轴飞行器结构简单,操作灵活,单位体积内可提供巨大的升力,适合在狭窄环境中飞行,携带各种电子设备可执行各种任务,例如军事侦察、定位跟踪、农田监测等,在军事、民用等领域均有广泛的应用和广阔的前景。近年来随着科技的发展,电子元件成本下降,四轴飞行器的小型化、便携化、商业化逐渐成为研究的新方向。
本文设计了一种基于STM32的MINI四轴飞行器控制系统,飞行器的主体由PCB板集成各种元器件组成,以STM32单片机为主控制器,MPU6050为惯性测量单元模块核心,3.7V锂电池供电,通过蓝牙模块HC-05,实现了手机APP控制四轴飞行器的飞行姿态。
2 飞行原理
与传统的固定翼飞行器相比,四轴飞行器的飞行原理相对复杂。四轴飞行器又名四旋翼飞行器,顾名思义,机身由四个旋翼驱动,即电机带动螺旋桨驱动。机身大多设计为x型,螺旋桨均匀分布在机身四角,通过改变四个螺旋桨的旋转速度,实现机身的俯仰,转向等。电机运作时,螺旋桨会产生两个力,一个是升力,一个是与螺旋桨转向相反的反扭矩。反扭矩会使飞行器沿着螺旋桨旋转的方向自旋,为了抵消反扭矩,通常相邻的螺旋桨旋转方向相反。具体飞行原理如图1所示。
图1 四轴飞行原理图
以x型四轴飞行器飞行方式为例,四个电机依次编号为1号、2号、3号、4号。
当飞行器自稳定后,1号、2号、3号、4号电机同等加速即为飞行器垂直上升;1号、2号、3号、4号电机同等减速即为飞行器垂直降落。
当飞行器自稳定后,1号、2号电机同等减速,3号、4号电机同等加速,即为飞行器前倾;1号、2号电机同等加速,3号、4号电机同等减速,即为飞行器后倾。
当飞行器自稳定后,1号、3号电机同等减速,2号、4号电机同等加速,即为飞行器左倾;1号、3号电机同等加速,2号、4号电机同等减速,即为飞行器右倾。
当飞行器自稳定后,1号、4号电机同等减速,2号、3号电机同等加速,即为飞行器顺时针运动;1号、4号电机同等加速,2号、3号电机同等减速,即为飞行器逆时针运动。
3 总体方案设计
四轴飞行器一般由电机、电调、电池、机架、飞控、遥控、螺旋桨等组成,其中最核心的就是四轴飞行器的飞控。本设计中讨论的MINI四轴飞行器的机身由PCB板集合各电子元件构成,即机身的主体就是一块完整的飞控,能够有效的减少体积,减轻质量。机身PCB文件如图2所示。
图2 MINI四轴机身PCB
MINI四轴飞行器硬件方面由惯性测量单元,微处理器模块,通信模块,动力模块等组成。当飞行器启动后,各模块完成初始化,微处理器读取惯性测量单元模块数据,滤波之后计算出相对水平面的欧拉角,判断自身姿态。同时蓝牙模块HC-05实时接收APP内发出的命令指令,将采集到的各数据通过PID控制得到四路PWM波,输出四路PWM信号控制四个电机的转速,实现飞行器姿态的控制。设计结构框图如图3所示。
图3 设计结构框图
4 系统硬件设计与实现
硬件系统的微处理器选用STM32F103C8T6,惯性测量单元选用MPU6050,通信模块选用HC-05和手机端APP连接通信,动力模块选用电机和电调,以3.7V,350mh的锂电池进行供电。
4.1 微处理器模块
采用STM32F103C8T6作为微控制器,STM32F103C8T6是基于CORTEX-M3内核的芯片,CPU频率高达72MHz,拥有128K字节的内置闪存存储器,20K字节的内置SRAM。内置嵌套的向量式中断控制器,能够处理多达43个可屏蔽中断通道和16个优先级,外部中断/事件控制器包含19个边沿检测器,用于产生中断/事件请求,每个中断线都可以独立地配置。该芯片的配置十分强悍,具有卓越的性能。相较于其他型号单片机,STM32拥有更多的接口,更强的数据处理能力,优化完善,资料丰富,更适合作为四轴飞行器的微控制器。图4为STM32控制芯片电路图。
图4 STM32控制芯片电路图
4.2 惯性测量单元模块
惯性测量单元模块采用MPU6050为核心,MPU6050是Invensense公司生产的市场上第一款集成了陀螺仪的6轴芯片加速度计,通过内部3轴加速度计和3轴陀螺仪可以测量3轴加速度和3轴角速度。图5为MPU6050芯片电路图。
图5 MPU6050芯片电路图
MPU6050数据传输可通过最高至400kHz的I2C总线完成,数据传输高效快速。元件封装尺寸仅为4mm*4mm *0.9mm(QFN),能够有效的减少体积。同时具有高达10000GHz的碰撞容忍度,避免飞行器在升降、携带、运输过程中损坏,影响飞行精度。MPU6050内部含有数字运动处理器DMP,它可以直接在传感器内部直接将姿态信息以四元数的形式输出,微处理器获得四元数后可直接转换成欧拉角,简化了芯片操作,有利于数据处理。
4.3 通信模块
通信模块由两部分组成,分别是机身上的蓝牙模块HC-05和手机端APP。HC-05采用基于Bluetooth Specification V2.0蓝牙协议,通用性较强,适用于大多数工业数传,智能机自带蓝牙扫描功能,可直接与智能机实现通讯。手机端APP可采用任意一款开源的四轴控制软件,也可自己编写。图6为手机控制端APP显示画面。预先在微处理器中烧录握手程序后,HC-05和手机APP自动连接,HC-05接收手机APP发送的姿态命令数据后,将数据传送至微处理器STM32。数据采集和数据传递实时更新。
图6 手机控制端APP显示画面
4.4 动力模块
动力模块主要由电源,电机,螺旋桨和电调组成。飞行器为提高续航能力,需尽量减轻自身重量。为达到节省体积减少重量的目的,应该选择锂电池为飞行器电源,该类电池体积小,容量大,重量轻,无记忆效应,适合微型四轴使用。电调可将来自飞控的控制信号转换为电信号,通过改变电流的大小控制各个电机的转速,电机带动桨叶,飞行器获得动力并且实现飞行器的姿态变化。图7为电机控制电路图。
图7 电机控制电路图
5 系统软件设计
程序可分为多个模块编写,主要有:系统初始化模块、姿态计算模块、信号收发模块、PID电机控制模块。其中比较关键的是PID电机控制模块,P是比例环节,I是积分环节,D是微分环节。控制过程如图8所示。
图8 PID电机控制流程图
因为控制处理器采样控制是根据时刻偏差值计算的,得到的是离散式数据,所以可用求和形式代替连续时间积分形式,用增量形式代替连续时间微分形式,数据处理相对容易。
PID_ROL.pout = PID_ROL.P * rol;然而在只考虑角度的情况下,控制效果并不理想,在这里引入角度和角速度,采用串级PID控制,双环控制使飞行器稳定性更强,控制更灵敏。结合PID原理可写出电机控制程序,其中Pitch为俯仰角、Roll为横滚角、Yaw为偏航角,throttle为电机值,最后得到的moto值输送到PWM波占空比控制程序,进而控制电机,代码如下。
PID_PIT.pout = PID_PIT.P * pit;
PID_YAW.pout = PID_YAW.P * yaw;
PID_ROL.iout += PID_ROL.I * rol;
PID_PIT.iout += PID_PIT.I * pit;
PID_PIT.iout += PID_PIT.I * pit;
PID_ROL.dout = PID_ROL.D * MPU6050_GYRO_LAST.X;
PID_PIT.dout = PID_PIT.D * MPU6050_GYRO_LAST.Y;
PID_YAW.dout = PID_YAW.D * yaw_d;
PID_ROL.OUT = PID_ROL.pout + PID_ROL.iout + PID_ROL.dout;
PID_PIT.OUT = PID_PIT.pout + PID_PIT.iout + PID_PIT.dout;
PID_YAW.OUT = PID_YAW.pout + PID_YAW.iout + PID_YAW.dout;
moto1 = throttle - PID_ROL.OUT - PID_PIT.OUT + PID_YAW.OUT;
moto2 = throttle - PID_ROL.OUT + PID_PIT.OUT - PID_YAW.OUT;
moto3 = throttle + PID_ROL.OUT - PID_PIT.OUT - PID_YAW.OUT;
moto4 = throttle + PID_ROL.OUT + PID_PIT.OUT + PID_YAW.OUT;
6 系统测试
插上电池接口,将飞行器置于水平地面上,此时飞控上面有绿色和蓝色指示灯闪烁。蓝色指示灯为蓝牙状态指示,闪烁时表明没有与手机蓝牙连接,常亮时表明已与手机蓝牙连接。当飞行器与手机APP完成对接之后,绿色指示灯常亮,表示随时可以执行手机APP指令。缓缓推动手机APP上的油门按钮即可起飞。飞行效果如图9所示。
图9 飞行效果图
7 结论
本设计采用STM32单片机实现了四轴飞行器的控制要求。电路设计简单,体积小,成本低,控制灵活,无需配备特制遥控器,便于携带。并且可外接各种传感器,数据处理能力强,可玩性高,有一定的研究和市场应用价值。
参考文献:
[1] 吴勇. 四轴飞行器DIY:基于STM32微控制器[M]. 北京航空航天大学出版社, 2016.
[2] 宋楹, 尤晓萍. 基于STM32微型四轴无人机的设计与实现[J].辽宁科技大学学报, 2017, 40(2):148-154.
[3] 聂博文,马宏绪, 王剑.微小型四旋翼飞行器的研究现状与关键技术[J].电光与控制, 2007, 14(6):113-117.
[4] 李尧. 四旋翼飞行器控制系统设计[D].大连:大连理工大学, 2013.
[5] 王璐. 四旋翼无人飞行器控制技术研究[D].哈尔滨:哈尔滨工程大学, 2012.
[6] 庞庆霈. 四旋翼飞行器设计与稳定控制研究[D].合肥:中国科学技术大学,2011.
[7] 张永振.四轴无人机自动驾驶仪设计及控制方法研究[D].天津大学, 2017.
[8] 程学功. 四轴飞行器的设计与研究[D].杭州:杭州电子科技大学, 2012.
共0条 [查看全部] 网友评论