有关 micro:bit 的 Python API,可参看其官方文档:https://micro:bit-micropython.readthedocs.io/en/latest/

开发者可以通过慧编程的扩展设计器为慧编程制作扩展。无论是想要增加一个新的设备支持,还是为已有的设备增加新传感器,或者增加积木块增强功能,扩展设计器都能满足你的需求。那具体应该怎么做呢?下面来手把手教你怎么为 micro:bit 增加一个增强扩展吧!

扩展设计思路

在制作一个扩展之前,我们先得想一想准备为目前的 micro:bit 增加些什么功能。对比慧编程已经支持的 micro:bit 语句块和 micro:bit 官方的 API 来看,我们会发现,慧编程官方其实缺少了一些 API 的实现,比如
显示表情接口 (https://microbit-micropython.readthedocs.io/en/latest/tutorials/images.html

  1. from microbit import *
  2. display.show(Image.HAPPY)

外接音乐模块 API(https://microbit-micropython.readthedocs.io/en/latest/tutorials/music.html

  1. import music
  2. music.play(music.NYAN)

将这两个 API 作为目标 API,将其转化为积木块,具体步骤如下所述:

步骤1:登陆扩展设计器

进入扩展设计器:https://ext.makeblock.com
(如果你没有账号,可以非常方便的在扩展设计器主页注册一个。 这个账号后续可以用于童心制物的所有产品体系中,包括慧编程的社区、移动端、PC 端、Web 端等等,用该账号还可以同步自己的作品,使用慧编程的人工智能服务。)
image.png

步骤2:新建扩展

注册好了账号,我们就直接登陆进去,在左侧栏,选择“我的插件” > “我的扩展”。
(在扩展设计器中,“我的设备” 和 “我的扩展” 是两个不同的概念,设备指的是对具体的硬件设备的支持,也可以理解为一个硬件角色,和舞台角色相对应,而扩展是需要依赖一个硬件角色或者舞台角色而存在。)
有关设备和扩展的详细概念描述,参见“通过扩展设计器可以开发什么类型的扩展?

为 micro:bit 开发增强扩展,选择“新建扩展”。
image.png
在弹出的的模板选择对话框中选择“通用模板”,点击“确定”。
image.png

步骤3:填写基本信息

填写扩展的基本信息。
image.png
点击“确定”。
在扩展列表,点击扩展的名称进入编辑页。
image.png

步骤4:添加分类和积木

1、点击“添加分类”,在弹出的窗口中填写分类信息。标识 ID 默认即可。
image.png
2、点击积木列表下方的“+”添加一个新积木块。
image.png

步骤5:设计语句块

以音乐语句块为例,使用之前已确定的音乐外接音乐模块 API
https://microbit-micropython.readthedocs.io/en/latest/tutorials/music.html) :

  1. import music
  2. music.play(music.NYAN)

该 API 包含一个参数,可选值包含如下:

  • music.DADADADUM
  • music.ENTERTAINER
  • music.PRELUDE
  • music.ODE
  • music.NYAN
  • music.RINGTONE
  • music.FUNK
  • music.BLUES
  • music.BIRTHDAY
  • music.WEDDING
  • music.FUNERAL
  • music.PUNCHLINE
  • music.PYTHON
  • music.BADDY
  • music.CHASE
  • music.BA_DING
  • music.WAWAWAWAA
  • music.JUMP_UP
  • music.JUMP_DOWN
  • music.POWER_UP
  • music.POWER_DOWN

因此,我们可以将积木块的内容设置为“播放音乐”并通过 “空格+@”的方式引入一个下拉框参数。
image.png
改写参数名为 musicType,后面会用到。
image.png
点击 “+”,按照提示批量添加参数,点击确定。
image.png
得到参数如图 (如果参数第一行是空的,删掉第一行),这里左边是输入框中显示出来的描述文字,右边是该选项真正对应的值。
image.png
这样我们就得到一个带参数的语句块。
image.png
勾选支持的平台后,并点击“保存”。
image.png

步骤6:填写转码

这里添加的是 micro:bit 离线语句块,所以每一个语句块在拼接后,都会对应生成一条 Python 代码,最终所有 Python 代码会被上传到 micro:bit 中进行执行。

在填写转码之前,先设置该扩展的转码语言为 Python。点击“转码设置”,将“支持的转码语言” 设置为 Python,然后点击页面底部的“保存”。
image.png
点击“积木配置”,然后点击积木配置区的“上传转码”。
双击黑色区域,侧边栏会弹出代码编辑器,在编辑器中填写如下信息。

:::info 注:

  • 在编辑器中输入API 语句,本质是在填写转码字符串,慧编程最后会拼接所有转码,在上传过程中,将这些代码内容上传到 micro:bit 中。
  • lib 编辑区中填写的是引入的 Python 模块,参考API,有就填写,没有可以不填。
  • code 区域中会有特别的语法符号 {},该符号中填写语句块中的参数名,即可获取设置的参数值。 :::
  1. libimport music #对应 import 头部
  2. codemusic.play({musicType}) #主体 API 语句,musicType 是前面设置的参数,{musicType} 表示参数值。
  3. loop:#用于事件语句块中,可不填

image.png
点击底部的”保存”,一个语句块的转码就完成啦!

验证 micro:bit 扩展

在完成上述步骤以后,一个基本的扩展我们就算是完成了!下面来验证一下,该扩展是不是能正常工作。

步骤1:下载扩展到本地

点击右上角的“下载”。
image.png
【micro:bit 扩展】为 micro:bit 编写扩展 - 图17

得到 micro:bit_extended.mext

步骤2:拖拽 micro:bit_extened.mext 到慧编程中

将扩展文件拖拽到慧编程之后,慧编程提示扩展添加成功。
image.png
在设备栏,先添加micro:bit 设备

【micro:bit 扩展】为 micro:bit 编写扩展 - 图19

在积木边栏会惊喜的发现,我们的扩展已经成功加载进来啦!

【micro:bit 扩展】为 micro:bit 编写扩展 - 图20

点击积木边栏底部的“+ 添加扩展” 按钮,也会发现我们的扩展处在列表中。
image.png

步骤3:验证积木块

拖拽积木到工作区,点开转码查看
image.png
之前添加的积木和 API 转码已经生效了。

连接 micro:bit 硬件到慧编程,连接蜂鸣器模块到 micro:bit 的 P0 口。

【micro:bit 扩展】为 micro:bit 编写扩展 - 图23

点击“上传到设备”。

【micro:bit 扩展】为 micro:bit 编写扩展 - 图24

image.png

上传代码成功以后,就可以验证 micro:bit 的硬件功能啦,试试按下A键,效果怎么样?这样一个完整的扩展就开发完啦!

小结

主要步骤

参考上述步骤,大家会发现,给 micro:bit 添加一个扩展是不是还挺容易呢?主要步骤为:

确定API语句 > 配置积木描述和参数 > 配置转码 > 加载扩展到慧编程 > 上传到硬件

另一个表情语句块也可以按同样步骤,快速开发出来

【micro:bit 扩展】为 micro:bit 编写扩展 - 图26

扩展存储位置

这些你拖拽到扩展设计器中的扩展,都存放在你的电脑目录中。

windows系统存放于:C:\Users\用户名\mblock\exts\
mac 系统存放于:/Users/用户名/mblock/exts/

micro:bit 扩展包源码下载与导入

这里将教程中制作的扩展已经发布出来了,可以下载下来,拖拽到慧编程中直接使用:
microbit_extended.rar
下载下来的 .mext 文件,也可以参考“将扩展导入到扩展设计器”导入到扩展设计器,看看参数是如何配置的。

大家也来试试制作一个属于你的 micro:bit 扩展吧~ 制作好了,还可以发布到慧编程的官方软件中,让其他慧编程的小伙伴也能分享到你所制作的扩展带来的乐趣和便捷!