6470浏览
查看: 6470|回复: 6

[动态] 【比赛优秀作品】​中国酒泉卫星发射中心火箭转运模型

[复制链接]

中国酒泉卫星发射中心火箭转运模型


作品来源:第五届全国青少年人工智能挑战赛-开源硬件创意智造专项赛优秀作品

参赛学生:酒泉育才学校  程明祥  刘彦斌

指导老师:茹兵山  马建东


我的家乡是个美丽的地方,它有令人心旷神怡的秀丽风景,也有体现人文历史的雄伟建筑,还有令人垂涎欲滴的美味佳肴。作为当地的小主人公,请你运用所学的科技知识,结合本地元素创作出一个具有家乡特色的作品。

【比赛优秀作品】​中国酒泉卫星发射中心火箭转运模型图1

步骤1:方案讨论

接到这个任务,我们小组先对家乡比较出名的事物列举了一遍。

“要说家乡酒泉出名的无非就是酒泉拉条子、 酒泉拨疙瘩、酒泉凉皮面、酒泉牛肉拉面、酒泉麻辣烫……”说着自己的都口水下来了。

“嗨,你个吃货,就惦记着吃”我被组员打断了。

“对了,酒泉出名的还有月牙泉、 西汉胜迹、敦煌莫高窟、酒泉卫星发射 ……”

突然,眼前一亮,脑海中有了这样的画面:一千多年前,先民们在莫高窟的洞壁上绘制出了美丽的飞天,向浩渺苍穹发出第一声叩问。千年之后,神舟系列载人飞船乘坐火箭又从酒泉卫星发射中心起航,龙行太空,飞天梦圆。古代飞天和现代飞天都诞生于酒泉,仿佛天作之合。

酒泉卫星发射这个主题,要是排第二,就没有第一了。但是模拟火箭发射似乎重点需要解决火箭如何从地面飞起来,我们拿着可用器材清单仔细看了十遍,要让火箭上天,只能变成蘑菇云才能上去。拉来一火车这些硬件也没有办法。

我们灵机一动,何不给大家讲讲火箭发射之前的故事呢,于是开始找度娘……

我们从网络上找到了这些图片

【比赛优秀作品】​中国酒泉卫星发射中心火箭转运模型图2

上图提取到的信息:一丝不苟,分秒不差

【比赛优秀作品】​中国酒泉卫星发射中心火箭转运模型图3

上图提取到的信息:火箭是在这样的厂房里组装好的,这个门是一个向上开启的卷帘

【比赛优秀作品】​中国酒泉卫星发射中心火箭转运模型图4

上图提取到的信息:火箭是沿专用道路被牵引直立行走的

【比赛优秀作品】​中国酒泉卫星发射中心火箭转运模型图5

上图提取到的信息:

1.万无一失、圆满成功。

2.火箭移动到发射架上之后被发射架架臂抱住。

从这些图片上提取到有用的信息之后,我们讨论出了大致思路:
  • 语音命令控制“火箭转运开始”;
  • 卷帘门开启;
  • 火箭出厂房;
  • 沿道路缓慢移动到发射塔架处;
  • 人脸摄像头识别到火箭标签后,塔架抱住火箭;

整个过程结束。

转运前,通过物联网获取天气信息播报出来,根据天气状况判断是否适合火箭转运,并用语音合成播放出来。屏幕显示温度湿度等信息……

思路有了,开工!

步骤2:设计并加工外观

两人一起讨论设计外观结构,计划用PVC板加工,这种板材比KT板结实一点,还有一个优点就是可用小刀随意加工。

【比赛优秀作品】​中国酒泉卫星发射中心火箭转运模型图6

【比赛优秀作品】​中国酒泉卫星发射中心火箭转运模型图7

设计完再次确认没有问题,就发到广告加工厂代加工,同伴负责去加工并带回来,我负责火箭模型和程序。

【比赛优秀作品】​中国酒泉卫星发射中心火箭转运模型图8

学校爱国教育展厅里好像有好多火箭,去看一看真没白跑,大大小小一共有4个。

【比赛优秀作品】​中国酒泉卫星发射中心火箭转运模型图9

这个尺寸刚刚好,最高的那个就算了吧。

【比赛优秀作品】​中国酒泉卫星发射中心火箭转运模型图10

底座直接拧下来

【比赛优秀作品】​中国酒泉卫星发射中心火箭转运模型图11

小车平台刚好做移动支架

【比赛优秀作品】​中国酒泉卫星发射中心火箭转运模型图12

【比赛优秀作品】​中国酒泉卫星发射中心火箭转运模型图13

去掉电机,找两个轮子安上

【比赛优秀作品】​中国酒泉卫星发射中心火箭转运模型图14

