【H3C小组】一、Arduino二级火箭分离开伞自动控制程序源码【原创】
game00over2012/07/13软件综合 IP:天津
放假这两天自学了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);
XXXXXXXXXgin(9600);
pinMode( 4 , OUTPUT);
pinMode( 2 , OUTPUT);
pinMode( 1 , OUTPUT);
}
void loop()
{
delay( 1500 );
XXXXXXXXXint( "System Start Success!!" );
XXXXXXXXXintln("");
digitalWrite( 1 , LOW );
XXXXXXXXXint( "Samera Turn On ......" );
XXXXXXXXXintln("");
delay( 10000 );
XXXXXXXXXint( "Camera Turn On Success!" );
XXXXXXXXXintln("");
digitalWrite( 2 , LOW );
delay( 100 );
digitalWrite( 2 , HIGH );
XXXXXXXXXint( "Camera Start ....." );
XXXXXXXXXintln("");
digitalWrite( 2 , LOW );
delay( 1000 );
digitalWrite( 2 , HIGH );
XXXXXXXXXint( "Camera Start Success!!" );
XXXXXXXXXintln("");
while ( ( ( analogRead(A5) ) <= ( 1 ) ) )
{
XXXXXXXXXint( "Wait Start....." );
XXXXXXXXXintln("");
delayMicroseconds( 1000 );
}
XXXXXXXXXint( "Start !!!" );
XXXXXXXXXintln("");
while ( ( ( analogRead(A5) ) >= ( 1 ) ) )
{
XXXXXXXXXint( "a=" );
XXXXXXXXXint( analogRead(A5) );
XXXXXXXXXintln("");
}
XXXXXXXXXint( "First Rocket Power Over!" );
XXXXXXXXXintln("");
XXXXXXXXXint( "Start Leave Program......" );
XXXXXXXXXintln("");
while ( ( ( analogRead(A5) ) < ( 1 ) ) )
{
digitalWrite( 3 , LOW );
delay( 2000 );
digitalWrite( 3 , HIGH );
delay( 1000 );
XXXXXXXXXint( "Second Fire....." );
XXXXXXXXXintln("");
}
delayMicroseconds( 1000 );
while ( ( ( analogRead(A5) ) < ( 1 ) ) )
{
XXXXXXXXXint( "Wait satrt....." );
XXXXXXXXXintln("");
delayMicroseconds( 1000 );
}
XXXXXXXXXint( "Second Frie Success!!" );
XXXXXXXXXintln("");
while ( ( ( analogRead(A5) ) >= ( 0 ) ) )
{
delayMicroseconds( 1000 );
XXXXXXXXXint( "a=" );
XXXXXXXXXint( analogRead(A5) );
XXXXXXXXXintln("");
}
delayMicroseconds( 1000 );
if (( ( analogRead(A5) ) <= ( 0 ) ))
{
XXXXXXXXXint( "[s:9]arachute Open....." );
XXXXXXXXXintln("");
digitalWrite( 4 , LOW );
delay( 2000 );
digitalWrite( 4 , HIGH );
while ( ( ( analogRead(A5) ) < ( 0 ) ) )
{
XXXXXXXXXint( "a=" );
XXXXXXXXXint( analogRead(A5) );
XXXXXXXXXintln("");
}
}
XXXXXXXXXint( "A Successful Landing" );
XXXXXXXXXintln("");
delay( 20000 );
XXXXXXXXXint( "Close Cream...." );
XXXXXXXXXintln("");
digitalWrite( 1 , HIGH );
XXXXXXXXXint( "Game00over" );
XXXXXXXXXintln("");
XXXXXXXXXint( "GPS" );
XXXXXXXXXintln("");
}


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

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

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

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

喜欢捣鼓的宅男

主体类型:个人
所属领域:无
认证方式:邮箱
IP归属地:未同步
插入公式
评论控制
加载中...
文号:{{pid}}
投诉或举报
加载中...
{{tip}}
请选择违规类型:
{{reason.type}}

空空如也

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