暑假未完工的火箭项目(60mm箭体 RNX燃料 带航电)
极度深寒2013/08/26喷气推进 IP:美国
暑假只回国40天,花了35天造这火箭,结果还是来不及发射。航电已完工,发动机已定型和测试,就差降落伞和发射架就能上天了。 本来打算用这枚火箭做9月份学校火箭项目的敲门砖的。不过现在看来只能用这未完工的报告去面试了。
(一)火箭设计目的
由于时间很紧迫所以想在一枚火箭上验证尽可能多的事,所以这枚火箭的任务目的特别多,但是由于最后工期不够原定任务计划一直被减少以下会列出原定的和实际使用的
原定
1.    测试和制造RAP燃料,并造PPR,陶瓷喷口发动机上箭
2.    采用冷发射技术(使用加速度和障碍传感器判断出筒和点火),用高压气体作为出筒动力。
3.    航电采集三个轴向的加速度(坐标轴不随芯片方向的改变而变化的)还有 yaw pitch row(也就是偏航 倾角 转了几圈的数据) ,气压, 温度, 高度。并采用电脑输入密码远程遥控点火,姿态判断开伞)
4.    弄明白降落伞的设计过程,和需要计算的公式等。
5.    航拍
6.    用烟雾弹,淘宝上插Sim卡的超迷你定位监听器,蜂鸣器做成的回收辅助系统。(当需要回收时可以在手机上查看目标的方位。误差估计在100m,等到了误差区时遥控点燃烟雾弹,并让蜂鸣器开始响,辅助回收)
7.    用采集到的ypr和 三个轴向的加速度做段重现发射全过程的动画。
实际实行完成
1.    50mm RNX发动机 材质为PPR 喷口为堵漏王螺母
2.    采用热发射技术但是点火模块在箭体内部,并有冷发射时需要的解除安全锁定的红外通讯装置,也就是火箭自己可以完成点火开伞等任务,和外界没有任何有线连接,这点和冷发射所需的是一样的)
3.    航电采集 yaw pitch row 气压 温度 高度 并采用输入密码的远程遥控点火, 姿态判断开伞)
4.    航拍

降落伞和回收辅助系统由于时间不允许还没造,本箭箭体完全完工,发动机完工,航电完工。
全箭已完工部件图
57.jpg
规格图(单位mm)
83.jpg
直观体现下大小
59_副本.jpg
(二)设计和制造过程
明确了目的就开始设计和制造了
1.    航电
由于本人编程只学过matlab属于入门级菜鸟c语言也没学过所以选择了最好入门和现成程序最多的arduino平台。虽然成本高,但是对于我这种工期极度匮乏的人来说以金钱换时间最合适了。 本箭的航电系统由三套系统组成
第一套是淘宝上的CJMCU Arduino Nano-Ahrs 9自由度惯性姿态模块 9轴姿态传感器,它本身就是arduino pro mini,而且程序已经弄好,滤波什么的也都有,可以直接输出高精度的yaw pitch row数据,只需略微修改程序就能和另外一片arduino pro mini实行通讯
中间那块红色竖直的就是这个系统。
74.jpg
这个板子程序改动过的部分就只有easy transefer这个库
程序详见附录1
第二套是姿态判断开伞系统
72.jpg
程序基于彩虹之巅的程序,他的程序经检测非常可靠,我就不在这上传我的程序了。
硬件上的话 是一片arduino pro mini,  MPU6050  micro sd存储模块, 开伞电源和点火电源共用一节七号电池,arduino pro mini的电源都是共用一节9V电池。
我曾经尝试过这种ER14250 一次性锂电池,事实证明这种电池的电流不足以引燃点火头
56.jpg
点火开关用的是IRFZ44N 场效应管, 我买过非常多型号的场效应管,虽然数据表都写着阀值电压4V, 但是在arduino 5V电压输出下能完全导通的只有这个型号。 关于场效应管的接线上张图
IRF.jpg
第三套是 气压 温度 高度 红外通信点火系统(第一套系统通过单片机直接通信和这部分连着,第一套系统采集的数据由这套系统写入存储卡)
74.jpg
   75.jpg
   76.jpg
   77.jpg
