用扩展设计器给micro:bit赋能,你也可以做到!
时间:2019-11-04 16:24:00 热度:37.1℃ 作者:网络
玩硬件的小伙伴可能都听过 micro:bit 。这是一款由英国广播电视公司(BBC),联合微软、三星、ARM、麻省理工学院、国兰卡斯特大学等合作伙伴推出的、专为青少年编程设计的微型电脑开发板。
micro:bit支持图形化积木、Java语言、Python语言三种方式进行编程的学习,能满足从小学到大学各个年龄段的学生的学习需求。尤其是图形化积木适合小学低年级学生进行编程学习。Python是目前主流的程序开发语言,适合高年级学生进行编程学习。
慧编程,作为一款一直秉承开放精神的青少年编程软件,我们从很早就开始支持使用图形化积木或Python为micro:bit编程。
慧编程支持的micro:bit语句块简介
打开慧编程PC端(注:目前慧编程Web端暂不支持micro:bit),选择“设备”栏,点击“添加”,添加“micro:bit”
可以看到慧编程官方现在支持的主要语句块如下:
转码实现原理
目前micro:bit支持的是离线代码上传,对于 micro:bit 的转码,如图所示
把积木块拖拽到帽子头下,点击侧边栏转码对照栏图标,可以看到对应的工作区转码,一个语句块对应的是一条micro:bit的 python API 语句。
*micro:bit 的 python API 参考官方文档:https://microbit-micropython.readthedocs.io/en/latest/
*API 列表如下
如何制作一个micro:bit扩展?
慧编程的扩展设计器,为开发者提供了快速开发扩展的能力。无论是想要增加一个新的设备支持,还是为已有的设备增加新传感器,或者增加积木块增强功能,扩展设计器都能满足你的需求。
具体应该怎么做呢?接下来,我们将手把手教你如何给 micro:bit 增加一个增强扩展。
扩展设计思路
在制作一个扩展之前,我们先得想一想:我打算为当前的 micro:bit 增加些什么功能呢?
对比慧编程已经支持的 micro:bit 语句块和 micro:bit 官方提供的 api ,我们会发现,慧编程官方其实缺少了一些 api 的实现,比如:
- 显示表情接口 (https://microbit-micropython.readthedocs.io/en/latest/tutorials/images.html)
- 外接的音乐模块 API (https://microbit-micropython.readthedocs.io/en/latest/tutorials/music.html)
现在,选择好了目标 API,下面我们就来具体实现将这两个 API 转化为积木块。
步骤1:登录扩展设计器
第一步,我们进入扩展设计器:https://ext.makeblock.com
(注:如果你没有账号,可以在扩展设计器主页注册一个。这个账号后续可以用在童心制物makeblock的所有软件产品体系中,包括慧编程的社区、移动端、PC端、Web端等等,用该账号还可以同步自己的作品、使用慧编程的人工智能服务,会非常有用滴!)
步骤2:新建扩展
注册好了账号,我们就直接登录进去,在左侧栏,点击【我的插件】,选择【我的扩展】。
(注:在扩展设计器中,【我的设备】和【我的扩展】是两个不同的概念。设备指的是具体的一个硬件设备,也可以理解为一个硬件角色,和舞台角色相对应。而扩展是需要依赖一个硬件角色或者舞台角色而存在。)
比如我们这次为 micro:bit 开发增强扩展,选择的就是【我的扩展】 -【新建扩展】,而不是【我的设备】。
步骤3:填写基本信息
点击【确定】后,回到扩展列表,点击【扩展名称】进入编辑页
步骤4:添加分类和积木
点击添加分类后,出现弹窗,填写信息,标志ID默认即可。
点击积木列表下面的 + 号,添加一个新积木块
出现如下图
步骤5:设计语句块
这里我们以音乐语句块为例,首先我们需要选中需要的 api。
查看 API 文档:https://microbit-micropython.readthedocs.io/en/latest/tutorials/music.html,找到 API
- import musicmusic.play(music.NYAN)
确定该 api,只有一个参数,但是一个参数列表
我们在【内容】这一栏的输入框中,输入“播放音乐”,然后输入一个空格,并紧跟着输入一个@,就会发现有一个下拉列表,该下拉列表代表慧编程积木所支持的所有参数类型,这里我们选择下拉框
回车后看到
改写参数名为 musicType,后面会用到
点击 + 号,按照提示批量添加参数,点击确定
得到参数如图 (如果参数第一行是空的,删掉第一行),这里左边是输入框中显示出来的描述文字,右边是该选项真正对应的值。
这样我们就得到一个带参数的语句块
勾选支持的平台后,并点击【保存】 (注意点保存哦)
步骤6:填写转码
我们只做的是micro:bit离线语句块,所以每一个语句块在拼接后,都会对应生成一条 python 代码,最终所有 python 代码会被上传到 micro:bit 中进行执行。
在填写转码之前,我们先设置该扩展的转码语言为 python。点击【转码设置tab栏】,输入框中选择 python,然后点击最底部的【确认】按钮
回到 【积木配置tab栏】,点击“上传转码”。
双击黑色区域,侧边栏会弹出代码编辑器,在编辑器中填写如下信息。
(在编辑器中输入API 语句,本质是在填写转码字符串,慧编程最后会拼接所有转码,在上传过程中,将这些代码内容上传到 micro:bit中。)
(注意:lib 编辑区中填写的是引入的 python 模块,参考API,有就填写,没有可以不填)
【code】区域中会有特别的语法符号 {},该符号中填写语句块中的参数名,即可获取设置的参数值。
点击底部的保存,一个语句块的转码就完成啦!
验证micro:bit扩展
在完成上述步骤以后,一个基本的扩展我们就算是完成了!下面我们来验证一下,该扩展是不是能正常工作。
步骤1:下载扩展到本地
得到 microbit_extended.mext
步骤2:拖拽 microbit_extened.mext 到慧编程中
出现提示扩展添加成功的提示、
在设备栏,先添加micro:bit 设备
在积木边栏会惊喜的发现,我们的扩展已经成功加载进来啦!
点击积木边栏底部的【添加扩展】按钮,也会发现我们的扩展处在列表中
步骤3:验证积木块
拖拽积木到工作区,点开转码查看
我们刚才添加的积木和api转码已经生效了。
连接 micro:bit 硬件到慧编程,连接蜂鸣器模块到 micro:bit 的 P0 口,
点击上传代码
上传代码成功以后,就可以验证 micro:bit 的硬件功能啦,试试按下A键,效果怎么样?
就这样,一个完整的扩展就开发完啦!
发布扩展
如果你希望创建的扩展不仅为自己所用,更希望给到其他需要的人使用、丰富慧编程的扩展生态,那么你可以“发布扩展”!
步骤一
若是硬件类的扩展,进入到【设备管理】页面,角色类的扩展则进入到【扩展管理】页面。我们当前待发布的扩展是micro:bit的增强扩展,所以选择【扩展管理】
步骤二
点击页面中的【上架新扩展】按钮
步骤三
点击按钮之后,页面右侧会弹出一个表单,在这里你可以填写需要上架的扩展信息,在标识ID输入框中输入待发布扩展的ID;在选择工程项目中勾选需要上架的扩展;输入扩展的版本说明(描述扩展的功能),然后点击确定。 提交成功后,大概需要2~3个工作日审核,审核通过后你的扩展就会正式上线慧编程啦~
小结
参考上述步骤,大家会发现,给micro:bit添加一个扩展是不是还挺容易?
主要步骤为:
确定API语句 > 配置积木描述和参数 > 配置转码 > 加载扩展到慧编程 > 上传到硬件
另一个表情语句块也可以按同样步骤,快速开发出来
扩展存储位置
这些你拖拽到扩展设计器中的扩展,都是存放在你的电脑目录中的
windows系统存放于:C:\Users\用户名\mblock\exts\mac 系统存放于:/Users/用户名/mblock/exts/
micro:bit 扩展包源码下载与导入
这里将教程中制作的扩展已经发布出来了,你可以在公众号后台回复“模版”获取 microbit_extended.mext 扩展,然后把它下载下来,拖拽到慧编程中直接使用。
最后,大家也来试试制作一个属于你的 micro:bit 扩展吧~ 很期待在慧编程中,看到你制作的扩展哟!
有奖征集
为鼓励第三方开发者加入慧编程扩展开发者团队,进一步丰富慧编程扩展生态,我们将面向广大老师、开发者推出“扩展教程有奖征集”活动。
【活动流程】
1.在慧编程扩展设计器上(https://ext.makeblock.com)为慧编程添加一个新设备/传感器/新功能扩展,扩展的类型和具体内容不限,请自由发挥~
2.当您的扩展被正式上线到慧编程后(一般需要3个工作日审核),请参考扩展教程投稿模板(https://shimo.im/docs/OMAXVnyewECjF4qR/ )输出一份你的扩展教程并发送给“慧编程小助手”
【参考资料】
慧编程扩展设计器帮助文档(全):https://www.mblock.cc/doc/zh/developer-documentation/developer-documentation.html
慧编程扩展案例教程:https://www.mblock.cc/doc/zh/developer-documentation/extension-tutorials.html
【奖品设置】
输出1个扩展教程并被“童心制物STEAM教育研究院”公众号选用,即可获得1套价值249元的光环板套装或对应价值的mBuild模块
输出2个扩展教程并被“童心制物STEAM教育研究院”公众号选用,即可获得1套价值549元的mBot套装
输出3个扩展教程并被“童心制物STEAM教育研究院”公众号选用,即可获得1套价值699元的Airblock套装或价值699元的程小奔套装或价值799元的神经元艺术家套装
(以上产品3选1)
输出4个扩展教程并被“童心制物STEAM教育研究院”公众号选用,即可获得1套价值1199元的神经元智造家套装
*以上奖励不重复发放,可依据作者意愿累积教程数量兑换奖品。本活动最终解释权归“童心制物STEAM教育研究院”所有
文:Hyman
编辑:Yanyan