无线数传多功能航电系统设计制造
zx-901432021/08/15原创 喷气推进 IP:青海

一、概述

本多功能航电系统为CTX Industries团队开发的探空火箭配套设备之一。本款航电系统结合了高点开伞、SD卡记录飞行数据(高度、加速度、飞行时间)、LoRa无线回传飞行数据等多种功能,同时体积较小,PCB尺寸仅为20*33mm,除LoRa模块外,其他元件均集成在PCB上,可以方便地放入小尺寸箭体,具有较好通用性,特发帖介绍。

老规矩,先来团队Logo sticker

CTX logo.jpg


二、硬件部分详细介绍

  1. 设计方案与元件选型

    如上文所述,本航电系统计划具备记录并实时回传高度、加速度、飞行时间数据并进行自动开伞的功能。为了实现这些功能,计划采用ATmega328P-AU作为主控芯片,采用Arduino IDE编写程序;采用BMP180气压计芯片得到高度数据;采用ADXL345芯片得到加速度数据;采用SD卡记录飞行数据并使用LoRa模块(标称通讯距离3km)实时回传数据,使用MCR100-6晶闸管输出脉冲进行点火开伞操作。电源方面,采用两块AMS117芯片提供3.3V电压,为整个系统供电。通信方面,BMP180、ADXL345芯片与主控芯片之间采用I2C接口通信,LoRa模块与主控芯片之间采用UART串口通信。

  2. 硬件具体实现

    由于需要能够放入小尺寸箭体,本航电除晶闸管外均采用贴片元件,并尽量使航电PCB小型化。同时为了使航电在箭体内部得到有效固定,在PCB两端设计了类似于榫卯结构的部分,可以插入带有缺口的固定座中。PCB Layout图及3D图、实物图如下。

    1.png

    2.png

    3.png

    4.jpg

    5.jpg

    PCB正面2脚排母为点火脉冲输出,背面2脚弯排针为供电排针,6脚排针为LoRa连接排针。

    PCB Gerber文件在附件1中。

  3. 开发过程中遇到的问题

    (1)第一次PCB打板后,发现SD卡无法正常工作,后来发现由于原理图中网络名称输错导致SD卡时钟引脚与主控时钟引脚实际未连接。第二次打板时该问题得到了修复。

    (2)第一次打板后,发现LoRa模块一启动,主控芯片就会自动复位。分析得出原因为LoRa模块功率过大,启动后电源电压下降,同时主控芯片RESET引脚上的上拉电阻阻值过大。第二次打板时使用了更小阻值的上拉电阻,问题得到修复。


三、软件部分详细介绍

  1. 开发环境与外设操作

    本航电使用Arduino IDE对ATmega328P-AU芯片进行开发,原因十分简单:楼主的STM32开发尚处于初级水平😂。以后会加强学习,争取能用功能强大的STM32开发电子设备。

    扯远了,说回来。。。

    在操作硬件外设时,使用SD卡库操作SD卡,使用SparkFun开发的ADXL345库与BMP180库操作相应芯片,使用UART库操作LoRa模块,实现相应功能。

  2. 代码详细介绍

    第一部分(1-26行):加载库文件,定义全局变量;

    第二部分(28-61行):对外设进行初始化;

    第三部分(63-97行):调用CollectData函数记录并回传数据,根据函数返回值判断飞行状态(静止,上升,下降),并根据飞行状态操作指示灯、进行开伞等;

    第四部分(99-152行):CollectData函数,以每秒约8次的速率写入飞行数据至SD卡,并以每秒约2次的速率回传数据。选择较低的书局回传速率是为了减小功耗,避免电池(3.7V锂电池,仅650mAh)在降落前耗尽;

    第五部分(154-168行):从BMP180及ADXL345芯片读取数据;

    第六部分(170-183行):根据飞行状态进行点火操作;

    第七部分(185-241行):从BMP180芯片读取气压温度,并计算为相对高度。

    Arduino源代码在附件2中。


四、备注

  1. 此项目为开源项目,可以转载,转载时必须注明原作者(CTX Industries团队)。

  2. 感谢团队同志们的宝贵意见与支持!@TonyStark @Marx😄

如有不足或错误之处,欢迎大家批评斧正!


附件:

attachment icon 附件1.zip 98.07KB ZIP 43次下载

attachment icon 附件2.zip 49.87KB ZIP 50次下载


[修改于 3年4个月前 - 2021/08/15 19:23:56]

来自:航空航天 / 喷气推进
21
 
6
已屏蔽 原因:{{ notice.reason }}已屏蔽
{{notice.noticeContent}}
~~空空如也
zx-90143 作者
3年4个月前 修改于 3年4个月前 IP:青海
896070

抱歉哈各位,刚才没写完就不小心提交了,现在已写完,欢迎大家批评建议

