硬件编程【2】小学生用瑞比特(micro:bit)设计《拆弹计时器》

论坛 期权论坛 期权     
从小爱编程   2020-4-3 23:57   1098   0

在《极限挑战》节目中看到一个拆炸弹的游戏,惊心动魄!那我们自己制作一个《拆弹计时器》吧!这是道具哦!可不能制作真炸弹哦!

[iframe]https://mp.weixin.qq.com/mp/readtemplate?t=pages/video_player_tmpl&action=mpvideo&auto=0&vid=wxv_1276270532635262977[/iframe]
1. 硬件搭建



(1)硬件:瑞比特、扩展板、四位数码管、面包板、USB数据线、杜邦线(4根)

(2)接线:数码管有4根针(CLK、DIO、VCC、GND),用杜邦线将数码管的CLK与扩展板的PIN1,DIO连接扩展板的PIN2,VCC和GND分别接扩展板的VCC和GND。


当然,可以用杜邦线直接连接。这里为了固定数码管,我们采用了白色的面包板,两排插孔之间采用订书针连通。瑞比特主板上USB口用USB数据线连接电脑的USB,用以下载编写的脚本程序。
(3)扩展TM1637

在MakeCode软件中只列出了常用的积木菜单,我们驱动数码管显示时需要TM1637扩展功能,采用以下方法添加该扩展功能:



2. 编程过程

采用MakeCode图形化脚本编程软件,编写一个倒计时器程序,让四位数码管显示一个四位数,并且以1秒为间隔,不断减少数字的显示。

(1)设置变量

我们设置t、tt、个位、十位、百位、千位这几个变量,如下图所示,tm和item变量在加载TM1637扩展库之后就自动设置了。t是主程序设置的一个数值,tt是t的替身,在数字提取函数中用来存储迭代的余数。


(2)提取数字的函数

该函数需要一个输入参数,就是将一个数值(例如4321)的千、百、十、个位的数字提取出来,为数码管的4个点位分别显示这四位数做准备。



算法

t=4321
千位=[t-t÷1000的余数]÷1000

       =[4321-321]÷1000=4



t=t÷1000的余数=321

百位=[t-t÷100的余数]÷100
       =[321-21]÷100=3


t=t÷100的余数=21

十位=[t-t÷10的余数]÷10
       =[21-1]÷10=2


个位=t÷10的余数=1



脚本:



脚本的搭建方式,与Scratch和编程猫等图形化编程语言是相通的。我们学习了Scratch后,玩micro:bit就非常轻松。
教程:




(3)数码管显示函数
通过数字提取函数处理之后,个位、十位、百位、千位这4个变量中就存储了一个数字,将这4个数字作为4个参数传递给数码管显示函数。4位数码管有4个点位,编号为0、1、2、3,我们可以将前面提取的四个数字分别安排在每个点位。

脚本:


教程:



(4)主程序
当开机时,设置t=600毫秒。然后执行无限循环,调用提取数字的函数、调用数码管显示函数,暂停0.1秒(100毫秒),t减小1,下一次循环,判断t是否≥0,如此往复,从而实现倒计时:60秒、59秒、……

脚本:



教程:





3.硬件调试

点击界面左下方的“下载”,稍等半分钟,我们编写的脚本程序就可以下载到microbit的硬件中,随后就开始了60秒的倒计时。赶快试一试吧!





最好的亲子编程经验第一时间发布,感谢关注
感谢您点击右下方的【在看】发表评论
感谢您分享到朋友圈,您的分享是我们成长的动力!
长按下图二维码,关注【从小爱编程】!
分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:19
帖子:3
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP