基于STM32的四轴飞行器飞控系统设计※

2015-07-03 03:33常国权戴国强
单片机与嵌入式系统应用 2015年2期
关键词:飞控摇杆原理图

常国权,戴国强

(安阳工学院 计算机科学与信息工程学院,安阳455000)

引 言

四轴飞行器是一种结构紧凑、飞行方式独特的垂直起降式飞行器,与普通飞行器相比,具有结构简单、故障率低和单位体积能够产生更大升力等优点,所以在军事和民用多个领域都有广阔的应用前景,非常适合在狭小空间内执行任务。

本设计利用惯性测量单元(IMU)姿态获取技术、PID电机控制算法、2.4G无线遥控通信技术和高速空心杯直流电机驱动技术来实现简易的四轴飞行器。整个系统的设计包括飞控部分和遥控部分,飞控部分采用机架和控制核心部分一体设计增强系统稳定性,遥控部分采用模拟摇杆操作输入使操作体验极佳,两部分之间的通信采用2.4G无线模块保证数据稳定传输。飞行控制板采用STM32作为处理器,采用含有3轴陀螺仪、3轴加速度计的运动传感器 MPU6050作为惯性测量单元,通过2.4G无线模块和遥控板进行通信,最终使用PID控制算法通过PWM方式驱动空心杯电机来实现遥控目标。

1 系统总体设计

系统硬件设计主要分为遥控板和飞控板两个部分,遥控板采用常见羊角把游戏手柄的外形设计,控制输入采用四向摇杆,无线数据传输采用2.4G无线模块;飞控板采用控制处理核心和机架一体的设计。系统软件设计同样包括遥控板和飞控板两部分的工作,遥控板软件的设计主要包括ADC的采集和数据的无线发送。飞控板软件的设计主要包括无线数据的接收、自身姿态的实时结算、电机PID增量的计算和电机的驱动。整个四轴飞行器系统包括人员操作遥控端和飞行器控制端,遥控端主控制器STM32通过ADC外设对摇杆数据进行采集,把采集到的数据通过2.4G无线通信模块发送至飞控端。飞控板的主要工作就是通过无线模块进行控制信号的接收,并且利用惯性测量单元获得实时系统加速度和角速度原始数据,并且解算出当前的系统姿态,然后根据遥控板发送的目标姿态和当时的姿态差计算出PID电机增量,最后通过PWM驱动电机进行系统调整来实现飞行器的稳定飞行。系统的总体设计框图如图1所示。

2 四轴飞行器的硬件设计

2.1 主控单元选择

图1 系统总体设计框图

从成本和性能方面综合考虑,飞控板和遥控板的主控单元都采用意法半导体公司的增强型高速单片机STM32F103作为主控制器,STM32F103基于32位的ARM Cortex-M3内核,稳定工作频率可达72 MHz,拥有从64 KB到128 KB的闪存可选程序存储器,20 KB的SRAM,2个12位模数转换器,16个输入通道,7通道DMA控制器,80个快速I/O端口,串行单线调试(SWD)和JTAG接口调试模式,7个定时器,2个I2C接口(支持SMBus/PMBus),3个 USART接口(支持ISO7816接口,LIN,Ir DA接口和调制解调控制),2个SPI接口(18 Mb/s),CAN接口(2.0B主动),USB2.0全速接口。主控单元原理图如图2所示。

图2 主控单元原理图

2.2 飞控板电路设计

飞控板的核心设计是MPU6050惯性测量传感器、nRF2401无线模块以及飞控板电机驱动等模块的设计。惯性测量单元采用MPU6050作为测量传感器,驱动方式采用I2C接口,时钟引脚SCL连接到STM32F103的PB10,数据引脚连接到STM32F103的PB11,数据中断引脚连接到PB5,为了增强驱动能力在每个引脚上都加入了10 kΩ的上拉电阻,飞控板惯性测量单元原理图如图3所示。

图3 飞控板惯性测量单元原理图

