基于STM32的四旋翼飞行器飞行控制板设计
李朋轩++邬松杉++郭丽丽++杨晴
摘 要:文章针对四旋翼飞行器,设计了一种基于STM32微控制器的飞行控制板。以ARM cortex-m4内核微处理器作为主控单元,对飞行控制板进行了模块化设计,并给出了各模块中芯片的选型依据。软件设计采用滤波融合算法获得四旋翼飞行器的姿态,除了基本的姿态检测外,还添加了无线数据传输、高度测量的功能。通过ARHS软件模拟出姿态融合后图像,结果表明设计的飞行控制板解算的姿态误差较小。
关键词:四旋翼飞行器;飞行控制板;STM32;滤波融合算法;姿态控制
四旋翼飞行器是一种具有4个呈十字形交叉对称的螺旋桨,能够垂直升降的四旋翼直升机。它通过飞行控制板控制4个轴上的无刷电动机带动螺旋桨以不同的速度和方向旋转,从而实现其垂直、俯仰、偏航、滚转、前后和侧向6自由度的运动。由于这是一个4输入6输出的欠驱动系统,具有非线性、强耦合、多变量等特点,因此对控制器的要求较高[1]。
1 飞行器控制板的硬件选型与设计
飞行器控制板采用模块化结构设计,主要由主控模块、电源管理模块、数据采集模块、执行机构驱动模块、无线通信模块。
1.1 主控模块
主控模块是飞行器控制板的核心模块,它由高性能、低功耗的高级精简指令集处理器ARM内核STM32F401芯片和其外围电路组成单片机,通过接口接收其他模块的数据和地面站的指令,并控制输出电机驱动数据,实现对飞行器姿态的调整。STM32F401芯片的架构非常先进,具有内置的浮点处理运算模块以及自适应闪存程序执行模块,它的主频经过内置的锁相环倍频后可以高达84 MHz,不仅如此其还具有内存保护单元以及内置DSP运算指令。
1.2 电源管理模块
电源管理模块的作用是向各个模块提供电能,由于各个模块所需的电压不尽相同,所以需要设计稳压电路[2]。本稳压模块设计输入电压为12 V,输出电压为3.3 V,采用的F_XT-1WR2芯片作为控制单元。本芯片功率为1 W,输出电流高达303 A,转换效率高达72%,具有可持续短路保护、低纹波噪声、隔离电压高达3 000 V直流电、工作温度低至-40 ℃、高达+105 ℃等特点,并且具有隔离非稳压单路输出的功能。
1.3 数据采集模块
数据采集模块作用是获取飞行器的姿态和位置参数并将数据传递给主控电路予以处理。本数据采集模块可分为3个子模块,分别是加速度与角速度检测模块、地磁监测模块、气压检测模块。
1.3.1 加速度与角速度检测子模块
本子模块采用了MPU6050芯片,该芯片是集加速度计与角速度计为一体的微型传感器芯片。它使用了內置的16位模拟数字转换器分别对测得角速度和加速度进行数字化。为了适用于不同的场合,传感器的量程和精度都是可以设定的,量程越大会导致精度越小,反之亦然。
1.3.2 地磁检测子模块
本模块采用HMC5883L芯片,该芯片是一款具有地磁传感器的测量芯片,具有低功耗、精度高的特点,它具有先进的I2C通信接口,达到了400 bps的通讯速度,可在移动领域中弱磁测量方面广泛使用。HMC5883L 右这几部分构成:磁阻传感器单元、放大器单元、自动消磁驱动器单元、偏差校准单元。这些单元协作工作能使罗盘精度偏差在1°~2°范围之间。
1.3.3 气压检测子模块
四旋翼飞行器具有定高飞行的功能,则必须需要有相应的测量高度的传感器进行检测,在本设计中则使用了BMP180气压传感器芯片来进行高度的测量。BMP180具有许多优良特性,例如低功耗、测量精度高、易于使用等特点。它也采用了I2C接口与主控微控制单元(Micro Control Unit,MCU)进行通信,该芯片的I2C传输速率达到了400 kbps。
1.4 无线通信模块
本模块采用了NRF24L01芯片实现无线通信功能,该芯片所使用的频率为2.4 GHz,具有优良的通信速率以及距离,本设计除了使用NRF24L01之外还使用了开放式数控系统(Power Automation,PA)以及低噪声放大器(Low Noise Amplifier,LNA)这两种芯片来扩大该无线模块的发射功率,使其可在3 km距离内都可正常通信,其丢包率几乎为0。NRF24L01芯片与主控芯片的通信通过SPI协议进行,串行外设接口(Serial Peripheral interface,SPI)协议速率极快,不会对MCU的性能产生影响。
1.5 执行机构驱动模块
本设计要求飞行器在最短的时间内回到平衡位置,这就要求飞行器的姿态控制能够快速响应,即能够快速地增大或减小电机转速,所以选用了无刷电机,并配以无刷电调使用[3]。无刷电调采用了飞利浦公司开发的PCA9685芯片,可控制信号的周期和占空比,可实现多个模块级联。该芯片可控制输出16路精度为12位的脉冲宽度调制信号,采用I2C通信协议,通信效率极高。
2 飞行器控制板的软件设计
飞行控制板的软件部分是采用C语言编制,主要完成硬件平台初始化、解码地面站信号并设置相关参数、读取并解算飞行器的姿态信号,产生脉冲宽度调制(Pulse Width Modulation,PWM)方波实现电机控制等步骤,直到地面站发出结束信号结束程序。飞行器姿态控制的核心与关键在于姿态信号的获取与解算,因而软件上采用了快速融合和长期融合以及滤波算法获取四旋翼飞行器的姿态[4]。
3 飞行器控制板的控制系统测试与分析
本系统使用串口协议通过Ahars开源上位机程序进行测试分析。设置使用1152 00 bps的波特率、8位数据位、无校验以及1位停止位。打开软件串口接收后将飞行控制板置于水平状态,从数据可知除AZ满量程外其余方向加速度约为零,且陀螺仪各方向速度约为零。软件获取的数据如图1所示。
经测试,本飞行控制板实现了姿态解算及姿态融合功能。
4 结语
本文设计了一种具有姿态解算及融合功能的飞行器控制板。该控制板的硬件系统采用模块化结构,以嵌入式芯片STMF32F401为控制核心,通过C语言编程并用ARHS软件进行了实验测试。实验表明该飞行控制板能快速执行姿态解算,并能较准确地融合各项传感器数据,通过分布式滤波融合算法较大程度地降低了系统的静态误差和动态误差,具有良好的性能。
[参考文献]
[1]刘乾,孙志锋.基于ARM的四旋翼无人飞行器控制系统[J].机电工程,2011(10):1237-1240.
[2]谢义建,陈跃东,舒圣炎.基于STM32的四旋翼飞行器的设计与实现[J].四川理工学院学报(自然科学版),2014(3):42-45.
[3]郭晓鸿,杨忠,杨成顺,等.一种基于STM32的四旋翼飞行器控制器[J].应用科技,2011(7):35-40.
[4]李侦,田梦君,赵菲菲.基于DSP的无人机飞行器飞行控制系统设计[J].微处理机,2010(4):125-128.