引用
评论(2)
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
zx-90143作者
3年4个月前 修改于 3年4个月前 IP:青海
896071

补充一下,LoRa模块为泽耀A39,标称通讯距离3km,两个模块之间透传传输,速率9600bps,地面LoRa模块接受箭上LoRa模块发来的数据后通过串口转USB模块传至作为地面站的笔记本电脑上。

IMG20210815170540.jpg

(左侧为箭上LoRa,右侧为地面天线与LoRa,箭上天线增益3dB,地面天线增益12dB)

引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
虎哥
3年4个月前 修改于 3年4个月前 IP:四川
896074

晶闸管有点小,需要小电流的点火头。晶闸管不能关断。电路上没有联锁保护,要当心上电瞬间出现误发火。那个天线12dB是不可能的。做好以后一定要进行拉距离实验然后才能装箭使用。

引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
zx-90143作者
3年4个月前 IP:青海
896075
引用虎哥发表于3楼的内容
晶闸管有点小,需要小电流的点火头。晶闸管不能关断。电路上没有联锁保护,要当心上电瞬间出现误发火。那个...

感谢虎哥指教,晶闸管确实是选小了,不过实测市售的红色点火头能点着,以后设计时会选大电流的。晶闸管可以关断啊😅IO口输出低电平就关了,开伞时是输出0.5s的脉冲电流。误发火确实会出现...😂很蠢的解决方法是上电后再插点火头,不过确实很不安全,以后会改进的。那个吸盘天线卖家标的是12dB,可能是虚标(?)苦于手头没有测试设备... 虎哥能否指教下这种情况如何判断?感谢!距离测试已做,实测市区道路下通讯距离可达2.1km左右,可以满足探空火箭的要求了。

再次感谢虎哥批评哈!

引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
BSP
3年4个月前 IP:广东
896077
引用zx-90143发表于4楼的内容
感谢虎哥指教,晶闸管确实是选小了,不过实测市售的红色点火头能点着,以后设计时会选大电流的。晶闸管可以...

晶闸管半控型器件,不能关断。应该是你的测试条件有问题。

选两颗mos吧,加个驱动好用不贵。

引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
zx-90143作者
3年4个月前 IP:青海
896078
引用BSP发表于5楼的内容
晶闸管半控型器件,不能关断。应该是你的测试条件有问题。选两颗mos吧,加个驱动好用不贵。

啊...我查了一下好像确实无法关断😅但是实测确实输出低电平就能关断...不晓得是咋回事儿

引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
BSP
3年4个月前 修改于 3年4个月前 IP:广东
896079
引用zx-90143发表于6楼的内容
啊...我查了一下好像确实无法关断😅但是实测确实输出低电平就能关断...不晓得是咋回事儿

应该是你测试条件的问题。

DMN10H099SFG

随手筛了一下,这款mos看起来不错,不知道买不买的到

mos的话,栅极外接一个小一点的下拉电阻就能防止意外的开启了。?你可以试试

如果用驱动芯片的话,使能输入端接下拉就行了


引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
zx-90143作者
3年4个月前 IP:青海
896080
引用BSP发表于7楼的内容
应该是你测试条件的问题。DMN10H099SFG随手筛了一下,这款mos看起来不错,不知道买不买的到

那估计就是我测试条件不对劲...

这款管子真挺棒,电流也蛮大,谢谢大佬推荐!

引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
BSP
3年4个月前 IP:广东
896081
引用zx-90143发表于8楼的内容
那估计就是我测试条件不对劲...这款管子真挺棒,电流也蛮大,谢谢大佬推荐!

不一定买的着😂

选他主要图他小封装,比较小的栅极电容,挺高的耐压和电流

选个类似性能的都行,最好找找那些爆款的,好买、便宜

引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
zx-90143作者
3年4个月前 IP:青海
896083
引用BSP发表于9楼的内容
不一定买的着😂选他主要图他小封装,比较小的栅极电容,挺高的耐压和电流选个类似性能的都行,最好找找那...

淘宝好像买得到,确实性能蛮好

引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
虎哥
3年4个月前 修改于 3年4个月前 IP:四川
896084

可控硅在电流小于维持电流的情况下是可以关断的。用万用表测量,阻抗通常达到1MΩ,电流很小,故可关断。在选用器件时,需要对器件的特性有深入的理解。

单用MOS管也不稳当,上电瞬间各部分的电压电流关系与稳定后不同,可能某一时刻就是要导通的,因此对上电时序有要求。稳妥起见还应该与第二套电路有联锁保护,例如没发射时,另有开关分断点火回路。甚至在长征的发射中,极个别情况下依然允许用拉绳剪线之类办法确保不出事。楼主上电后再接线,办法并不算Low。

