发作品签到
专业版

有控探空火箭-飞控

工程标签

3.3k
0
0
5

简介

一种低成本,模块化有控探空火箭思路,基于Arduino nano。发动机部分仅验证了气密性良好,四分之一装药试车时未产生有效推力,仅供参考。

简介:一种低成本,模块化有控探空火箭思路,基于Arduino nano。发动机部分仅验证了气密性良好,四分之一装药试车时未产生有效推力,仅供参考。
星火计划2023

开源协议

GPL 3.0

创建时间:2023-01-12 16:24:29更新时间:2023-10-16 16:49:11

描述

项目说明

以下关键点红色字体为警告

声明:模型火箭具有一定的危险性。读者在尝试自制本项目中提到的发动机、进行试车、发射时,应充分认识到存在的风险,选择安全的场地,并做好充分的防护措施,有关细节请参考附件《中国业余火箭执行标准》。文章仅代表作者个人观点,读者应自行承担有关责任,所造成的一切损失与作者和立创开源硬件平台无关。如果您完全理解并同意以上声明,请继续阅读。

基于Arduino Nano飞控的模块化可回收探空火箭。

气动:火箭主体为鸭式布局,根据OpenRocket模拟结果,稳定度为2.22cal。

飞控:Arduino开发板通过串口从组合连接后的  JY61P姿态传感器和WTGPS-300导航模块  采集实时的姿态,位置,位移,速度,加速度等信息,算出当前姿态与理想姿态之间的误差,然后用PID算法(PID proportion integration differentiation 比例,积分,微分)得出4台舵机应旋转到的角度并发送(详见附件中的Arduino飞控例程)。

回收:提供一个开伞信号输出端口,由单片机D6引脚引出,输入与输出反相,火工开伞就接点火头,机械开伞就接继电器和推拉电磁铁(需要续流二极管)。

发动机:发动机规格为46-25,即46mm外径,25cm长度。发动机的外壳材料是3mm厚度、外径46mm、内径40mm、长度250mm的6061铝合金管,药柱外隔热层是1.8mm厚度、外径39.6mm、内径36mm、长度200mm的3k碳纤维管,喷口和堵头为6061铝合金材质。其燃料是已经很成熟的KNSB(按质量分数65%KNO3+35%山梨醇,C6H14O6)固体发动机燃料,在低压下工作良好。这种药柱可以熔铸加工,相比KNDX燃料(KNO3+C6H12O6)更安全,喷管内壁喷涂了隔热漆。理想情况下化学方程式如下:26KNO3+5C6H14O6==点燃==13K2CO3+17CO2↑+35H2O↑+13N2↑,实际上燃烧会产生少量氮氧化物。有关发动机的注意事项请参考附件《中国业余火箭执行标准》。

 

仿真图。

使用软件:Solidworks Flow Simulation 2022,我不知道Solidworks Flow Simulation能不能做半开放空间的流体仿真,还是只能一个入口一个出口。所以我退而求其次,改让喷口把气体喷进一个半径1米的圆柱形管(可以视为开放空间)


 

部分流体仿真(攻角10°,来流速度50m/s)

硬件介绍

主控板与传感器板分开,主控为ATMega328P-AU

如需要后续开发,可以参考arduino.cc

 

项目相关功能

一种探空火箭的参考方案。飞控板可采集自身的姿态、加速度、速度*、高度*、位置*、位移*信息,通过远程串口实时回传。带*的功能需要加装GNSS。

 

项目属性

本项目为首次公开,为本人原创项目。项目未曾在别的比赛中获奖。

 

项目进度

2023年1月28日:项目剩余发动机未完成,飞行控制板测试未完成,箭体的飞控舱未完成,全箭联合调试未完成。箭体其余部分、流体仿真、飞控板设计已完成。

2023年4月12日:发动机燃料开放式燃烧已完成。用贴片料替换了大部分飞控板上的插件料,目前版本飞控板测试完成。全箭外壳完工。剩余发动机试车,全箭联合调试未完成。目前基于HX711的试车台已经完成,首次将飞控上用的无线串口装到了试车台上,远程遥控点火,试车时无需靠近危险区,大大提升试车安全性。

