【H3C小组】一、Arduino二级火箭分离开伞自动控制程序源码【原创】
放假这两天自学了arduino单片机编程,自己有其他编程语言的基础,现在给我们小组的二级火箭写了个控制程序,用了大概8小时吧。这是我第一个写的arduino程序,有什么错误的地方请大家帮忙指出。

单片机使用arduino NANO 3.0 ,体积小,重量轻

说明:通过Arduino单片机控制固体燃料二级火箭的分离和开伞动作,以及航拍模块控制
1~4针脚分别为继电器1~4
继电器1控制航拍模块供电
继电器2控制航拍模块拍照按钮
继电器3控制二级点火及爆破切割分离
继电器4控制降落伞打开
5针脚为三轴加速度传感器Z轴的数据接入

整个程序基本就是通过判断Z轴加速度大小来进行操作
程序思路


由于航拍采用成品化的D82密拍,自带的电池质量不好,所以直接拆掉,节省体积。USB接口5V供电,通过继电器1控制航拍模块电源,上电后自动开启声控录像,由于此模式不稳定。所以在继电器1上电10秒后自动接通继电器2,虚拟按下拍照键,终止声控录像模式。再通过持续接通继电器2,一秒,进入录像模式。
void setup()
{
pinMode( 3 , OUTPUT);
Serial.begin(9600);
pinMode( 4 , OUTPUT);
pinMode( 2 , OUTPUT);
pinMode( 1 , OUTPUT);
}
void loop()
{
delay( 1500 );
Serial.print( "System Start Success!!" );
Serial.println("");
digitalWrite( 1 , LOW );
Serial.print( "Samera Turn On ......" );
Serial.println("");
delay( 10000 );
Serial.print( "Camera Turn On Success!" );
Serial.println("");
digitalWrite( 2 , LOW );
delay( 100 );
digitalWrite( 2 , HIGH );
Serial.print( "Camera Start ....." );
Serial.println("");
digitalWrite( 2 , LOW );
delay( 1000 );
digitalWrite( 2 , HIGH );
Serial.print( "Camera Start Success!!" );
Serial.println("");
while ( ( ( analogRead(A5) ) <= ( 1 ) ) )
{
Serial.print( "Wait Start....." );
Serial.println("");
delayMicroseconds( 1000 );
}
Serial.print( "Start !!!" );
Serial.println("");
while ( ( ( analogRead(A5) ) >= ( 1 ) ) )
{
Serial.print( "a=" );
Serial.print( analogRead(A5) );
Serial.println("");
}
Serial.print( "First Rocket Power Over!" );
Serial.println("");
Serial.print( "Start Leave Program......" );
Serial.println("");
while ( ( ( analogRead(A5) ) < ( 1 ) ) )
{
digitalWrite( 3 , LOW );
delay( 2000 );
digitalWrite( 3 , HIGH );
delay( 1000 );
Serial.print( "Second Fire....." );
Serial.println("");
}
delayMicroseconds( 1000 );
while ( ( ( analogRead(A5) ) < ( 1 ) ) )
{
Serial.print( "Wait satrt....." );
Serial.println("");
delayMicroseconds( 1000 );
}
Serial.print( "Second Frie Success!!" );
Serial.println("");
while ( ( ( analogRead(A5) ) >= ( 0 ) ) )
{
delayMicroseconds( 1000 );
Serial.print( "a=" );
Serial.print( analogRead(A5) );
Serial.println("");
}
delayMicroseconds( 1000 );
if (( ( analogRead(A5) ) <= ( 0 ) ))
{
Serial.print( "[s:9]arachute Open....." );
Serial.println("");
digitalWrite( 4 , LOW );
delay( 2000 );
digitalWrite( 4 , HIGH );
while ( ( ( analogRead(A5) ) < ( 0 ) ) )
{
Serial.print( "a=" );
Serial.print( analogRead(A5) );
Serial.println("");
}
}
Serial.print( "A Successful Landing" );
Serial.println("");
delay( 20000 );
Serial.print( "Close Cream...." );
Serial.println("");
digitalWrite( 1 , HIGH );
Serial.print( "Game00over" );
Serial.println("");
Serial.print( "GPS" );
Serial.println("");
}


H3C小组二次会议将于近日召开。届时,将进行程序测试,以及数传模块测试。

