论文部分内容阅读
摘 要 四轴飞行器是一种小型的飞行器平台,其控制系统的核心是STM32单片机,具有性价比高、功能强大等特点,基于STM32的飞行器具有十分广泛的用途。因此,本文就基于STM32四轴飞行器的设计进行了相关介绍,主要内容包括四轴飞行器的动力学分析、基于STM32四轴飞行器的总体设计方案与程序设计以及电子硬件电路与软件程序
调试。
关键词 四轴飞行器;STM32单片机;电子硬件电路
中图分类号 V2 文献标识码 A 文章编号 2095-6363(2017)17-0061-02
四轴飞行器由于其体积小、飞行高度与速度较低、飞行状态平稳、灵活等特点,在空间狭小的作业区域具有较高的应用优势。在实际生活当中,四轴飞行器常被应用与火灾现场探明险情或高层搜救当中;在地震等灾害导致通讯中断的情况下,也可借由四轴飞行器作为空中通讯中转。四轴飞行器在设计过程中存有很多的技术难点,需要对其实际使用过程中受到的物理效应、气流与环境的干扰等进行重点考量,才能更好地实现其应用价值。
1 四轴飞行器的动力学分析
四轴飞行器能够实现的飞行运动包括爬升、横滚调节、下降、俯仰调节、偏航调节,本文选用的四轴飞行器外形呈现为“X”型(如图1所示),电机就安装在“X”的四个角上。在设计过程中,为避免4个电机同向转动时发生自旋运动,安装时要保证对角电机的转动方向相同,相邻的电机转动方向
相反。
关于电机的输出功率,若其提供的升力大于飞行器本身的自重,则飞行器能够垂直升起;若要飞行器降落,则要保持飞行器的输出功率持续降低。当相邻两个电机的输出功率大于或小于另外两个电机的输出功率时飞行器就能进行向指定方向运动。若减小对角两个电机的输出功率,同时增加另外两个电机的输出功率,则飞行器能够完成偏航
运动。
2 基于STM32四轴飞行器的总体设计方案
2.1 飞行器设计方案
基于STM32四轴飞行器的控制器即为STM32单片机,在接收到PC端由蓝牙发送的控制或调试指令后,可通过ⅡC接口设置MPU6050传感器,并将传感器的输出设定为DMP的输出模式。MPU6050传感器的作用就是感受四轴飞行器在飞行过程中的飞行姿态信息,为STM32通过计算得出具体飞行姿态提供重要的解算数据,STM32的解算过程采用的是串级PID算法;通过计算得出的PWM信号被进一步输送至电调,而电调在接收到信号指令后就会控制4个电机的转动,实现对四軸飞行器的飞行姿态调整,保证四轴飞行器达到并维持平衡飞行的状态。
2.2 飞行器硬件电路的设计
基于STM32四轴飞行器的硬件电路设计,需要包含以下电路内容:STM32最小系统电路与电源供电电路、MPU6050传感器电路、电机驱动电路以及蓝牙接口电路。其中的STM32最小系统电路在设计时应确保复位电路、晶振电路、JTAG配置电路设计完全,该电路设计的主要作用就是确保STM32控制器能够正常运行,此种电路设计是最简化的电路
形式[1]。
电源供电电路的设计。本文所选用的基于STM32四轴飞行器的正常运行,只需3.3V的一路恒压电源,且运行时消耗的功率极小。STM32控制系统中的电源供电电路芯片为AMS1117,电路输出的3.3V电压只需供给MPU6050传感器、STM32控制器以及JTAG配置
电路。
传感器电路的设计。MPU6050传感器电路的主要作用就是获取四轴飞行器的飞行姿态信息数据,并将其提供给STM32控制器。传感器通过信号传输的方式获取的数据信息,能够辅助STM32控制器完成对电机转速的控制,确保飞行稳定。
电机驱动电路的设计。电机驱动电路即是电机接口电路,其结构主要包括电调与电机两部分,主要的功能是传输由STM32控制器发出的PMW信号至电调,电调再进一步控制飞行器的电机运转,确保飞行器的稳定
运行。
蓝牙接口电路的设计。在调试程序的过程中,需要对飞行器的反馈数据进行详细观察,一般来说,采用串口进行数据观察需要使用连接线,不适用于飞行器这种动态设备,蓝牙接口电路这种无线调试方式更加便捷。蓝牙模块在设计时,芯片采用HC-05型号,用于上位机与STM32控制器中间的调试,其设计实质是串口通信
方式。
3 基于STM32四轴飞行器的程序设计
3.1 遥控程序设计
遥控程序的设计采用模块化的设计方式,STM32控制器的编程有两种方式,一种是寄存器操作,另一种是库操作。其中,寄存器操作的形式具有执行效率高、可读性差的特点;而库操作的应用适用性更强,在编程之前,需要优先将STM32控制器的库函数添加到工程当中,与此同时还应做好时钟、GPIO等基本配置。STM32控制器在执行程序的过程中,执行顺序为由上到下逐条执行,因此在进行模块设计时应注意其分布的条理性。遥控程序模块设计流程如下:RCC初始化、GPIO初始化、TFT初始化、无限模块初始化串口初始化;遥感数据采集;发送控制信号;接收姿态信息;刷新TFT显示数据;重复刷新TFT显示数据;将显示数据通过串口输送至PC端;重复进行遥感数据采集及以下
流程。
3.2 飞控程序设计
飞控程序的设计与遥控程序设计的初始化部分具有诸多相似之处,区别在于后续控制部分,飞控程序的控制相较之下更为复杂,对四轴飞行器的设计实现具有很大的影响作用。在进行飞控程序设计的过程中,需要设计人员了解并熟练掌握较多程序算法,如姿态解算、传感器的滤波算法、PID控制算法等;其中的滤波算法又能够细分出多种类别,如卡尔曼滤波、融合滤波、融合滤波等;姿态解算的核心算法是四元素与欧拉角等。在STM32控制器的软件编程过程中,部分可采用C语言进行,主要作用就是完成初始化数据的采集、遥控信号解码以及电机控制姿态角解 算等[2]。
3.3 串口与MPU6050传感器的中断子程序设计
串口与MPU6050传感器中断部分的作用主要是进行MPU6050传感器传输数据的处理,将数据信息传送至STM32控制器当中进行相应的输出脉宽计算,并对最终的输出脉宽进行输出限幅与输出给电调,有效控制飞行器的四个电机的正常运行,从而确保飞行器的稳定飞行。在串口中断子程序当中,程序设计核心为对帧头与帧尾、冗余校验的正确性进行
判断。
4 电子硬件电路与软件程序的调试
电子硬件电路的调试需要先对遥控器进行调试。首先,应对电路板是否能够进行正常工作进行确认,主要的做法如下:首先要写一个相对简单的程序,该程序能够让电路板上的指示灯闪烁,若电路板上的指示灯能够正常闪烁且能够正常下载程序,则说明电路板主控结构正常,能够继续进行下一步的硬件调试确认,直到最终全部完成整体硬件电路的调试
工作[3]。
在软件程序编写完成之后,针对遥控器与飞行控制板要进行严格的调试工作。在基于STM32四轴飞行器的设计中,对遥控器与飞行控制板的调试工作是一个难点部分,将飞行控制板在四轴飞行器的机架位置固定好,并将其余零部件全部进行组装。在飞行器组装完成后,不能直接进行试飞操作,而是要将飞行器处于悬停状态进行观察,这主要是由于软件程序编写可能存在缺陷,直接试飞可能造成飞行器损坏。打开飞行器与遥控器之后,在飞行器处于悬停状态下进行观察,依据实际现象进一步修改PID参数,通过不断的调试、修改,当达到标准的参数结果后,预期控制目的得以实现,则整机调试工作结束。
5 结论
综上所述,对基于STM32四轴飞行器的设计分析,有利于提升四轴飞行器的使用性能与应用范围。通过相关设计,能够更好的实现四周飞行器爬升、横滚调节、下降、俯仰调节、偏航调节等飞行形式,从而提升其在实际救援等活动中的适用性,提升其应用价值。因此,要不断深入研究基于STM32四轴飞行器的相关设计优化,同时为其他类型的多軸飞行器的设计与研发提供有效的设计参考。
参考文献
[1]李润宁,缪月琴,巫俊灵,等.基于STM32的四轴飞行器遥控与智能防撞设计[J].智能计算机与应用,2016,6(2):29-30.
[2]王康,董洁,王强.基于STM32的四轴飞行器语音控制设计与实现[J].工业控制计算机,2016,29(5):90-92.
[3]王东平.基于嵌入式的四轴飞行器控制系统研究与设计[D].泉州:华侨大学,2013.
调试。
关键词 四轴飞行器;STM32单片机;电子硬件电路
中图分类号 V2 文献标识码 A 文章编号 2095-6363(2017)17-0061-02
四轴飞行器由于其体积小、飞行高度与速度较低、飞行状态平稳、灵活等特点,在空间狭小的作业区域具有较高的应用优势。在实际生活当中,四轴飞行器常被应用与火灾现场探明险情或高层搜救当中;在地震等灾害导致通讯中断的情况下,也可借由四轴飞行器作为空中通讯中转。四轴飞行器在设计过程中存有很多的技术难点,需要对其实际使用过程中受到的物理效应、气流与环境的干扰等进行重点考量,才能更好地实现其应用价值。
1 四轴飞行器的动力学分析
四轴飞行器能够实现的飞行运动包括爬升、横滚调节、下降、俯仰调节、偏航调节,本文选用的四轴飞行器外形呈现为“X”型(如图1所示),电机就安装在“X”的四个角上。在设计过程中,为避免4个电机同向转动时发生自旋运动,安装时要保证对角电机的转动方向相同,相邻的电机转动方向
相反。
关于电机的输出功率,若其提供的升力大于飞行器本身的自重,则飞行器能够垂直升起;若要飞行器降落,则要保持飞行器的输出功率持续降低。当相邻两个电机的输出功率大于或小于另外两个电机的输出功率时飞行器就能进行向指定方向运动。若减小对角两个电机的输出功率,同时增加另外两个电机的输出功率,则飞行器能够完成偏航
运动。
2 基于STM32四轴飞行器的总体设计方案
2.1 飞行器设计方案
基于STM32四轴飞行器的控制器即为STM32单片机,在接收到PC端由蓝牙发送的控制或调试指令后,可通过ⅡC接口设置MPU6050传感器,并将传感器的输出设定为DMP的输出模式。MPU6050传感器的作用就是感受四轴飞行器在飞行过程中的飞行姿态信息,为STM32通过计算得出具体飞行姿态提供重要的解算数据,STM32的解算过程采用的是串级PID算法;通过计算得出的PWM信号被进一步输送至电调,而电调在接收到信号指令后就会控制4个电机的转动,实现对四軸飞行器的飞行姿态调整,保证四轴飞行器达到并维持平衡飞行的状态。
2.2 飞行器硬件电路的设计
基于STM32四轴飞行器的硬件电路设计,需要包含以下电路内容:STM32最小系统电路与电源供电电路、MPU6050传感器电路、电机驱动电路以及蓝牙接口电路。其中的STM32最小系统电路在设计时应确保复位电路、晶振电路、JTAG配置电路设计完全,该电路设计的主要作用就是确保STM32控制器能够正常运行,此种电路设计是最简化的电路
形式[1]。
电源供电电路的设计。本文所选用的基于STM32四轴飞行器的正常运行,只需3.3V的一路恒压电源,且运行时消耗的功率极小。STM32控制系统中的电源供电电路芯片为AMS1117,电路输出的3.3V电压只需供给MPU6050传感器、STM32控制器以及JTAG配置
电路。
传感器电路的设计。MPU6050传感器电路的主要作用就是获取四轴飞行器的飞行姿态信息数据,并将其提供给STM32控制器。传感器通过信号传输的方式获取的数据信息,能够辅助STM32控制器完成对电机转速的控制,确保飞行稳定。
电机驱动电路的设计。电机驱动电路即是电机接口电路,其结构主要包括电调与电机两部分,主要的功能是传输由STM32控制器发出的PMW信号至电调,电调再进一步控制飞行器的电机运转,确保飞行器的稳定
运行。
蓝牙接口电路的设计。在调试程序的过程中,需要对飞行器的反馈数据进行详细观察,一般来说,采用串口进行数据观察需要使用连接线,不适用于飞行器这种动态设备,蓝牙接口电路这种无线调试方式更加便捷。蓝牙模块在设计时,芯片采用HC-05型号,用于上位机与STM32控制器中间的调试,其设计实质是串口通信
方式。
3 基于STM32四轴飞行器的程序设计
3.1 遥控程序设计
遥控程序的设计采用模块化的设计方式,STM32控制器的编程有两种方式,一种是寄存器操作,另一种是库操作。其中,寄存器操作的形式具有执行效率高、可读性差的特点;而库操作的应用适用性更强,在编程之前,需要优先将STM32控制器的库函数添加到工程当中,与此同时还应做好时钟、GPIO等基本配置。STM32控制器在执行程序的过程中,执行顺序为由上到下逐条执行,因此在进行模块设计时应注意其分布的条理性。遥控程序模块设计流程如下:RCC初始化、GPIO初始化、TFT初始化、无限模块初始化串口初始化;遥感数据采集;发送控制信号;接收姿态信息;刷新TFT显示数据;重复刷新TFT显示数据;将显示数据通过串口输送至PC端;重复进行遥感数据采集及以下
流程。
3.2 飞控程序设计
飞控程序的设计与遥控程序设计的初始化部分具有诸多相似之处,区别在于后续控制部分,飞控程序的控制相较之下更为复杂,对四轴飞行器的设计实现具有很大的影响作用。在进行飞控程序设计的过程中,需要设计人员了解并熟练掌握较多程序算法,如姿态解算、传感器的滤波算法、PID控制算法等;其中的滤波算法又能够细分出多种类别,如卡尔曼滤波、融合滤波、融合滤波等;姿态解算的核心算法是四元素与欧拉角等。在STM32控制器的软件编程过程中,部分可采用C语言进行,主要作用就是完成初始化数据的采集、遥控信号解码以及电机控制姿态角解 算等[2]。
3.3 串口与MPU6050传感器的中断子程序设计
串口与MPU6050传感器中断部分的作用主要是进行MPU6050传感器传输数据的处理,将数据信息传送至STM32控制器当中进行相应的输出脉宽计算,并对最终的输出脉宽进行输出限幅与输出给电调,有效控制飞行器的四个电机的正常运行,从而确保飞行器的稳定飞行。在串口中断子程序当中,程序设计核心为对帧头与帧尾、冗余校验的正确性进行
判断。
4 电子硬件电路与软件程序的调试
电子硬件电路的调试需要先对遥控器进行调试。首先,应对电路板是否能够进行正常工作进行确认,主要的做法如下:首先要写一个相对简单的程序,该程序能够让电路板上的指示灯闪烁,若电路板上的指示灯能够正常闪烁且能够正常下载程序,则说明电路板主控结构正常,能够继续进行下一步的硬件调试确认,直到最终全部完成整体硬件电路的调试
工作[3]。
在软件程序编写完成之后,针对遥控器与飞行控制板要进行严格的调试工作。在基于STM32四轴飞行器的设计中,对遥控器与飞行控制板的调试工作是一个难点部分,将飞行控制板在四轴飞行器的机架位置固定好,并将其余零部件全部进行组装。在飞行器组装完成后,不能直接进行试飞操作,而是要将飞行器处于悬停状态进行观察,这主要是由于软件程序编写可能存在缺陷,直接试飞可能造成飞行器损坏。打开飞行器与遥控器之后,在飞行器处于悬停状态下进行观察,依据实际现象进一步修改PID参数,通过不断的调试、修改,当达到标准的参数结果后,预期控制目的得以实现,则整机调试工作结束。
5 结论
综上所述,对基于STM32四轴飞行器的设计分析,有利于提升四轴飞行器的使用性能与应用范围。通过相关设计,能够更好的实现四周飞行器爬升、横滚调节、下降、俯仰调节、偏航调节等飞行形式,从而提升其在实际救援等活动中的适用性,提升其应用价值。因此,要不断深入研究基于STM32四轴飞行器的相关设计优化,同时为其他类型的多軸飞行器的设计与研发提供有效的设计参考。
参考文献
[1]李润宁,缪月琴,巫俊灵,等.基于STM32的四轴飞行器遥控与智能防撞设计[J].智能计算机与应用,2016,6(2):29-30.
[2]王康,董洁,王强.基于STM32的四轴飞行器语音控制设计与实现[J].工业控制计算机,2016,29(5):90-92.
[3]王东平.基于嵌入式的四轴飞行器控制系统研究与设计[D].泉州:华侨大学,2013.