2023年9月28日:因屡次试车都没有解决隔热问题和推力问题暂停发动机开发。

 

DIY指南

 

零部件清单:

一,无载荷舱版本(demo版本)

1.  M5*15空心铝合金杯头内六角螺丝。

2.  M2*5杯头内六角螺丝。

3.  M2*12螺丝4颗。

4.  M2*15铜柱4颗。

5.  M2螺母4颗。

6.  维特智能JY60姿态传感器模块1个。//你应该能用80元以下的价格买到,相比于几百块的fdisystem deta10性价比高了不少。

7.  (选配,需要自己编程)采用UART协议的GPS模块1个。

8.  正点原子ATK-LORA-01模块。

9.  4枚MG90S舵机。//金属齿轮更可靠。

10.  1.5m~2m直径的带绳降落伞。

11.  发动机6061铝合金外壳,详见附件sldprt。

12.  发动机碳纤维隔热管,内径36mm,外径39.8mm,长度200mm。

13.  发动机喷管和堵头,sldprt文件中有,需要用耐高温材料加工。

14.  发动机氟胶密封圈4个,38mm或40mm外径,粗细直径3.5mm。

15.  发动机不锈钢卡簧2个,孔挡40mm。

16.  发动机铜垫片2个,详见附件。

17.  65-35比例的熔铸KNSB燃料。//务必注意安全,严禁明火,严禁加热温度超过200摄氏度。

18.  箭载摄像机,这个规格的运动相机都可以,小于这个规格需要自己做适配的外壳,链接:高清运动相机浮潜防水下数码摄像机旅游骑行摩托车头盔行车记录仪-淘宝网 (taobao.com)

19.  11.1伏或稍高的电池。

20.  3D打印模型,填充比例视你的载荷和发动机推力微调,不要100%填充。

 

1,下载附件中的STL文件的压缩包,解压。通过切片软件(比如cura,prusa,JGcreate)切片转为gcode,并使用3D打印机将各舱打印出来。切好后的gcode可以直接用于FDM 3D打印机(即熔融沉积型打印机)。可以采用PLA耗材,热床温度50摄氏度,喷头温度设置在190至210摄氏度之间的一个数值。使用光固化树脂材料的打印机不能用于火箭的打印,光固化材料很脆,且光固化机器无法使用FDM打印机的gcode文件,二者互不兼容。注意,打印好的PLA材质的模型要密封保存,以防止被氧化,氧化后的模型会变得极脆,这个项目大约用到两卷耗材。

 

2,PCB打样焊板。

 

3,烧录bootloader引导程序和飞控主程序。你需要额外购买一块arduino nano和一根配套的USB数据线,总价一般不会超过30元。

下载编辑器:https://www.arduino.cc/en/software

从附件中下载“JY901”解压并复制到Arduino的libraries文件夹里,如果没有JY901的函数库,程序会报错。如果用的是新版的IDE,找不到libraries,请打开编辑器,在项目--加载库--添加zip库中直接添加库文件。

然后掏出你刚刚焊好的主控板(只需要主控板,不要连接传感器板),我们开始接线。上面的6pin排针就是接下来要接的地方。人们一般把这种烧录方式叫做ICSP,即在线串行编程。

你额外购买的那块arduino nano 你焊好的主控板
GND GND
+5V +5V
MISO MISO
MOSI MOSI
D10 RESET
SCK SCK

之后,不要断开这两块板之间的连接,将你额外购买的那块arduino nano用USB线连到电脑上,打开设备管理器看一眼,你的电脑应该能识别它,如果不能,请安装附件里的“CH341SER.EXE”并运行它,装好驱动。

打开编辑器,点击上方的文件--示例--ArduinoISP,此时你的屏幕上出现这个窗口,就说明你做的是对的。把这个程序烧到你额外购买的那块Arduino nano上,这时候编程器选择AVRISP mkII。

