micro:bit造物粒子(基于Mind+)13— 拆弹游戏-Arduino中文社区 - Powered by Discuz! Archiver

dfrobot 发表于 2019-11-18 15:22

micro:bit造物粒子(基于Mind+)13— 拆弹游戏

本帖最后由 dfrobot 于 2019-11-18 15:39 编辑

micro:bit造物粒子(基于Mind+)13— 拆弹游戏
麦克的故事小朋友们要来麦克家里做客了,麦克很高兴,麦克想把自己最喜欢的玩具拿出来和小朋友们分享,有遥控汽车,遥控飞机麦克觉得这些玩具没有什么新奇的,怎样才能够做一个属于麦克的游戏呢?麦克决定用micro:bit和BOSON做一个炫酷的游戏——拆弹游戏,考验一下小伙伴们的反应能力吧。http://mc.dfrobot.com.cn/data/attachment/forum/201808/07/151524txgxuzz4nxfenwhx.png所需元件
1×micro:bit主控板http://mc.dfrobot.com.cn/data/attachment/forum/201808/07/151548kchm9r5rnzw8z21y.png1×micro:bit扩展板http://mc.dfrobot.com.cn/data/attachment/forum/201808/07/151606q1le18cmek1eez97.png1× 彩虹灯带http://mc.dfrobot.com.cn/data/attachment/forum/201808/07/151619thsyj5v4jlls9szs.png
1×MicroUSB 连接线http://mc.dfrobot.com.cn/data/attachment/forum/201808/07/151636fra199rqa9zlkuz6.png