最终感谢科创论坛对于H3C小组假期火箭项目的基金支持!
166_19829_1dc8de520c711f6.jpg
+1  科创币    焓熵`   2012-07-13   幾時發射?來年會把~
+25  科创币    银色荆棘   2012-07-13   辛苦。 第二次会议我因军训就不参加了,代我向氕氘氚问好。
+10  科创币    古人   2012-07-13   支持教育局,最近也准备学习Arduino。
+50  科创币    虎哥   2012-07-19   支持
来自:计算机科学 / 软件综合
1
justinpiggy
8年11个月前
1楼
终于看到为数不多的用Arduino的了。。。。
Nano的确很小很好用,特别是做成品的时候。
回复
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
cqb98
8年11个月前
2楼
Arduino 好像模块化的啊…………各种函数引用…………简单是简单了,让大家都会用,要深入还是要写些程序的
回复
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
古人
8年11个月前
3楼
支持教育局,最近也准备学习Arduino。
回复
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
wsygz08
8年11个月前
4楼
小火箭采用爆破切割分离,MS不是很好控制~!
回复
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
game00over作者
8年11个月前
5楼
回 4楼(wsygz08) 的帖子
箭体整个采用PVC排雨水管,在分离出外壁刻出环形分离槽,槽内填充HMTD,快引钻孔连接到内部的二级发动机点火头。在二级发动机点火时,快引引爆HMTD,切割分离
回复
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
justinpiggy
8年11个月前
6楼
回 3楼(古人) 的帖子
Arduino根本不用学。。。太容易了,所以只有吾等傻瓜+懒人喜欢用
回复
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
nongmiintou
8年11个月前
7楼
回 5楼(game00over) 的帖子
PVC管厚度不一定均匀 运输过程中也可能变形 只炸开一半那就爽了
回复
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
game00over作者
8年11个月前
8楼
回 7楼(nongmiintou) 的帖子
PVC排水管本地购买,这里的PVC质量很好。基本均匀,就算不均匀,环形的凹槽,加上打孔以及HMTD的威力,也足以全部炸开了。
另外在地面还要进行爆破切割分离的实验,确定药量以及凹槽深度等等。实验无误,才会正式应用于火箭发射
回复
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
普利子蛋
8年11个月前
9楼
Nano 的啥CPU?具体型号?
回复
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
普利子蛋
8年11个月前
10楼
ATmega328 吗?
回复
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
justinpiggy
8年11个月前
11楼
回 10楼(普利子蛋) 的帖子
是的,贴片封装的328
回复
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
justinpiggy
8年11个月前
12楼
回 楼主(game00over) 的帖子
不过你这程序串口调试的语句和实际控制的语句差不多多了。。。。
到处是Seiral.println();
回复
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
game00over作者
8年11个月前
13楼
回 12楼(justinpiggy) 的帖子
额,这一版的程序已经废弃,有BUG。新版的已经写好,等待明天去测试
回复
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
DereK仔
5年3个月前
14楼
用C写的?
回复
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
DereK仔
5年3个月前
15楼
没注释 有些还是看不懂。。。
回复
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
chinawds
5年3个月前
16楼
好,精辟
回复
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论

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

所属专业
上级专业
同级专业
game00over
学者 笔友
文章
46
回复
575
学术分
4
2010/12/31注册,1 年前活动

喜欢捣鼓的宅男

%7B%22isDisplay%22%3Atrue%7D

仅供内部学术交流或培训使用,请先保存到本地。本内容不代表科创观点,未经原作者同意,请勿转载。

插入资源
全部
图片
视频
音频
附件
全部
未使用
已使用
正在上传
空空如也~
上传中..{{f.progress}}%
处理中..
上传失败,点击重试
等待中...
{{f.name}}
空空如也~
(视频){{r.oname}}
{{selectedResourcesId.indexOf(r.rid) + 1}}
处理中..
处理失败
插入表情
我的表情
共享表情
Emoji
上传
注意事项
最大尺寸100px,超过会被压缩。为保证效果,建议上传前自行处理。
建议上传自己DIY的表情,严禁上传侵权内容。
点击重试等待上传{{s.progress}}%处理中...已上传
空空如也~
草稿箱
加载中...
此处只插入正文,如果要使用草稿中的其余内容,请点击继续创作。
{{fromNow(d.toc)}}
{{getDraftInfo(d)}}
标题:{{d.t}}
内容:{{d.c}}
继续创作
删除插入插入
{{forum.displayName}}
{{forum.countThreads}}
篇文章,
{{forum.countPosts}}
条回复
{{forum.description || "暂无简介"}}
ID: {{user.uid}}
学术分隐藏
{{submitted?"":"投诉或举报"}}
请选择违规类型:
{{reason.description}}
支持的图片格式:jpg, jpeg, png
插入公式
分享回复:{{shareId}}
加载中...
评论控制
加载中...
文号:{{pid}}
加载中...
详情
详情
推送到专栏从专栏移除
设为匿名取消匿名
查看作者
回复
只看作者
加入收藏取消收藏
加入关注取消关注
折叠回复
置顶取消置顶
评学术分
鼓励
设为精选取消精选
建议修改
编辑
通过审核
评论控制
退修或删除
历史版本
违规记录
投诉或举报
加入黑名单移除黑名单
查看IP
{{format('YYYY/MM/DD HH:mm:ss', toc)}}
下载资料
{{fileName}}
大小:{{size}}
下载当前附件将花费 {{costMessage}}
{{description}}
你当前剩余 {{holdMessage}}
{{fileName}}
大小:{{size}}
当前附件免费。
你已购买过此附件,下载当前附件不需要花费积分。
加载中...
{{errorInfo}}
附件已丢失
当前账号的附件下载数量限制如下:
时段 个数
{{f.startingTime}}点 - {{f.endTime}}点 {{f.fileCount}}