飞控系统采用3.7 V高放电倍率锂电池进行供电。主控芯片供电部分和IMU传感器部分采用各自独立的LDO进行供电,这样确保了系统的稳定性和IMU传感器数据采集的准确性。飞控板电源稳压原理图如图4所示。

飞控板与遥控板数据的通信采用的是基于2.4 G频段的nRF2401模块,确保了数据的稳定传输。STM32F103的SPI1外设对2.4G模块进行驱动操作,引脚的连接如表1所列。

nRF2401为采用3.3 V供电的无线模块,采用与单片机相同的电源网络对其供电,同时加入0.1μF电容进行滤波确保模块正常工作,无线模块的具体原理图连接略——编者注。

飞控板的驱动系统采用4个分布对称十字交叉的高速空心杯电机,电机的驱动开关部分采用N沟道增强型场效应晶体管进行控制,通过修改STM32F103对应引脚上的PWM信号进行开关MOS管实现电机运行开与关,从而实现电机运转速度的调节。电机1、2、3、4分别采用STM32 F103的定时器2的通道0、通道1、通道2和通道3的PWM进行控制。电机1的控制端连接PA0,电机2的控制端采用PA1,电机2的控制端采用PA2,电机3的控制端采用PA3控制,电机的驱动原理图略——编者注。

2.3 遥控板电路设计

遥控板主控单元通过SPI总线驱动2.4G无线模块,通过8位并口驱动1602液晶显示,通过ADC输入引脚对摇杆和电池电量进行采集,通过引脚驱动三极管开关驱动蜂鸣器提示。遥控板的核心设计是摇杆模拟数据采集模块、nRF2401无线模块等。

图4 飞控板电源稳压原理图

表1 飞控板无线模块接线表

使用STM32F103单片机ADC1的通道4、通道5、通道6和通道7进行摇杆模拟数据采集并转换为数字量,分别连接到PA4、PA5、PA6和PA7引脚,并且加入滤波电容减少杂质信号的影响。遥控板摇杆输入原理图略——编者注。

遥控板nRF2401模块的驱动用STM32 F103的自带外设SPI2进行驱动,各个功能引脚的连接如表2所列。

表2 遥控板无线模块接线表

nRF2401模块采用3.3 V供电,在供电端口加0.1μF滤波存储电容确保无线系统的稳定性,具体原理图略——编者注。

3 四轴飞行器的软件设计

四轴飞行器的软件设计主要包括飞控板软件的设计和遥控板软件的设计。整体软件在MDK环境下采用C语言编写,采用ST-LINK仿真器对程序进行调试与下载。

3.1 飞控板系统软件设计

飞控程序的主要设计思想是,开机初始化无线模块、MPU6050和PWM电机,随后对整个系统IMU进行零偏处理,然后等待解锁信息的传入。飞控采用定时器中断方式,在中断中进行对时间的处理,每次中断计次标志就会自增,根据不同的中断积累分别处理优先级不同的任务。飞控系统程序设计流程图如图5所示。

图5 飞控系统程序设计流程图

飞控系统每0.5 ms中断一次,每次中断都会检查一次无线模块数据的接收,确保飞控系统控制信息的实时性。每两次中断(即1 ms)读取一次IMU单元的数据,通过滤波算法获得较为准确的系统加速度、角速度的原始数据。每4次中断(即2 ms)通过IMU的原始数据计算当前飞控板系统的姿态,然后结合遥控端的目标姿态,根据两者的差值通过PID控制算法进行对各个电机的调速控制。每200次中断(即100 ms),飞控系统会采集一次电池电压,然后把电池电压发送给遥控板,用来告知操作人员当前电压的大小。

MPU6050是整个系统正常运行的基础。MPU6050的驱动总线为I2C方式,为了程序的方便本系统选用PB10和PB11模拟I2C总线来驱动。IMU读取出来的数据只是最简单的加速度、陀螺仪角速度的原始数据,需要通过进一步的处理才能得到系统想要的姿态角度。飞控板姿态结算流程图略——编者注。

