如何在newbit上用micropython
本篇内容主要讲解"如何在newbit上用micropython",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"如何在newbit上用micropython"吧!
newbit(microbit)支持多种工具,比如JavaScript Block Editor、Mbed、gcc、espruino等。不过我们还是先从最熟悉的micropython开始吧。
准备
首先确定安装好了Mbed串口驱动(注意安装时需要先连接newbit到计算机),这样才能进行后面的工作。在Linux和MacOS上会自动识别出串口,无需安装驱动。
然后运行一个串口终端软件,如putty、mobaxterm等,串口号就是newbit所在,串口参数是MicroPython上标准的115200, n, 8, 1, none。
如果没有下载新的程序到newbit,里面还是原有的例程,那么可以直接使用micropython。在终端软件中输入ctrl-c,就会中止当前的程序,返回到REPL下。如果下载过其它程序,那么原有的micropython固件就可能被冲掉了,需要下载micropython固件,并将它下载到newbit中。
下载新固件后,需要按下反面的复位键,就可以在终端上看到熟悉的REPL提示界面了。
MicroPython v1.7-9-gbe020eb on 2016-04-18; micro:bit with nRF51822
Type "help()" for more information.
>>>
>>>
在REPL下,我们可以输入各种指令、代码,执行多种功能。这些大家可以参考以前的《micropython中文教程2.0》,就不重复了。
不过可能大家会发现micropython的版本很低,还是1.7.9版本,而现在最新版已经是1.8.7了。这是因为官方一直没有更新micropython文件,而且新版本的体积比较大,nRF51822中多半放不下了。目前的micropython中留给用户的空间只有8K,这还是蓝牙功能没有包含的情况下。估计要等升级到nRF58400时,才可能替换micropython了。
注意:这个版本的micropython有个问题是粘贴功能有bug,不能粘贴较大的代码,否则就会出错,需要断开USB重新连接才能恢复。
图形显示:
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个参数,每个参数之间用冒号隔开,一个参数有5个数字,代表1行的5个LED,每个数字代表LED的亮度。
我们还可以直接操作每个LED,如:
display.set_pixel(1, 1, 2)
前两个参数是X/Y坐标,第3个参数是亮度(0-9,数字越大越亮)。同样可以用display.get_pixel函数读取LED的亮度。
其它常用函数:
清屏,display.clear()
关显示(不清屏),display.off()
开显示,display.on()
到此,相信大家对"如何在newbit上用micropython"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!