所有分类
主题 主题
平台 平台
我的工作台
userHead
注册时间 [[userInfo.create_time]]
创造力 [[userInfo.creativity]]
[[userInfo.remark]]
[[d.project_title]]
articleThumb
[[d.material_name]]
timelineThumb
进入工作台
折叠
所有分类 我的工作台
展开
micro:bit 红蓝大作战,消灭入侵植物加拿大一枝黄花
ElfeXu ElfeXu 2019-12-30 00:05:30
3
0
简单

在我国,有一种很常见的植物,秋天开黄花,名字就叫加拿大一枝黄花。

projectImage

这是一种可怕的入侵植物。它无性或有性都能繁殖,每株可以产2万粒种子;它还可以分泌一种液体,抑制身边的别的植物的生长。这种危险的植物竟是人为引来的!它在大约1930年来到中国,居然是被当做了观赏植物引入的!我觉得,自己的错要自己弥补嘛。为了保护本土植物,我们要加油消灭它!

projectImage

在我上幼儿园的时候,妈妈就教我辨认这种植物,告诉我看见了就要拔掉。我和朋友在野外看到都会随手拔掉。可加拿大一枝黄花实在是太多了,我拔到手疼也拔不完。看着大片大片的加拿大一枝黄花,我心里萌生了一个想法:正好赶上 micro:bit 创意征集赛,有个小目标是阻止入侵生物,我来做一个专门消灭它的 microbit 机器吧! 

projectImage

对小朋友来说,最方便的方法就是趁着它开花容易辨认时把它连根拔掉。可是反复的拔草非常枯燥,我怎么才可以让它变得有趣呢?这时候,游戏化就非常有用了,我把它做成了一个红蓝大作战游戏,用游戏化的方式让大家拔得更起劲,这样就能消灭更多加拿大一枝黄花了。

projectImage

规则是:分两组,海报上有作战灯条,刚打开开关的时候一半蓝一半红。

projectImage

每组拔了加拿大一枝黄花后就放进自己的垃圾桶里。放的时候盖子打开,盖子上的 micro:bit 徽标朝上了,就会发信号给连接灯条的 micro:bit,就有一盏灯会变成自己队的颜色。

projectImage

当灯条全部变成红色时就是红队赢了,反之亦然。灯条颜色的变化会让两队队员非常兴奋,抢着多拔一些加拿大一枝黄花扔垃圾桶里,竞争越激烈,消灭得就越快。下面照片上就是红队快赢了。

projectImage

下面我来详细介绍一下这个产品的原理。

垃圾桶盖上的 micro:bit, 每当徽标朝上就知道盖子竖起来,也就是打开了,就会发送数字。蓝组红组发送的数字不一样。

projectImage
projectImage

海报背后的主控板接受到数据,根据不同的数字,它就能知道是红队还是蓝队的。

projectImage

micro:bit 通过扩展板连了灯带,用 neopixel 扩展。

开机时先把灯带划分为蓝区和红区。接到信号后,每次都是把灯带移动一格然后再把最头上那格变成红色或者把最尾巴那格变成蓝色。

projectImage
材料清单 材料清单
3x
micro:bit
1x
micro:bit 扩展板
1x
有30个LED灯的灯条
2x
小电池盒或移动电源
1x
5V充电电池的电池盒
1x
硬纸板箱子,纸板,冰棍棒,饮料瓶嘴,美纹胶,海报

可惜今年我完成这个作品时,已经错过了消灭加拿大一枝黄花的最佳时机。等到明年十月,我再用它开展消灭加拿大一枝黄花的红蓝大作战的比赛。我还为比赛设计了专属 micro:bit 小人、创作了一幅带漫画的海报呢。我会把这个发到我的公众号去,号召更多人一起来参加红蓝大作战。

projectImage
projectImage
projectImage

现在的红蓝大作战用的是 micro:bit 感应到徽标朝上的功能。之前我还试过别的方法。

比如我一开始在剪刀上贴导电铜箔,想通过剪刀剪下一枝黄花的时候导电来计数。但是后来发现不同人用剪刀的习惯很不一样,有人会嚓嚓嚓不停的动,想不作弊都难。

projectImage

后来我又想把 micro:bit 贴在塑料袋底部,每次拔了花扔进塑料袋的时候都会晃动,就可以用振动感应的功能来计数了。但后来我发现东西放得越来越多,袋子底部就越来越稳,计数也不准确。

projectImage

所以最终我选择了用纸箱做成垃圾桶,把计数用的 micro:bit 贴在盖子上的办法。这样做有一点点麻烦,就是外出消灭加拿大一枝黄花时还得带上垃圾桶。但也有一个好处:平时我们可以把它放在学校里,让同学们比赛看哪个组收的可回收垃圾多。

Makelog作者原创文章,未经授权禁止转载。
3
0
评论
[[c.user_name]] [[c.create_time]]
[[c.parent_comment.count]]
[[c.comment_content]]