BUCO火箭航电试验全记录报告①
(截至2019年8月8日)
中青为科技组织 ZQWEI Quix
项目概述
BUCO火箭项目旨在为爱好者开发一款廉价的姿态记录,定高开伞的航电系统。整体航电采用Arduino平台开发,第一版采用Lipo锂电池供电,使用卡尔曼滤波算法实现姿态的实时记录,通过带逻辑缓冲门的SPI总线SD卡保存数据,通过Mpu6050传感器/BMP280气压传感器实现火箭发动机实时工作状态的判断。经过试验证明,上述的方案切实可行,具有一定的工程应用价值。
项目开发流程
初步电路搭建
如上文,该项目的设计初衷在于设计一款具有定高开伞/实时姿态解算的航电系统,故我们选择了使用爱好者常用的博世BOSH Bmp280 MEMS气压传感器,搭载STM8单片机进行卡尔曼滤波计算的Mpu6050一体化模块,arduino nano开发板与继电器模块实现上述的功能。
在搭建完成上述的电路后,发现SD卡驱动仍存在一定问题,并且由于早期程序的编写错误,在电路被重启后会将原SD卡所记录的数据进行清除,故在这一版的电路中还搭载了泽耀科技的串口Lora扩频通信保证实时的数据传输,避免了可能应SD卡数据记录故障而导致的错误试验。下图为测试使用的初步电路系统:
图 1
基于初步电路的算法设计基础试验
初步试验的主要目的在于获取火箭在不同工作状态下陀螺仪和气压传感器的返回情况,包括静止状态,起飞状态,自由落体状态,撞击地面的瞬间等。通过上述搭建的初级电路系统的遥测&SD卡联合数据收集系统最终可以获得如下的部分试验数据:
Mpu6050原始数据(非卡尔曼滤波结果)
下图中x轴均为时间(单位:s),y轴为总加速度(单位:g(即9.81ms-2))
图 2
图 3
图 4
由上三图可得出以下的基本结论:
- 当Mpu6050处于静止状态时,其检测到的总加速度等于地球的重力加速度g
- 当Mpu6050处于掉落状态时,即其运动方向与重力矢量相同时,其总加速度会变小(<g)
- 当Mpu6050处于上抛运动状态时,即其运动方向与重力矢量相反时,其总加速度会变大(>g)
- 当Mpu6050撞击物体时,其总加速度值会变大。
上述相同的上抛试验所同步获取的Bmp280气压传感器原始高度数据如下图所示:
图 5
可以看出,尽管航电系统的投掷高度不高,但仍能清楚地分辨出高度计的高度变化(ΔH=3m),故采用Bmp280完全可以胜任高度数据采集的功能。
算法设计
整个航电设计的难点在于如何开发一款安全可靠的航电开伞判定的算法。根据简单的牛顿力学可知,当航电处于自由落体状态时,Mpu6050传感器返回的总加速度值应该为0,即处于失重状态。但经过上述的试验,我们发现其总价速度总是小于一个特定值,最终我们取得该特定值为0.3g(g为重力加速度)
同时,我们在航电系统上搭载了Bmp280气压传感器,这意味着我们可以通过气压的变化来判断航电所处的高度信息,由此可以直接判定出航电是否处于自由落体状态。由于模型火箭的质量较低,其加速度与速度通常较大,这就导致了火箭头锥前部气体被压缩,航电所处环境的气压变化,进而可能引发系统对高度特征的误判。由此,我们应当充分结合Mpu6050的失重判定与气压传感器对高度的联合判定,最终设计出对模型火箭运动状态判断的算法。
算法判定流程如下:
- 启动航电,初始化各传感器,确认各部分工作正常(若检测到不正常将进入故障模式而不启动航电系统)。
- 进入待起飞状态,即判断是否处于飞行状态,条件为高度上升2m & 总加速度>2g
- 是否处于自由落体状态,处于自由落体状态时的判定条件为单次判断周期内高度下降5m & 总加速度<0.3g。
- 是否已落地并保持了一段时间的静止,判断静止条件为,保持0.8g<总加速度<1.2g 15秒以上。
- 进入休眠状态。
PCB与原理图设计
为使得电路板的总体大小,质量控制在合理范围,我们必须将上述的全部系统集成于一块PCB板上。该PCB电路可以分为电源电路,单片机电路,开伞点火电路。下面逐一对这三个电路板块进行阐述。
1.电源电路
由于BUCO demo1系统所搭载的模型火箭安装容积充足,无需过多的考虑总体电路体积的问题,故我们采用了11.1v 3S Lipo锂聚合物电池供电,并且使用Lm2576-5.0v开关电源芯片作为稳压电路向单片机负载供电。选择开关电源的好处在于开关电源较线性稳压器Ldo而言有着更高的效率,但对于航电的低压供电部分来说则可以直接选择使用AMS1117-3.3v线性稳压器芯片直接提供3.3v供电,如Bmp280 MEMS气压传感器,SD卡的驱动电路等。
图 6
- 单片机电路
单片机电路是三个电路中最为复杂的部分,其中还包括SD卡电路,Bmp280电路,LED指示/报警电路,Atmega328pau单片机的时钟电路和各总线,控制线等部分。下面直接展示各部分电路图并进行简要的阐述。
下图为Atmega328pau主控单片机原理图,图中包含了ISCP编程接口和调试用串口的电路,同时包含了电源指示,16Mhz时钟电路,Reset复位电路等…
图 7
下图为SD卡电路,其中为保证该电路稳定且可靠,我们采用了74HC4050芯片作为SD卡SPI总线通讯上的逻辑缓冲门。
图 8
为简化开发流程,我们将Bmp280挂载于Atmega328pau单片机的IIC总线上,根据BOSH官方的datasheet设计了如下的电路图:
图 9
除了上述的主要系统部分外,ZQWEI还设计了方便用户寻失的蜂鸣器电路,Kalmen滤波模块的通讯接口,故障指示功能的LED电路,可参见下图:
图 10
- 点火开伞电路
航电系统的总体设计目标之一在于如何通过单片机编程驱动点火开伞电路引燃点火头,其电路本质在于制造一款电子开关。最早想到的方案是直接采用继电器控制点火头的发火电路,但后考虑到模型火箭可能工作在大加速度状态下,进而导致继电器或其他形式的机械电子开关失灵,故并不是一种安全,可靠的设计方案。认识到这一问题后,我们立即转而采用了Mosfet场效应管实现上述的开关功能,受限于手头拥有的Mosfet有限,为在最短的时间内完成总体开发,故在第一版电路中采用了AOD4184 N型增强型场效应管实现点火开伞电路的电子开关功能。当该N-MOS的门极(Gate)被单片机正向偏置为5v时,点火头将被成功点燃。具体电路图如下:
图 11
由于考虑到点火电路会在开伞的一瞬间承受较大的电流,故其走线应当尽量宽已确保走线不会被烧断。为防止MOSFET的门极由于ESD原因被误触发,应对该走线进行适当的屏蔽设计,避免走线在PCB板的边缘而收到严重的ESD干扰。
项目最终总体方案设计(BUCO demo1)
经过上述的项目方案研究,设计,可得最终的BUCO火箭航电的第一版设计方案,详细方案如下所示
图 12
最终完成品与量产版:
图 13
图 14
图 15
图 16
相关资料
ZQWEI BUCO航电产品链接:https://wp.zqwei-tech.cn/index.php/our-products/bucoshangye/