采集后数据存储的文件截图
82.jpg
这里要重点介绍下BMP085用来判断高度的程序
大家知道BMP085只能得到温度和压强数据,高度数据是根据那两个推算的。
这在很多情况下会造成误差非常大。但我找到的这个程序里有修补的语句,你只要修改海平面的大气压数据就能得到比较精确的高度数据

QQ截图20130825200943.jpg
这是原始网址
XXXXXXXXXXXXXXXXXXXXXXXXX/bmp085/using-the-bmp085-api-v2
如何找到你附近的海平面大气压数据呢,ios系统上有个应用叫做航空气象
78.jpg
在里面找到离你最近的机场
79.jpg
左下角那个修正海压就是你所需要的数据
80.jpg
这个数据每天都不太一样,所以做好的选择是在使用发射指令器和箭载航电红外通讯时把当天的数据直接输入,但我由于时间限制没有写这部分的程序。
程序见附录2
系统组成由 arduino pro mini, CJMCU Arduino Nano-Ahrs , BMP085, IR Transmitter, IR receiver, micro sd存储。
点火一样是IRFZ44N。 由于是冷发射技术测试所以点火也弄成是火箭自行解决的。下面是这种杜邦线公头用来连接点火头,这种既不会太紧也不会太松, 可以在点火后很容易的自行抛射出去。
33.jpg
未完待续
+50  科创币    20!Dopaminor    2013/08/26 高质量发帖
+50  科创币    badboy-fly    2013/08/26
+500  科创币    焓熵`    2013/08/26 独立的系统设计制造,思路清晰,具有推广意义
+50  科创币    qwe    2013/08/26
+100  科创币    神の左手    2013/08/26 高质量发帖
+200  科创币    qharryq    2013/08/26 赞一个!
+50  科创币    q81919119    2013/08/27
+5  科创币    div    2013/08/27 覆盖面很广 很详细
+100  科创币    wesker    2013/08/27 -
+549  科创币    ms1175555    2013/08/28 今天的全给你了,不能不加  预祝成功
+200  科创币    ngc1976    2013/11/17 再接再励
+200  科创币    猎鹰    2013/12/04 快播~~~~~~~~~~
+1  学术分    拔刀斋    2013/08/26 相当系统和高水平的作品,预祝成功
来自:航空航天 / 喷气推进
21
 
1
已屏蔽 原因:{{ notice.reason }}已屏蔽
{{notice.noticeContent}}
~~空空如也
极度深寒 作者
11年4个月前 IP:未同步
563779
接下去介绍下发射指令传输器
程序见附录三
我运用的是APC220模块(APC220是无线数据传输用的数据写着可以传1km,但是传输速度真的不咋地所以就没用来上箭)在电脑上通过串口传送发送密码到 发射指令传输器
发射指令传输器由arduino UNO, IR transmitter, IR receiver,APC220组成
具体工作流程图如下(我的程序并不是很完美有时会发生点火信号已到达,回传的反馈信号确实错误的情况,这种情况稍微改动下程序就可以避免)
1.    发射指令器电源接通
2.    电脑串口收到信息,输入发射密码
3.    在电脑串口上输入发射密码
4.    发射指令器收到密码,并判断,判断密码正确的话发送红外信号(为了防止丢包多发送几遍)密码判断错误的话发送“错误”到串口监视器
5.    箭载航电收到红外信号,进行编码匹配,如果匹配正确延时10s点火,并在2s后发送一个红外信号到发射指令器。匹配失败发送另一组红外信号到发射指令器。
6.    发射指令器收到传回的红外信号并进行匹配。如果是已发射就向串口发送 在10s后发射的信息,如果是错误的话,就在串口显示错误。

以下是发射指令传输器 和箭载航电 进行点火测试的图片
33.jpg
这是演示这套系统的视频
点击此处查看视频
至此航电系统介绍完毕,此航电系统总共用了5层直径6cm的洞洞板
2.    航拍
使用的是Y3000 迷你DV 这种新型号的已经可以拍得清字了,清晰度相当高。
给个链接清晰度里面有写。如果有广告嫌疑的话我马上把链接删了。
XXXXXXXXXXXXXXXXXXXXXX/XXXXXXXm?spm=a230r.1.0.0.iUdX9H&id=17516829209&initiative_new=1
这里重点介绍我设计制造的这种抽拉式平台。 航电系统是装在箭体内部的,这就使得要发射时要按航拍摄像机的开关和航电系统的开关,还有降落伞点火头的接线都很麻烦,于是我就设计了这种和抽屉原理类似的部件,需要按开关时可以把整个摄像机和开关和接线柱一块拉出箭体外,处理完后再塞回去。然后盖上箭体上的盖子,这样可以省去很多麻烦事也提高安全系数。
35.jpg
   36.jpg
   71.jpg
3.3.    箭体
详细尺寸图(单位mm)
83.jpg
头锥外壳由纸做成加502固化,内部由锥形泡沫加强强度。下面接根内径5mm壁厚3mm的纸管加上胶带增厚做头锥套管。
11.jpg
箭体由内经6cm 壁厚3mm的纸管组成。
45.jpg
发动机套管由直径51mm壁厚3mm的纸管做成,并用502强化固定在箭体内
40.jpg
   43.jpg
尾翼的设计图,尾翼用502和AB胶固定在箭体上。
B/C=2.3
65.jpg
很直
46.jpg
降落伞虽然没空造。但还是发一下我一直造降落伞的方法
图(多啦A梦第26册) 从小学3年级以来一直是这么造的
54.jpg
顺带看留言终结者时关于降落伞材质的选择上图一张
QQ20130825-1.jpg
+10
科创币
2013-08-26
+90
科创币
猎鹰
2013-08-26
本来100,马赛克-10
+10
科创币
光谱
2013-08-27
本来20,有码-10
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
极度深寒作者
11年4个月前 IP:未同步
563780
4 发动机及燃料
这里先谈一下造RNX燃料的心得,首先RNX燃料真的是太安全了,而且失败率远远低于KNSU。 前段时间有人谈及损耗率特别高的事,除去混环氧树脂时粘在手套上的损耗外基本就没什么损耗了。 有些人损耗率特别高得原因估计是因为直接把硝酸钾和铁红混合后加水重结晶。如果是这么做的话损耗率很高的。如图
12.jpg
   14.jpg
但是如果是先煮硝水,把硝水煮的差不多的时候再加铁红,那损耗率就特别小
29.jpg
30.jpg
  还有点要提下。E44真的不是一般的粘稠, 树脂不是一般的讨厌请一定要带手套,工作平台一定要铺上层东西。压药的话可以用锤子锤擀面杖,或者木工夹。反正我两个都用了。
这是我用来测试发动机的三截药柱,由于是第一次做,脱模时变型了。总重160g,我原来打算直接开放点燃的,后来抱着失败就失败了的想法装进测试发动机了。 这些药柱的内孔都是歪的。只能用来测试,不能上箭。
67.jpg
   20.jpg
发动机材质是50mm PPR热水管 耐压2.0MPA 喷口材质原来打算用陶瓷的。结果家里喷枪坏了,工期又来不及只能换用堵漏王配螺母。
我已经捏好了陶瓷伪拉喷的模具了
52.jpg
   17.jpg
   18.jpg
这是设计图,实际使用时只有扩张段。
喷管.jpg
堵头和喷口都有各用两根钉子固定
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
极度深寒作者
11年4个月前 IP:未同步
563781
这是发动机测试的截图
推力在开始一瞬间突破了20kg 导致弹簧秤爆表了。直接导致了视频后期的数据的不准确
01.jpg
02.jpg
03.jpg
04.jpg
05.jpg
   视频 gopro近距离
视频远距
[flash=640,480]XXXXXXXXXXXXXXXXXXXXXXX/XXXXXXXXXp/sid/XNTk0NDc4OTE2/v.swf target="_blank" style="font-size:20px;">点击此处查看视频

以上就是我目前所有完工的部分了。介于要到明年12份才有概率回国,这枚火箭的发射还有很长的时间要等了。 只能希望9月份面试通过,蹭学校的设备造枚火箭把我的航电送上天去检测一回吧。
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
极度深寒作者
11年4个月前 IP:未同步
563782
附录(都没包含库文件,因为我的程序都不怎么完美,大家看下参考下就好,接线我会把我自己焊接时的草图贴出,由于程序达不到教程的标准就不出详细介绍了,以后改进后再出,坛里有编程好的也可以帮忙优化下)
(如果需要库文件的留言很多的话我也是可以贴出来的)
接线.jpg
附录1(此部分程序只有easy transfer的部分是我改的,其他的都是厂家的源码)
由于代码太长了我直接打包上传了

attachment icon Nano_AHRS3TX.zip 9.98KB ZIP 62次下载
附录2
#include <Wire.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_BMP085.h>
#include "SD.h"
#include <EasyTransfer.h>
#include <IRremote.h>
EasyTransfer ET;
IRsend irsend;  
int RECV_PIN = 7;
IRrecv irrecv(RECV_PIN);
decode_results results;
long back=0;
unsigned long time;
int launch=8;
struct RECEIVE_DATA_STRUCTURE{
  //put your variable definitions here for the data you want to receive
  //THIS MUST BE EXACTLY THE SAME ON THE OTHER ARDUINO
  float yawDEG;
  float pitchDEG;
  float rollDEG;
};
RECEIVE_DATA_STRUCTURE mydata;

Adafruit_BMP085 bmp = Adafruit_BMP085(10085);
float seaLevelPressure = 1009;
float temperature;
const int chipSelect = 4;
void setup(void)
{
  pinMode(launch,OUTPUT);
  pinMode(3, OUTPUT);
  XXXXXXXXXgin(57600);
  XXXXXgin(chipSelect);
  XXXXXgin(details(mydata), &Serial);
  XXXXXXgin();
  irrecv.enableIRIn(); // 初始化红外接收器
  File dataFile = SD.open("data.txt",FILE_WRITE);
  if (dataFile){
    XXXXXXXXXXXint("[s:9]ressure(hpa):    ");
    XXXXXXXXXXXint("\\t");
    XXXXXXXXXXXint("Temperature(C):   ");
    XXXXXXXXXXXint("\\t");
    XXXXXXXXXXXint("Altitude(m):    ");
    XXXXXXXXXXXint("\\t");
    XXXXXXXXXXXint("YPR:    ");
    XXXXXXXXXXXint("\\t");
    XXXXXXXXXXXintln("time(ms)");
    XXXXXXXXXXXose();
  }
}

void loop(void) {
  time = millis();
  XXXXXceiveData();
  sensors_event_t event;
  XXXXXXtEvent(&event);
  XXXXXXtTemperature(&temperature);
  File dataFile = SD.open("data.txt",FILE_WRITE);
  if (dataFile){


    XXXXXXXXXXXint(XXXXXXXXessure);
    XXXXXXXXXXXint("\\t");
    XXXXXXXXXXXint(temperature);
    XXXXXXXXXXXint("\\t");
    XXXXXXXXXXXint(XXXXXXessureToAltitude(seaLevelPressure,
    XXXXXXXXessure,temperature));
    XXXXXXXXXXXint("\\t");
    XXXXXXXXXXXint(mydata.yawDEG);
    XXXXXXXXXXXint("\\t");
    XXXXXXXXXXXint(mydata.pitchDEG);
    XXXXXXXXXXXint("\\t");
    XXXXXXXXXXXint(XXXXXXXXXllDEG);
    XXXXXXXXXXXintln(time);
    XXXXXXXXXXXose();  
    delay(1);  
  }
  if (XXXXXXXXXcode(&results)){
    back=XXXXXXXXXXlue;
    if (back==2155813097){
       if (dataFile)
      {
        XXXXXXXXXXXintln("launched");  
        XXXXXXXXXXXose();
      }
      delay(2000);
      XXXXXXXXXndSony(0xa90, 12);
      XXXXXXXXXndSony(0xa90, 12);
      XXXXXXXXXndSony(0xa90, 12);
      XXXXXXXXXndSony(0xa90, 12);
      XXXXXXXXXndSony(0xa90, 12);
      XXXXXXXXXndSony(0xa90, 12);
  
      delay(10010);
      digitalWrite(launch,HIGH);
    
      delay(2000);
      digitalWrite(launch,LOW);
      XXXXXXXXXsume();
    }
    else
    {
      XXXXXXXXXsume();
    }
  }
}


附录3
#include <IRremote.h>                  
IRsend irsend;  int RECV_PIN = 11;
IRrecv irrecv(RECV_PIN);
decode_results results;
int val=0;
int back=0;
int pan=0;
void result()
{
  if (XXXXXXXXXcode(&results)){
    back=XXXXXXXXXXlue;
    XXXXXXXXXsume();
    if (back==21677){
      XXXXXXXXXintln(F("launch_in_10seconds"));
    }
    else{
      XXXXXXXXXintln(F("Error"));
      }
    }
  }

  void setup()
  {
    XXXXXXXXXgin(9600);
    XXXXXXXXXintln(F("Enter_launch_password"));
    irrecv.enableIRIn(); // 初始化红外接收器
    pinMode(3, OUTPUT);

  }

void loop(){
  result();
  if (Serial.available() > 0) {
    val=XXXXXXXXXad();
    if (val==49){

      XXXXXXXXXndNEC(0x807F18E9, 32);
      XXXXXXXXXndNEC(0x807F18E9, 32);
      XXXXXXXXXndNEC(0x807F18E9, 32);
      XXXXXXXXXndNEC(0x807F18E9, 32);
      XXXXXXXXXndNEC(0x807F18E9, 32);
      irrecv.enableIRIn();

    }
  }
}
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
极度深寒作者
11年4个月前 IP:未同步
564975
回 15楼(novakon) 的帖子
本来就是打算找你订的。。后来时间来不及只能搞个弹簧秤凑合了。。
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
极度深寒作者
11年2个月前 IP:未同步
654142
1996615xp 发表于 2013-11-16 13:33
额,原来用纸筒也可以制作大火箭发动机啊。


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

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

所属专业
上级专业
同级专业
极度深寒
学者 机友 笔友
文章
50
回复
452
学术分
5
2009/10/23注册,3年4个月前活动

炼丹师

主体类型:个人
所属领域:无
认证方式:手机号
IP归属地:未同步
文件下载
加载中...
{{errorInfo}}
{{downloadWarning}}
你在 {{downloadTime}} 下载过当前文件。
文件名称:{{resource.defaultFile.name}}
下载次数:{{resource.hits}}
上传用户:{{uploader.username}}
所需积分:{{costScores}},{{holdScores}}下载当前附件免费{{description}}
积分不足,去充值
文件已丢失

当前账号的附件下载数量限制如下:
时段 个数
{{f.startingTime}}点 - {{f.endTime}}点 {{f.fileCount}}
视频暂不能访问,请登录试试
仅供内部学术交流或培训使用,请先保存到本地。本内容不代表科创观点,未经原作者同意,请勿转载。
音频暂不能访问,请登录试试
支持的图片格式:jpg, jpeg, png
插入公式
评论控制
加载中...
文号:{{pid}}
投诉或举报
加载中...
{{tip}}
请选择违规类型:
{{reason.type}}

空空如也

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