尺寸刚刚好

【比赛优秀作品】​中国酒泉卫星发射中心火箭转运模型图15

严丝合缝

【比赛优秀作品】​中国酒泉卫星发射中心火箭转运模型图16

【比赛优秀作品】​中国酒泉卫星发射中心火箭转运模型图17

完美!

其实最开始打算是用泡沫材料做一个火箭模型,当然这是小菜一碟,为了节省工夫,直接把现有的成品模型稍加改造,做到了旧物利用,展厅其实有两个火箭就足够了,放多了浪费。管理员把火箭借给我们,真是大意了,很可能就肉包子打狗,有去无回了。

接下来把镜头切换到伙伴那里。

直接在板材上打印,太方便了,刚打印完墨水就干了。

【比赛优秀作品】​中国酒泉卫星发射中心火箭转运模型图18

接下来是切割。

原来是利钻头高速旋转切开的,长见识了。机器长了眼睛,比手工裁的精准多了。

【比赛优秀作品】​中国酒泉卫星发射中心火箭转运模型图19

【比赛优秀作品】​中国酒泉卫星发射中心火箭转运模型图20

【比赛优秀作品】​中国酒泉卫星发射中心火箭转运模型图21

步骤3:外观组装及硬件连接

拉回来就迫不及待开始组装

【比赛优秀作品】​中国酒泉卫星发射中心火箭转运模型图22

三秒胶贴这种板材,真是绝配

【比赛优秀作品】​中国酒泉卫星发射中心火箭转运模型图23

【比赛优秀作品】​中国酒泉卫星发射中心火箭转运模型图24

几分钟,火箭发射架就有形了

【比赛优秀作品】​中国酒泉卫星发射中心火箭转运模型图25

下面是垂直总装厂房组装

这里需要用到物理课上学过的滑轮,打电话给物理刘老师,刚好在学校,直接去物理实验室淘了一堆。

【比赛优秀作品】​中国酒泉卫星发射中心火箭转运模型图26

配合美工刀和三秒胶,你可以做出任何结构。

【比赛优秀作品】​中国酒泉卫星发射中心火箭转运模型图27

【比赛优秀作品】​中国酒泉卫星发射中心火箭转运模型图28

【比赛优秀作品】​中国酒泉卫星发射中心火箭转运模型图29

【比赛优秀作品】​中国酒泉卫星发射中心火箭转运模型图30

【比赛优秀作品】​中国酒泉卫星发射中心火箭转运模型图31

外观结构和所有电子元器件都安装到位,整体外观颜值还不错。

【比赛优秀作品】​中国酒泉卫星发射中心火箭转运模型图32

步骤3:程序编写与调试


根据最开始讨论的大致思路,在伙伴做外观的同时,我就已经调试好了程序。

同伴做结构时把相关元器件就固定到了相应位置,简单调试后。基本功能可以实现了。

【比赛优秀作品】​中国酒泉卫星发射中心火箭转运模型图33

【比赛优秀作品】​中国酒泉卫星发射中心火箭转运模型图34

【比赛优秀作品】​中国酒泉卫星发射中心火箭转运模型图35

【比赛优秀作品】​中国酒泉卫星发射中心火箭转运模型图36

步骤5:成品展示

总装厂房特写

【比赛优秀作品】​中国酒泉卫星发射中心火箭转运模型图37

发射架特写

【比赛优秀作品】​中国酒泉卫星发射中心火箭转运模型图38

张开臂膀的发射架

【比赛优秀作品】​中国酒泉卫星发射中心火箭转运模型图39

从后面来一张

【比赛优秀作品】​中国酒泉卫星发射中心火箭转运模型图40

右方45度特写

【比赛优秀作品】​中国酒泉卫星发射中心火箭转运模型图41


【比赛优秀作品】​中国酒泉卫星发射中心火箭转运模型图42


硬件清单

Micro:bit主控板  x1

Micro:bit I/O扩展板  x1

人工智能视觉传感器  x1

RGB灯带  x1

舵机  x2

语音识别模块  x1

语音合成模块  x1

OLED显示屏  x1
  数字按钮  x1

模拟角度传感器  x1

温湿度传感器  x1

桌面机器人平台  x1

USB数据线  x1

连接线  x100

