开启辅助访问 切换到窄版

打印 上一主题 下一主题

期刊选集|基于STM32的MINI四轴飞行器控制系统设计

[复制链接]
作者:295255980 
版块:
MCU单片机技术 stm 发布时间:2020-1-15 17:04:36
10870
楼主
跳转到指定楼层
| 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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控制器调整后输出电压控制信号为,计算公式如下所示。

因为控制处理器采样控制是根据时刻偏差值计算的,得到的是离散式数据,所以可用求和形式代替连续时间积分形式,用增量形式代替连续时间微分形式,数据处理相对容易。
然而在只考虑角度的情况下,控制效果并不理想,在这里引入角度和角速度,采用串级PID控制,双环控制使飞行器稳定性更强,控制更灵敏。结合PID原理可写出电机控制程序,其中Pitch为俯仰角、Roll为横滚角、Yaw为偏航角,throttle为电机值,最后得到的moto值输送到PWM波占空比控制程序,进而控制电机,代码如下。
PID_ROL.pout = PID_ROL.P * rol;
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_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单片机实现了四轴飞行器的控制要求。电路设计简单,体积小,成本低,控制灵活,无需配备特制遥控器,便于携带。并且可外接各种传感器,数据处理能力强,可玩性高,有一定的研究和市场应用价值。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表