根据处理过后的MPU数据来获得当前的姿态,具体的姿态获取理论上是根据各个角度的积分得到当前的系统姿态欧拉角。本系统采用四元数算法对MPU6050滤波后的数据进行计算,得到最终的欧拉角。

整个飞控系统的运行动作是通过调整飞控姿态来实现的,本系统在当前姿态的基础上,根据接收到的遥控器的目标姿态对空心杯电机进行基于PID算法的PWM控制调速,从而实现飞控系统的各种基本运动。飞控板会对系统惯性测量单元传感器的原始数据进行滤波,然后对滤波后的数据进行实时结算,最后根据遥控板发送来的目标信息计算出电机的控制增量,并根据PID控制算法对电机进行控制输出,飞控姿态控制流程图略——编者注。

3.2 遥控板系统软件设计

遥控板的作用就是把操作人员的操作动作转化成信号传给飞行控制板,同时将一些控制信息和飞控板传回来的信息进行实时的显示和处理。飞控板摇杆数据的采集用到了STM32F103的ADC功能,每个ADC共用16个外部通道,实现单次或扫描转换,而且STM32F103的ADC可以采用DMA通道,这样可以进一步地节省硬件资源,加快系统实时性。采用SPI1驱动nRF2401无线模块,实现与飞控板的数据通信,遥控板系统软件流程如图6所示。

图6 遥控板软件流程图

本系统采用STM32F103的ADC1的通道4、通道5、通道6和通道7进行摇杆模拟数据采集,ADC和DMA的配置代码略——编者注。ADC和DMA的启动和功能代码略——编者注。

结 语

本文描述了一个简易四轴飞行器系统的设计实现,整个方案分为遥控控制板和飞行控制板两部分,通过2.4G无线模块进行控制通信,飞控系统采用IMU获取姿态信息,根据反馈控制算法进行电机控制从而实现飞行控制。飞控板采用一体设计使得系统简单、紧凑,遥控板采用摇杆输入使系统控制体验良好,最终实现飞行器的基本运动。实践证明,该四轴飞行器飞行稳定、可靠,取得了较好的效果。

编者注:本文为期刊缩略版,全文见本刊网站www.mesnet.com.cn。

[1]李尧.四旋翼飞行器控制系统设计[D].大连:大连理工大学,2013.

[2]谭浩强.C程序设计教程[M].北京:清华大学出版社,2010.

[3]刘火良.STM32库开发实战指南[M].北京:机械工业出版社,2013.

[4]白志刚.自动调节系统解析与PID整定[M].北京:化学工业出版社,2012.

[5]朱君.四旋翼无人飞行器控制系统设计及控制方法研究[D].内蒙古:内蒙古科技大学,2012.

[6]曾勇.四旋翼飞行器容错控制系统设计与实现[D].成都:电子科技大学,2013.

[7]宋佳佳.小型四旋翼飞行器实验平台设计[D].武汉:华中科技大学,2013.

[8]刘军.例说STM32[M].北京:北京航空航天大学出版社,2011.

[9]张瑾.电路设计与制板Protel 99SE入门与提高[M].北京:人民邮电出版社,2007.

[10]蒙博宇.STM3自学笔记[M].北京:北京航空航天大学出版社,2012.

[11]刘金琨.先进PID控制 MATLAB仿真[M].3版.北京:电子工业出版社,2011.

[12]霍罡.可编程序控制器模拟量及PID算法应用案例[M].北京:高等教育出版社,2013.

猜你喜欢
飞控摇杆原理图
曲柄摇杆机构的急回程度分析与探讨*
曲柄与摇杆摆角的关系
基于ANSYS的曲柄摇杆机构的仿真分析及优化设计
浅谈STM32核心板原理图设计
电路原理图自动布图系统的设计与实现
电气CAD原理图数据提取与辅助建模
基于Protel DXP 2004层次原理图的设计
民用飞机飞控通电自检测安全性研究
机载飞控1553B总线转以太网总线设计
02 飞控技术与机场安保引关注