代码:

  1. /*!
  2. * MindPlus
  3. * microbit
  4. *
  5. */
  6. #include <DFRobot_DHT.h>
  7. #include <IOBOX_Motor.h>
  8. #include <DFRobot_Task.h>
  9. #include <DFRobot_ASR_M.h>
  10. #include <DFRobot_Servo.h>
  11. #include <DFRobot_HuskyLens.h>
  12. #include <DFRobot_SSD1306_I2C.h>
  13. #include <DFRobot_SpeechSynthesis_M.h>
  14. // 动态变量
  15. volatile float mind_n_FengLi, mind_n_ZuoDuoJi, mind_n_YouDuoJi;
  16. newTask(loop1)
  17. // 静态常量
  18. const chCode chBuf[] = {
  19.         {0x6e29,0xe6b8a9,0xCEC2,{0x00,0x00,0x23,0xf8,0x12,0x08,0x12,0x08,0x83,0xf8,0x42,0x08,0x42,0x08,0x13,0xf8,0x10,0x00,0x27,0xfc,0xe4,0xa4,0x24,0xa4,0x24,0xa4,0x24,0xa4,0x2f,0xfe,0x00,0x00}},
  20.         {0x5ea6,0xe5baa6,0xB6C8,{0x01,0x00,0x00,0x80,0x3f,0xfe,0x22,0x20,0x22,0x20,0x3f,0xfc,0x22,0x20,0x22,0x20,0x23,0xe0,0x20,0x00,0x2f,0xf0,0x24,0x10,0x42,0x20,0x41,0xc0,0x86,0x30,0x38,0x0e}},
  21.         {0xff1a,0xefbc9a,0xA3BA,{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x00,0x30,0x00,0x00,0x00,0x30,0x00,0x30,0x00,0x00,0x00,0x00,0x00}},
  22.         {0x6e7f,0xe6b9bf,0xCAAA,{0x00,0x00,0x27,0xf8,0x14,0x08,0x14,0x08,0x87,0xf8,0x44,0x08,0x44,0x08,0x17,0xf8,0x11,0x20,0x21,0x20,0xe9,0x24,0x25,0x28,0x23,0x30,0x21,0x20,0x2f,0xfe,0x00,0x00}},
  23.         {0x98ce,0xe9a38e,0xB7E7,{0x00,0x00,0x3f,0xf0,0x20,0x10,0x20,0x10,0x28,0x50,0x24,0x50,0x22,0x90,0x22,0x90,0x21,0x10,0x21,0x10,0x22,0x90,0x22,0x92,0x24,0x4a,0x48,0x4a,0x40,0x06,0x80,0x02}},
  24.         {0x529b,0xe58a9b,0xC1A6,{0x02,0x00,0x02,0x00,0x02,0x00,0x02,0x00,0x7f,0xf8,0x02,0x08,0x02,0x08,0x02,0x08,0x02,0x08,0x04,0x08,0x04,0x08,0x08,0x08,0x08,0x08,0x10,0x88,0x20,0x50,0x40,0x20}},
  25.         {0x4e00,0xe4b880,0xD2BB,{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xfe,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}},
  26.         {0x7ea7,0xe7baa7,0xBCB6,{0x10,0x00,0x13,0xfc,0x20,0x84,0x20,0x88,0x48,0x88,0xf8,0x90,0x10,0x9c,0x20,0x84,0x41,0x44,0xf9,0x44,0x41,0x28,0x01,0x28,0x1a,0x10,0xe2,0x28,0x44,0x44,0x01,0x82}}
  27. };
  28. // 创建对象
  29. DFRobot_HuskyLens           huskylens;
  30. DFRobot_SSD1306_I2C         oled12864;
  31. DFRobot_SpeechSynthesis_I2C sstts;
  32. DFRobot_ASR                 asr;
  33. DFRobot_DHT                 dht11_16;
  34. Servo                       servo_12;
  35. Servo                       servo_13;
  36. IOBOX_Motor                 motor_ib;
  37. // 主程序开始
  38. void setup() {
  39.         dht11_16.begin(16, DHT11);
  40.         oled12864.setChCode(chBuf);
  41.         servo_12.attach(12);
  42.         servo_13.attach(13);
  43.         huskylens.beginSoftwareSerialUntilSuccess(14, 13);
  44.         huskylens.writeAlgorithm(ALGORITHM_TAG_RECOGNITION);
  45.         oled12864.begin(0x3c);
  46.         sstts.begin(sstts.eV1);
  47.         sstts.setVolume(10);
  48.         sstts.setSpeed(5);
  49.         sstts.setSoundType(sstts.eMale1);
  50.         sstts.setTone(5);
  51.         asr.begin(LOOP, MIC);
  52.         asr.addCommand("huo jian zhuan yun kai shi", 1);
  53.         asr.start();
  54.         mind_n_FengLi = 1;
  55.         oled12864.setCursorLine(2);
  56.         oled12864.printLine((String("温度:") + String(dht11_16.getTemperature())));
  57.         // 实时显示温湿度
  58.         oled12864.setCursorLine(3);
  59.         oled12864.printLine((String("湿度:") + String(dht11_16.getHumidity())));
  60.         oled12864.setCursorLine(4);
  61.         oled12864.printLine((String("风力:") + String("一级")));
  62. }
  63. void loop() {
  64.         // 通过旋钮开关控制摇臂开合
  65.         servo_12.angle(abs((map((analogRead(0)), 0, 1023, 175, 70))));
  66.         servo_13.angle(abs((map((analogRead(0)), 0, 1023, 10, 100))));
  67.         // 接收指令
  68.         if (((asr.read()==1) || ((digitalRead(8))==1))) {
  69.                 sstts.speak("收到命令,正在检测天气状况,请稍等");
  70.                 delay(3000);
  71.                 // 判断条件,是否能够进行转运
  72.                 if ((mind_n_FengLi<=3)) {
  73.                         // 播报实时天气情况
  74.                         sstts.speak((String((String((String("温度:") + String(dht11_16.getTemperature()))) + String((String("湿度:") + String(dht11_16.getHumidity()))))) + String("风力一级,天气状况良好,火箭转运启动中")));
  75.                         delay(5500);
  76.                         sstts.speak("正在开启厂房大门,预计需要20秒");
  77.                         // 开启厂房大门
  78.                         motor_ib.motorRun(motor_ib.M1, motor_ib.CW, 45);
  79.                         delay(18000);
  80.                         motor_ib.motorStop(motor_ib.M1);
  81.                         sstts.speak("大门已开启,火箭即将移动");
  82.                         delay(2000);
  83.                         sstts.speak("火箭开始转运,预计需要三分钟");
  84.                         // 牵引火箭转运,直到识别到二维码后停止·
  85.                         while (!(huskylens.readBlockCenterParameterDirect().ID==1)) {
  86.                                 motor_ib.motorRun(motor_ib.M2, motor_ib.CW, 45);
  87.                                 yield();
  88.                         }
  89.                         motor_ib.motorStop(motor_ib.M2);
  90.                         sstts.speak("火箭已转运到指定位置,发射架摇臂即将启动");
  91.                         delay(3500);
  92.                         taskStart(loop1);
  93.                 }
  94.                 else {
  95.                         sstts.speak("当前天气状况不适合火箭转运,请另行选择转运时间");
  96.                         delay(5500);
  97.                 }
  98.         }
  99. }
  100. // 子线程1程序开始
  101. void loop1::setup() {
  102.         servo_12.attach(12);
  103.         servo_13.attach(13);
  104.         mind_n_ZuoDuoJi = 70;
  105.         mind_n_YouDuoJi = 100;
  106.         sstts.speak("发射架摇臂正在转动");
  107.         for (int index = 0; index < 245; index++) {
  108.                 delay(45);
  109.                 servo_12.angle(abs(mind_n_ZuoDuoJi));
  110.                 mind_n_ZuoDuoJi += 0.44;
  111.                 servo_13.angle(abs(mind_n_YouDuoJi));
  112.                 mind_n_YouDuoJi -= 0.4;
  113.                 yield();
  114.         }
  115.         sstts.speak("发射架摇臂已转动到目标位置,火箭转运过程完毕,感谢观看");
  116. }
  117. void loop1::loop() {
  118. }
