2747|1

1万

帖子

25

TA的资源

版主

楼主
 

用micropython玩newbit(二) [复制链接]

 
本帖最后由 dcexpert 于 2017-3-30 10:44 编辑

前面介绍了使用micropython的准备工作,后面的操作都需要在 REPL 下进行。

newbit上有一个 5x5 的LED阵列,可以显示小图形、文字,显示效果还不错。

在micropython中,已经为LED设计了专用的库,可以很方便的进行显示,大部分时候只要一个命令就完成了显示功能。例如,下面代码显示了滚动的文字 Hello ,World!:

  1. from microbit import *
  2. display.scroll("Hello, World!")
复制代码



这是以默认速度显示,如果想加快或变慢速度,可以加上参数delay,如:
  1. display.scroll("Hello, World!", delay=50)
复制代码


默认的delay是150,设置成50后滚动速度会变快。

如果希望循环显示,可以加上loop参数,这时只能通过ctrl-C才能返回REPL。

  1. display.scroll("Hello, World!", loop=True)
复制代码


默认显示的字符是非等宽的,在有些时候会不方便。这时可以使用等宽字体:

  1. display.scroll("Hello, World!", monospace=True)
复制代码


默认情况下,display.scroll函数在完成显示后才会返回,相当于工作在阻塞模式。也可以改为非阻塞模式,这样输入命令后,显示可以在后台进行,而REPL可以继续输入其它命令。阻塞和非阻塞通过参数wait指定。

  1. display.scroll("Hello, World!", wait=False)
复制代码


  • display.scroll函数是不支持中文和特殊字符
  • 注意在microbit的micropython中,没有pyb、machine等常用模块,而是使用microbit库。

display.scroll只能显示文字,如果需要显示图形,就要改用另外一个函数display.show,它可以显示文字、图形,但是不能以滚动方式显示,只能一次显示一个图标或者字符。如:

  1. display.show("Hello, World!")
  2. display.show(Image.HEART)
复制代码


microbit库中内置了数十个图标,可以显示常用的表情、时钟、箭头等,大家可以通过dir或者tab键查看内置的图标。

display.show函数也支持delay、loop、wait等参数,和display.scroll函数差不多。但是display.show还有一个特殊功能,支持一次显示一组图标,如:

  1. display.show((Image.YES, Image.NO, Image.MEH))
复制代码


除了内置的图形,我们还可以定义自己的图形,如:

  1. ico=Image('11111:12345:13579:50000:90000')
  2. display.show(ico)
复制代码


每个图形需要定义5个参数,每个参数用冒号隔开,代表1列LED,数字代表LED的亮度。

我们还可以直接操作每个LED,如:
  1. display.set_pixel(1, 1, 2)
复制代码


前两个参数是XY轴坐标,第三个是亮度(0-9,越大越亮)。同样可以用display.get_pixel函数读取LED的亮度。

其它常用函数:
  • 清屏,display.clear()
  • 关显示(不清屏),display.off()
  • 开显示,display.on()


此内容由EEWORLD论坛网友dcexpert原创,如需转载或用于商业用途需征得作者同意并注明出处









最新回复

好教程,正好学学  详情 回复 发表于 2017-3-29 20:11
点赞 关注(1)
 
 

回复
举报

26

帖子

0

TA的资源

一粒金砂(中级)

沙发
 
好教程,正好学学
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表