前面介绍了使用micropython的准备工作,后面的操作都需要在 REPL 下进行。
newbit上有一个 5x5 的LED阵列,可以显示小图形、文字,显示效果还不错。 在micropython中,已经为LED设计了专用的库,可以很方便的进行显示,大部分时候只要一个命令就完成了显示功能。例如,下面代码显示了滚动的文字 Hello ,World!:from microbit import *display.scroll("Hello, World!")这是以默认速度显示,如果想加快或变慢速度,可以加上参数delay,如:
display.scroll("Hello, World!", delay=50)默认的delay是150,设置成50后滚动速度会变快。 如果希望循环显示,可以加上loop参数,这时只能通过ctrl-C才能返回REPL。
display.scroll("Hello, World!", loop=True)默认显示的字符是非等宽的,在有些时候会不方便。这时可以使用等宽字体:
display.scroll("Hello, World!", monospace=True)默认情况下,display.scroll函数在完成显示后才会返回,相当于工作在阻塞模式。也可以改为非阻塞模式,这样输入命令后,显示可以在后台进行,而REPL可以继续输入其它命令。阻塞和非阻塞通过参数wait指定。
display.scroll("Hello, World!", wait=False)
- display.scroll函数是不支持中文和特殊字符
- 注意在microbit的micropython中,没有pyb、machine等常用模块,而是使用microbit库。
display.scroll只能显示文字,如果需要显示图形,就要改用另外一个函数display.show,它可以显示文字、图形,但是不能以滚动方式显示,只能一次显示一个图标或者字符。如:
display.show("Hello, World!")display.show(Image.HEART)microbit库中内置了数十个图标,可以显示常用的表情、时钟、箭头等,大家可以通过dir或者tab键查看内置的图标。 display.show函数也支持delay、loop、wait等参数,和display.scroll函数差不多。但是display.show还有一个特殊功能,支持一次显示一组图标,如:
display.show((Image.YES, Image.NO, Image.MEH))除了内置的图形,我们还可以定义自己的图形,如:
ico=Image('11111:12345:13579:50000:90000')display.show(ico)每个图形需要定义5个参数,每个参数用冒号隔开,代表1行LED,数字代表LED的亮度。 我们还可以直接操作每个LED,如:
display.set_pixel(1, 1, 2)前两个参数是X/Y坐标,第3个参数是亮度(0-9,数字越大越亮)。同样可以用display.get_pixel函数读取LED的亮度。 其它常用函数:
- 清屏,display.clear()
- 关显示(不清屏),display.off()
- 开显示,display.on()