复制代码

视频

以下是最终作品解说视频

步骤6:作品总结及反思

本次作品制作过程中,遇到了以下几个问题:

1.舵机转动速度太快,带到发射架摇臂时有点吃力,我们设置了一个角度变量,用循环次数配合等待时间控制舵机转动速度,完美解决这个问题。

2.硬件清单里没有风速传感器,所以程序里面的风速是直接指定数值

3.解说员的普通话水平还有待提升

附件下载:

附件包含的文件如下:

接线图、元件清单、程序截图、sb3源程序

下载附件中国酒泉卫星发射中心火箭转运模型.zip

hnyzcj  版主

发表于 2023-5-5 05:41:16

结构件做的很赞
回复

使用道具 举报

云天  初级技神

发表于 2023-5-5 10:34:24

动手制作能力很强!!!
回复

使用道具 举报

木子呢  管理员
 楼主|

发表于 2023-5-5 10:39:33

hnyzcj 发表于 2023-5-4 21:41
结构件做的很赞

是的呢
回复

使用道具 举报

木子呢  管理员
 楼主|

发表于 2023-5-5 10:39:59

云天 发表于 2023-5-5 02:34
动手制作能力很强!!!

是呢,这些学生很棒
回复

使用道具 举报

王晓鹏  见习技师 来自手机

发表于 2023-5-7 10:28:01

厉害
回复

使用道具 举报

白凡  高级技师

发表于 2023-5-11 09:08:16

666666
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail