from microbit import *
display.scroll("Hello, World!")
这比最初的“Hello World”示例更进一步!
BPI:bit 最新版 .bin 固件
Windows 版 Mpfshell.exe 可从以下地址下载: https://github.com/BPI-STEAM/BPI-BIT-MicroPython/releases
from microbit import *
display.scroll("Hello, World!")
每行代码都有特定含义。
导入 microbit 模块
如果以前接触过 C 语言,可以把模块理解为现成的代码库。第一行从 microbit 模块导入所需内容。第二行是:
display.scroll("Hello, World!")
这一行让 MicroPython 调用 display 模块的 scroll 函数,滚动显示字符串“Hello, World!”。display 是 microbit 中代表板载显示屏的模块,引号内是要显示的文字。 现在把代码复制到编辑器并烧录到开发板。也可以修改字符串内容后再试一次。
测试效果:
与 micro:bit 相比,BPI:bit 的 LED 面板采用可编程 RGB 灯珠(WS2812B)。单击此处查看 WS2812B 的详细资料
RGB 灯珠的红、绿、蓝三个通道各有 256 级亮度,可组合出约 1678 万种颜色。下面开始尝试彩色显示。
修改文字颜色很简单,固件中预设了以下 8 种颜色:
black = [0, 0, 0]
Red = [2, 0, 0]
Orange = [2, 1, 0]
Yellow = [2, 2, 0]
Green = [0, 2, 0]
Blue = [0, 0, 2]
Indigo = [0, 2, 2]
Purple = [2, 0, 2]
它们分别是黑(熄灯)、红、橙、黄、绿、蓝、靛和紫。可以使用这些预设值修改文字颜色。
from display import*
display=Display()
display.scroll("Hello, World!",Yellow)
开发板默认使用红色。只需在字符串(即 "Hello, World!")后传入颜色参数,即可修改文字颜色。从上图可以看到,文字已经变为黄色。
怎样让每个字符显示不同的颜色?请看下面的示例:
from display import*
display=Display()
color=[Red,Orange,Yellow,Green,Blue,Indigo,Purple]
display.scroll("ROYGBIP",color)
创建一个 color 列表,按顺序保存每个字符需要使用的颜色,再把 color 作为参数传给 scroll 函数,即可让各字符显示不同的颜色。
只有 8 种预设颜色显然不够,下面介绍如何从一千多万种颜色中自行选择。
RGB 是红(Red)、绿(Green)、蓝(Blue)三种颜色通道的缩写。自然界中肉眼可见的许多颜色都可以通过这三种颜色混合得到。在计算机中,RGB 数值表示各通道的亮度,通常取 0 到 255,共 256 级。因此,三通道可组合出 256 * 256 * 256 = 16777216 种颜色,通常称为 1600 万色或 24 位色。全彩 LED 点阵中的每个发光单元都包含 RGB 三色芯片,可通过调节三个通道的亮度形成彩色像素。
那么,如何指定开发板要显示的颜色,并把颜色存入列表呢?
Red = [2, 0, 0]
为什么 Red 是 (2, 0, 0)?列表中的三个数字依次表示 R(红)、G(绿)、B(蓝)通道的亮度。[2, 0, 0] 表示红色亮度为 2,绿色和蓝色亮度均为 0。由此也能理解其他颜色列表的含义。
可以用相同方式自定义颜色。下面定义 mycolor=[1, 2, 3],看看显示效果:
from display import*
display=Display()
mycolor=[3,3,3]
display.scroll("hello",mycolor)
是不是很有趣?可以继续修改数值,尝试更多组合。
以下是一些注意事项:
每个颜色通道的亮度范围为 0~255,共有 256 个可选值;最小值为 [0, 0, 0],最大值为 [255,255,255]。
通常不要把亮度设得过高,以免光线过亮、刺激眼睛。
如果运行时出现问题,可以按以下方法排查:
首先查看 MicroPython 返回的错误信息,其中通常会指出出错的代码行。
Python 区分大小写,名称的大小写必须与定义一致。文件名或标识符拼写错误会导致名称无效;出现 SyntaxError 时,还应检查是否遗漏引号、括号等符号。理解代码含义是定位错误的最好方法。
如果 BPI:bit 停止响应、无法烧录新代码或不能在 REPL 中输入命令,可以拔下 USB 线再重新连接。