接下来点击“工具”,选择正确的开发板,还有你的开发板连接的端口。对于这款飞控,按图中选择,编程器选择Arduino as ISP。注意,这里选择的是待烧录bootloader的芯片的开发板信息,而不是你额外买的那块Arduino nano的,不过在这个项目里,这两块板子的信息都是Arduino Nano(Old Bootloader)。

点击“烧录引导程序”,烧写成功后,你就可以拆掉两块板之间的导线,用USB线连接飞控板,并把编程器调回AVRISP mkII,烧写飞控程序了。这次就简单得多,打开飞控程序,点击屏幕左上角 的小箭头即可。

4,安装电设,需要买4台MG90S金属齿轮舵机,总价约50元。装舵机会用到胶。取4张贴纸,将4台舵机的排线上分别贴上X+,X-,Y+,Y-,按下方的俯视图装好舵机。将传感器板和主控板的FPC座子都放在你的左手边,有元件的那面朝上,传感器板安装在主控板上方,接线。飞控上下两块板之间的连接请务必使用反向16pin fpc排线(即把排线平放桌面时,两端的锡手指不在同一面),否则整个飞控不能正常工作。连接前还请务必检查。两块板用4根M2铜柱固定,铜柱兼做5v供电,铜柱凸出的一头朝上,凹陷的一头朝下,一会要在PCB下面拧螺丝。把组装好的飞控整体塞进电设舱,舱底预留了M2螺丝孔,用四根M2杯头内六角螺丝固定,长度12mm。最后把榫卯对齐,连接两个舱,拧好M5螺丝。榫卯防呆,接错的话两舱是装不起来的。(如果有点蒙可以看下面的图片和步骤)

实物展示

飞控板,舱体空间有限,如果不使用天线延长线,模块只能以这样一种非常抽象的方式塞进舱里。

上图:相机/电池舱

上图:电设舱和舵机舱之间的连接。

尾翼与发动机舱的组装。

封面白色的是废弃的第一版模型,第二版模型(黑色,在第一版基础上有较大更改)还有几个部件正在赶工打印,打完后会替换封面。

引用图文资料

图片:pinout.png 出处:arduino.cc

图片:模块与MCU连接 出处:https://wit-motion.yuque.com/wumwnr/docs/geusnl?#%20%E3%80%8AJY60%E4%BA%A7%E5%93%81%E8%A7%84%E6%A0%BC%E4%B9%A6%E3%80%8B

库文件ServoTimer2:项目目录预览 - servotimer2 - GitCode

库文件JY901:维特智能-专注于姿态传感器 (wit-motion.cn)

我并没有这些资料的版权,如涉及版权问题请联系删除。

开源协议

本项目除引用文献/图片部分,采用GPL3.0开源协议,禁止闭源的商业发布。

转载请标明,无需告知。

后记

水平有限,我的传感器板用的全部是成品模块,学业原因,工程不会再做进一步开发。

重要的两件事

第一,ATK-Lora-01模块收到数据不会立即发送,会先存入缓冲区,缓冲区数据达到58字节的时候才会启动射频芯片开始发送,发送过程中允许新加入数据,当缓冲区数据不足58字节时,模块会等待一个字节的时间,如果没有输入会默认数据结束。这意味着每组数据的长度都是不定的,在输入零散数据时极易导致倒序,缺帧等,要注意。

第二,SoftwareSerial库与Servo库同时使用arduino nano的Timer1计时器,会导致舵机乱抖,请安装附件中的ServoTimer2库。

设计图

未生成预览图,请在编辑器重新保存一次

BOM

暂无BOM

附件

序号文件名称下载次数
1
中国业余火箭执行标准.pdf
122
2
CH341SER.EXE
51
3
外壳sldprt.7z
139
4
ServoTimer2.zip
86
5
arduino20231015.zip
90
6
JY901.zip
81
克隆工程
添加到专辑
0
0
分享
侵权投诉

工程成员

评论

全部评论(1
按时间排序|按热度排序
粉丝0|获赞0
相关工程
暂无相关工程

底部导航