实现功能启动micro:bit之后,LED灯模拟的引线会开始燃烧,当引线烧至最后时炸弹会引爆。麦克需要在炸弹引爆前,根据micro:bit提示的方向依次将板子向不同的方向倾斜,快速解锁炸弹才能避免“**”。这样的拆弹装置由三个部分组成:1.    动作识别:用来识别倾斜的方向是否和指示的方向一致。2.    灯光交互:为LED灯设置引线燃烧的效果,经过时间越长剩余点亮的LED灯越少。3.    计分系统:在LED灯全部熄灭之前完成20个动作则拆弹成功;LED灯全部熄灭时仍然没有完成,则判定游戏结束。硬件连接
将彩虹灯带接在扩展板的P0号接口。http://mc.dfrobot.com.cn/data/attachment/forum/201808/07/151658bh22ti2echncach3.png编写程序STEP1:动作识别首先我们需要让micro:bit能够产生并显示随机的方向,在我们向该方向倾斜操作时能识别出来,随后随机显示下一个方向。这样的一个程序的流程图大致如下。
在游戏过程中,只有当我们的操作与随机产生的指示箭头一致时,才会进行下一步操作,否则一直保持当前的箭头方向。http://mc.dfrobot.com.cn/data/attachment/forum/201808/07/151858p766vu10vdsw76vs.png怎样产生随机方向呢?
可以用0~3四个数字代表四个方向,使用数学Math下的子模块产生随机数模块“选取0至()”来从0~3四个数字中随机选择一个数字。http://mc.dfrobot.com.cn/data/attachment/forum/201808/07/151922osts3kchq1ksx9dq.png建立一个函数“产生随机方向”,对应产生的随机数,显示不同的箭头。http://mc.dfrobot.com.cn/data/attachment/forum/201808/07/151946ba3a6hkh33szah7h.png怎样判读倾斜操作的实际方向呢?
通过在输入input下的姿势识别模块来读取micro:bit的倾斜方向,并且分别对应到0~3中。http://mc.dfrobot.com.cn/data/attachment/forum/201808/07/152032moaejii4dn5710qe.png通过一个如果if语句条件判断,操作方向与目标方向是否一致。http://mc.dfrobot.com.cn/data/attachment/forum/201808/07/152109scvixmzvoio1hv51.png这个部分的完整程序为:http://mc.dfrobot.com.cn/data/attachment/forum/201808/07/152134a75xfcfpncfhg5hj.png注意:“如果为While语句”用于保证两次随机出现的方向不相同。STEP2:制作炸弹程序
炸弹的效果通过彩色灯带显示,使用灯带来模拟炸弹的保险丝。随着时间的推移,保险丝上的led灯珠将会以稳定的速度相继熄灭。所以反应速度越快,小灯剩余数量越多。http://mc.dfrobot.com.cn/data/attachment/forum/201808/07/152227b7v66mmcsivzoc4m.png怎么实现倒计时?建立时间函数,通过计数的形式,设置每次计时的时间间隔,为(1*100)*100ms.一次计时间隔结束,小灯数量减1.
注意:因为micro:bit在处理数据时会消耗到一定的时间,所以倒计时模块实际运行时会走得慢一些。时间倒计时的同时,小灯的显示部分:http://mc.dfrobot.com.cn/data/attachment/forum/201808/07/152315aaeijq0n02t9d727.png这个部分的完整程序:http://mc.dfrobot.com.cn/data/attachment/forum/201808/07/152337plnt0pptx8rngxwx.pngSTEP3:增加计分功能在操作过程中,每次操作方向和目标方向一致,积一分,直到积满20分,并且此时LED灯珠数量大于0,那么挑战成功,拆单成功,最终得分为LED灯珠剩余个数;否则,失败。
流程图大致如下:http://mc.dfrobot.com.cn/data/attachment/forum/201808/07/152426hxyx68pxu698oo6n.png判断是否成功及失败的程序如下:http://mc.dfrobot.com.cn/data/attachment/forum/201808/07/152507tl10bgwgz1clgs2p.png计分部分可以合并在主程序中STEP4:最终程序。http://mc.dfrobot.com.cn/data/attachment/forum/201808/07/152556dwf2pbg5516avg8p.png
能力提升1.尝试加快LED灯的熄灭速度,增加游戏难度;2.将上下左右方向用其他图形替代,挑战更高难度的下的反应力。希望你的micro:bit之旅不会止步,用你的奇思妙想,玩出更多新颖有创意的作品。如果你愿意与我们分享的话,也可以直接登陆我们的论坛,让我们的社区论坛记录下你的点点滴滴!欢迎登陆DFRobot创客社区!
更多课程,欢迎点击以下链接

[*]入门课程

[*]micro:bit造物粒子(基于Mind+)— 入门篇
[*]micro:bit造物粒子(基于Mind+)02— 自制表情包
[*]micro:bit造物粒子(基于Mind+)03— 闪烁的LED
[*]micro:bit造物粒子(基于Mind+)04— 手控信号灯
[*]micro:bit造物粒子(基于Mind+)05— 变速风扇
[*]micro:bit造物粒子(基于Mind+)06— 电子蜡烛
[*]micro:bit造物粒子(基于Mind+)07— 自动门
[*]micro:bit造物粒子(基于Mind+)08— 音乐盒
[*]micro:bit造物粒子(基于Mind+)09— 炫彩灯带
进阶课程
[*]micro:bit造物粒子(基于Mind+)10— 自平衡仪
[*]micro:bit造物粒子(基于Mind+)11— DJ演奏台
[*]micro:bit造物粒子(基于Mind+)12— 可移动门铃
[*]micro:bit造物粒子(基于Mind+)13— 拆弹游戏
▲mind+官网:http://www.mindplus.ccMind+最早是由DFRobot公司于2013年推出的图形化编程软件,能够让不懂编程的艺术家们通过几分钟的学习即可控制Arduino开源硬件,从而拓宽一些新的思维方式

taborguo 发表于 2020-11-6 15:46

:handshake

a2j0tud 发表于 2021-10-28 15:43

页: [1]
查看完整版本: micro:bit造物粒子(基于Mind+)13— 拆弹游戏