点火电流较大,对电压有冲击,一般宜使用单独的电池,使点火电路隔离。

引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
UICalc
3年4个月前 IP:浙江
896085

LZ的PCB绘制能力有待提高...看起来从头到尾都是一个线宽,还有各种直角走线.不知道LZ的这个电路有没有高频大电流,至少看起来是完全没考虑EMC.

不知道点火系统能不能用NMOS带法拉电容放电.上电时电容没电,然后通过RC充电,一段时间(可以调整时间常数)后达到额定电压允许发射.

引用
评论
2
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
GiroPetrenko
3年4个月前 IP:江苏
896086

鉴于atmega变得好贵,建议lz用国产stm32 - 配合arduino ide绕过各种编程器限制(前提是1:1完全兼容的国产化)

点火部分想了个烂主意——做一个类似半桥的玩意,低侧开关默认打开。若是高侧开关故障,电源短路,系统进入过流保护。至于判别故障还是开伞——就有些复杂了(感觉这个系统越简单越好)

引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
BSP
3年4个月前 IP:广东
896092
引用虎哥发表于11楼的内容
可控硅在电流小于维持电流的情况下是可以关断的。用万用表测量,阻抗通常达到1MΩ,电流很小,故可关断。...

晕,忘记可控硅还有维持电流这码事了 sticker 学艺不精。。。

引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
BSP
3年4个月前 IP:广东
896093

楼上的办法好,可以考虑给mos的驱动芯片的使能引脚接rc延时,控制部分成功上电之后驱动芯片才能够动作。

引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
zx-90143作者
3年4个月前 IP:青海
896095
引用虎哥发表于11楼的内容
可控硅在电流小于维持电流的情况下是可以关断的。用万用表测量,阻抗通常达到1MΩ,电流很小,故可关断。...

谢谢虎哥,以后设计会用保护电路+mos的方案。这次点火和设备是同一块电池,因为箭体内部空间不太够,以后大箭体空间够就会做成独立点火电池。

引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
zx-90143作者
3年4个月前 IP:青海
896096
引用UICalc发表于12楼的内容
LZ的PCB绘制能力有待提高...看起来从头到尾都是一个线宽,还有各种直角走线.不知道LZ的这个电路...

pcb是用的自动布线...😅布线挺乱的,抱歉哈

点火系统这个方法确实好,谢谢大佬

引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
zx-90143作者
3年4个月前 IP:青海
896097
引用GiroPetrenko发表于13楼的内容
鉴于atmega变得好贵,建议lz用国产stm32 - 配合arduino ide绕过各种编程器限制...

啊...atmega328也就十块钱一片左右...国产gd32f103c8t6要二十来块😂

点火部分,楼下大佬的方法好像更好(?)

引用
评论(1)
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
UICalc
3年4个月前 IP:浙江
896099

STM32配合HAL库+CubeIDE图形化界面配置,不会比Arduino复杂很多,而且性能和扩展性都是吊打

引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
zx-90143作者
3年4个月前 修改于 3年4个月前 IP:青海
896100
引用UICalc发表于19楼的内容
STM32配合HAL库+CubeIDE图形化界面配置,不会比Arduino复杂很多,而且性能和扩展性...

嗯嗯,最近正在学stm32,等水平够了就会用stm32开发设备的😀不过stm32的I2C好像有点玄学...有的设备能用,有的就不能用,大概率是我水平问题😂

引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
zhouzhiwen2000
3年3个月前 修改于 3年3个月前 IP:江苏
897298
引用zx-90143发表于20楼的内容
嗯嗯,最近正在学stm32,等水平够了就会用stm32开发设备的😀不过stm32的I2C好像有点玄...

有些设备的硬件I2C确实有问题,ST官方专门发过一个库解决硬件I2C问题。

引用
评论(3)
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论

想参与大家的讨论?现在就 登录 或者 注册

所属专业
所属分类
上级专业
同级专业
zx-90143
进士 学者
文章
11
回复
264
学术分
1
2021/01/24注册,2年2个月前活动
暂无简介
主体类型:个人
所属领域:无
认证方式:未同步
IP归属地:青海
插入公式
评论控制
加载中...
文号:{{pid}}
投诉或举报
加载中...
{{tip}}
请选择违规类型:
{{reason.type}}

空空如也

加载中...
详情
详情
推送到专栏从专栏移除
设为匿名取消匿名
查看作者
回复
只看作者
加入收藏取消收藏
收藏
取消收藏
折叠回复
置顶取消置顶
评学术分
鼓励
设为精选取消精选
管理提醒
编辑
通过审核
评论控制
退修或删除
历史版本
违规记录
投诉或举报
加入黑名单移除黑名单
查看IP
{{format('YYYY/MM/DD HH:mm:ss', toc)}}