多个bit位整合成一个byte输出_Micro:Bit儿童编程神器第2课:25颗LED灯怎么玩

57f421de912418757c675a2f191b3182.png

上节课“Micro:Bit儿童编程神器第1课:认识硬件和工具,制作第一个程序”,我们已经了解了micro:bit的硬件,以及如何编程程序并让它运行在micro:bit,这节课我们开始进入正式的micro:bit图形编程课程。

本节课我们将学习micro:bit最重要的输出设备的操作:5x5的25颗LED灯,只有这个设备是micro:bit唯一一个不需要接外部设备就可以使用的输出设备,我们大量的课程都需要用到它,所以大家要掌握好本节课。

我们先打开浏览器访问 https://makecode.microbit.org/ ,然后把micro:bit接到电脑上面。


如何显示数字

首先我们来学习一下怎么在LED上面显示数字,这个是非常简单的,只需要如下操作,点击“基本”,然后选择“显示数字”积木,然后点击,拖放到编程区的无限循环里面:

a4d67db24d463b0dabe30de5919fa9dd.png

椭圆圈里面的数字0是可以点击进行修改的,可以改成任何我们想要的数字,如果是1位数字(0到9)则直接显示,如果是2位及以上数字,比如100之类的,因为LED只有5x5,所以会滚动显示。

78134e2c0c4065fb32491d5760749f85.gif

如何显示字符串

  • 什么是字符串

字符串是由零个或多个字符组成的有限序列,比如字母、汉字、标点、符号、两边有引号的数字等等。

  • 显示字符串

显示字符串也跟显示数字类似,一样在“基本”区域里面找到“显示字符串”积木块,一样完成操作:

2802a31c4d47805e8098a1a70c1ddd22.png

小朋友可以看到,字符串都是用引号圈起来的,如果切换到JavaScript代码模式,也可以用单引号,一样效果。

另外小朋友也许想显示汉字,但是汉字复杂度高,所以makecode不支持在LED上显示带汉字的字符串,如果要支持汉字的话,需要我们用更大的LED阵列或者LCD屏幕,这个后面我们专门课程再来讲。上面的代码显示的结果如下:

ee4dcbfca1b83f1442ee07b4d9f6370c.gif

如何显示图形

数字和字符都学会了,那么有的小朋友可能会想,我要是想有图形怎么办呢,我们可以让micro:bit帮我们画出来:

  • 怎么显示自定义图形

我们会发现在“基本”里面有一个“显示LED”的积木块,这个就是用来我们设计图形给micro:bit显示的,我们把它拖放到编程区的“无限循环”里面,现在我们来画个箭头,鼠标点击格子就会变亮,这代表着对应的LED灯会亮起,这样有的亮有的不亮就形成了一个图形:

ba1c530ddcd09ac42d0344a81e4a591c.png

显示的结果就是:

bba363aa6fa35b26d8d54e32c95765e9.png
  • 自定义图形

makecode也内置了一些图形,这样我们可以直接拿来用,这个通过“基本”里面的“显示图标”就可以做到,我们可以看到里面内置了一些图形,我们可以在程序里面去使用:

a62ecf7afb45b8d334f2247f6c9d3d8a.png

上面是基本的LED灯操作,那有同学问如果想要更深入单独控制某个灯,或者知道某个灯的状态,那么makecode也提供了一系列的积木块,这些都归类到“LED”类别里面

如何单独操作某个LED灯

  • 首先需要了解LED点阵
fe4137d8f12d57e8f28ef3b89e7d11f5.png

要操作某个特殊的LED灯,我们就需要找到他,那么怎么找到呢?如图所示,5x5的LED灯是规则排列的,任何一个灯,在行和列上都有固定的位置,从左往右的列依次从数字0到数字4,从上到下的行也是依次从数字0到4。比如左上角的那个灯,在0列0行上面,也就是x=0,y=0,简写为(0,0);右上角x=4,y=0,简写为(4,0);左下角为x=0,y=4,简写为(0,4);右下角x=4,y=4,简写为(4,4)。在数学上称之为坐标,这个是跟笛卡尔坐标系是不一致的,如果有同学学过笛卡尔坐标系,不要搞混了。好了,知道了这个以后,我们就很容易对任何一颗灯珠进行操作了。

  • 如何操作某个LED灯显示

很简单,我们想让(2,3)和(4,1)两个灯亮起来,用“绘图”积木块:

6a333db9de74a47676dc1608f4f72cb8.png
  • 如何操作某个LED灯熄灭

还是刚才那两个灯,这次我们先设置开机的时候亮起来,然后亮500毫秒(就是半秒钟,用“基本”里面的“暂停”模块),然后熄灭(用的“取消绘图”积木块):

7c07ea1dd0f992fb15962977203b434c.png

如果不用暂停,那么因为执行速度快,一上来就会是不亮的,其实是先亮了再灭,我们人为把亮的时间延长了半秒。设想一下,如果交替显示和不显示,并有暂停时间,会有什么效果。

  • 如何获得某个LED灯的开闭状态

有时候,我们需要获得某个灯是否亮起的状态,那么用“LED”类别下的“点”积木块,这是个菱形块,代表的是布尔数值,也就是亮起代表着真(True),熄灭状态是(False),这个广泛用于条件或者循环之中。

  • 如何控制某个LED灯的亮度

每个LED灯的亮度有256级,从0到255,0是关闭状态,255是最亮状态,注意:这个积木块在“LED”类别的“...更多”里面

f7423f2a9fb1ffc0381e4f9474171d6f.png
  • “切换”积木,用于交换x,y坐标,也就是变成(y,x),比如(2,3)这个点是亮的,然后用了这个积木就成了(3,2)是亮的
  • 其他的积木块,不是很常用,暂时咱们就先不介绍,待有相关课程需要用到再学习

如何形成动画

  • 什么是动画

动画是指由许多帧静止的画面,以一定的速度(如每秒16张)连续播放时,肉眼因视觉残象产生错觉,而误以为画面活动的作品,比如下面这个动画小球:

35cc911b08e27d9c7eafc7eb25bcff09.gif

是由下面6张图以一定间隔时间(0.1秒)不断交替产生的

844e962a2be7b98c8e05729bedb51b41.png

聪明的小朋友已经知道我们该怎么在micro:bit下形成动画了,只要有2幅不同的图形交替间隔显示就是了

  • 我们来一个例子显示怎么制作LED动画,猜猜这会是什么动画:
97684161093308477ba8d9c101d83b36.png

答案:跳动的心,拿给他展示给爸爸妈妈看吧

7117c28f2c4043bef0ab23621b30d9d4.gif

今天的课程到此为止,有什么问题可以留言评论,谢谢!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值