资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

怎么在newbit上使用micropython

这篇文章主要讲解了“怎么在newbit上使用micropython”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么在newbit上使用micropython”吧!

创新互联公司总部坐落于成都市区,致力网站建设服务有成都网站建设、网站建设、网络营销策划、网页设计、网站维护、公众号搭建、小程序设计、软件开发等为企业提供一整套的信息化建设解决方案。创造真正意义上的网站建设,为互联网品牌在互动行销领域创造价值而不懈努力!

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()

感谢各位的阅读,以上就是“怎么在newbit上使用micropython”的内容了,经过本文的学习后,相信大家对怎么在newbit上使用micropython这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是创新互联,小编将为大家推送更多相关知识点的文章,欢迎关注!


网站标题:怎么在newbit上使用micropython
本文地址:http://cdkjz.cn/article/gidose.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

大客户专线   成都:13518219792   座机:028-86922220