当前位置: 首页 > news >正文

microbit python扩展_【micro:bit扩展】如何用慧编程扩展设计器为 micro:bit 编写扩展...

【micro:bit扩展】如何用慧编程扩展设计器为 micro:bit 编写扩展

慧编程-microbit 设备简介

慧编程支持 micro:bit 硬件,打开慧编程,选择硬件栏,点击添加,添加micro:bit

可以看到慧编程官方现在支持的语句块如下:

转码实现原理

目前microbit支持的是离线代码上传,对于 microbit 的转码,如图所示

积木块拖拽到帽子头下,点击侧边栏转码对照栏图标,可以看到对应的工作区转码,一个语句块对应的是一条microbit的 python API 语句。具体是怎么实现的呢,下面会讲到。

如何制作一个 microbit 扩展?

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

扩展设计思路

在制作一个扩展之前,我们先得想一想准备为目前的 microbit 增加些什么功能呢?对比慧编程已经支持的的 microbit 语句块和 microbit 官方的 api 来看,我们会发现,慧编程官方其实缺少了一些 api 的实现,比如

好的,选择好了目标 API,下面我们就来具体实现将这两个 API 转化为积木块。

步骤1:登陆扩展设计器

(如果你没有账号,可以非常方便的在扩展设计器主页注册一个。

这个账号可以后续用在 makeblock 的所有产品体系中,包括慧编程的社区、移动端、pc端、web端等等,用该账号还可以同步自己的作品,使用慧编程的人工智能服务哦,会非常有用滴!)

步骤2:新建扩展

注册好了账号,我们就直接登陆进去,在左侧栏,点击【我的插件】,选择【我的扩展】。

(在扩展设计器中,【我的设备】和【我的扩展】是两个不同的概念,设备指的是具体的一个硬件设备,也可以理解为一个硬件角色,和舞台角色相对应。而扩展是需要依赖一个硬件角色或者舞台角色而存在)

比如我们这次为 microbit 开发增强扩展,选择的就是【新建扩展】,而不是一个设备。

点击【新建扩展】后再次选择“通用模版”,点击确定,可以填写基本信息:

步骤3:填写基本信息

点击【确定】后,回到扩展列表,点击【扩展名称】进入编辑页

步骤4:添加分类和积木

点击添加分类后,出现弹窗,填写信息,标志ID默认即可。

点击积木列表下面的 + 号,添加一个新积木块

出现如下图

步骤5:设计语句块

这里我们以音乐语句块为例,首先我们需要选中需要的 api。

import music

music.play(music.NYAN)

确定该 api,只有一个参数,但是一个参数列表

我们在【内容】这一栏的输入框中,输入“播放音乐”,然后输入一个空格,并紧跟着输入一个@,就会发现有一个下拉列表,该下拉列表代表慧编程积木所支持的所有参数类型,这里我们选择下拉框

回车后看到

改写参数名为 musicType,后面会用到

点击 + 号,按照提示批量添加参数,点击确定

得到参数如图 (如果参数第一行是空的,删掉第一行),这里左边是输入框中显示出来的描述文字,右边是该选项真正对应的值。

这样我们就得到一个带参数的语句块

勾选支持的平台后,并点击【保存】 (**注意点保存哦**)

步骤6:填写转码

我们只做的是microbit离线语句块,所以每一个语句块在拼接后,都会对应生成一条 python 代码,最终所有 python 代码会被上传到 microbit 中进行执行。

在填写转码之前,我们先设置该扩展的转码语言为 python。点击【转码设置tab栏】,输入框中选择 python,然后点击最底部的【确认】按钮

回到 【积木配置tab栏】,点击“上传转码”。

双击黑色区域,侧边栏会弹出代码编辑器,在编辑器中填写如下信息。

(在编辑器中输入API 语句,本质是在填写转码字符串,慧编程最后会拼接所有转码,在上传过程中,将这些代码内容上传到 microbit中。)

(注意:lib 编辑区中填写的是引入的 python 模块,参考API,有就填写,没有可以不填)

【code】区域中会有特别的语法符号 {},该符号中填写语句块中的参数名,即可获取设置的参数值。

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

验证 microbit 扩展

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

步骤1:下载扩展到本地

得到 microbit_extended.mext

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

出现提示扩展添加成功的提示

在设备栏,先添加microbit 设备

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

点击积木边栏底部的【添加扩展】按钮,也会发现我们的扩展处在列表中

步骤3:验证积木块

拖拽积木到工作区,点开转码查看

我们刚才添加的积木和api转码已经生效了。

连接 microbit 硬件到慧编程,连接蜂鸣器模块到 microbit 的 P0 口,

点击上传代码

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

小结

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

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

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

扩展存储位置

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

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

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

microbit 扩展包源码下载与导入

这里将教程中制作的扩展已经发布出来了,可以下载下来,拖拽到慧编程中直接使用

microbit_extended.mext

下载下来的 .mext 文件,也可以参考教程 《如何导入一个已经存在的 .mext 格式的慧编程扩展到扩展设计器》导入到扩展设计器,看看是怎么配置的参数。

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

相关教程文章

敬请期待【慧编程扩展设计器系列教程】

【添加weixin:mBlock_helper,可以加入到慧编程扩展开发者微信群】

相关文章:

  • boost原理与sklearn源码_从sklearn源码简析GBDT
  • 信息隐藏将txt文件合并到jpg文件中_GIS工作中让你事半功倍,在数据处理中常用的小技巧...
  • android欢迎界面引导页_uni-app: 引导页功能如何实现?
  • 六位小数的字符串怎么转化成double类型而不损失精度?_C# 一次数据类型强转失败的翻车原因分析...
  • 互动整合营销_企业做整合营销,有什么实际的意义
  • vue+bootstrap响应式布局_实现 Vue 的响应式系统
  • python扫雷代码源码_利兹联足球俱乐部 2018
  • java写入txt文件_Java面试题如何将字符串写入文件?
  • python支持面向过程_python之面向过程,函数式编程,面向对象浅析
  • 小组取什么名字好_寓意好的公司名字大全 公司名字取什么好
  • c语言计算日出日落时间_高中地理——每日讲1题(日出日落时间、昼夜长短、气压带风带)...
  • request对象_Struts(七)- 获取 request对象和 response对象
  • jre jdk jvm的区别_什么是JRE、JDK、JVM以及三者之间的关系?
  • 页面iframe url套jsp_shiro学习笔记—shiro拦截器与url匹配规则
  • thinkphp删除某一学生_开学初期学生容易拉开差距,请让孩子体会这15个诀窍!...
  • eclipse(luna)创建web工程
  • Hexo+码云+git快速搭建免费的静态Blog
  • JavaScript工作原理(五):深入了解WebSockets,HTTP/2和SSE,以及如何选择
  • Java知识点总结(JavaIO-打印流)
  • Linux中的硬链接与软链接
  • python 学习笔记 - Queue Pipes,进程间通讯
  • SOFAMosn配置模型
  • 从0搭建SpringBoot的HelloWorld -- Java版本
  • 搭建gitbook 和 访问权限认证
  • - 概述 - 《设计模式(极简c++版)》
  • 使用SAX解析XML
  • 数据结构java版之冒泡排序及优化
  • 提升用户体验的利器——使用Vue-Occupy实现占位效果
  • 微信小程序--------语音识别(前端自己也能玩)
  • 3月27日云栖精选夜读 | 从 “城市大脑”实践,瞭望未来城市源起 ...
  • zabbix3.2监控linux磁盘IO
  • 曜石科技宣布获得千万级天使轮投资,全方面布局电竞产业链 ...
  • ​​​​​​​ubuntu16.04 fastreid训练过程
  • ​什么是bug?bug的源头在哪里?
  • #HarmonyOS:软件安装window和mac预览Hello World
  • (4)(4.6) Triducer
  • (DenseNet)Densely Connected Convolutional Networks--Gao Huang
  • (Python第六天)文件处理
  • (学习日记)2024.03.25:UCOSIII第二十二节:系统启动流程详解
  • *2 echo、printf、mkdir命令的应用
  • .【机器学习】隐马尔可夫模型(Hidden Markov Model,HMM)
  • .net core webapi 大文件上传到wwwroot文件夹
  • .net 桌面开发 运行一阵子就自动关闭_聊城旋转门家用价格大约是多少,全自动旋转门,期待合作...
  • .net分布式压力测试工具(Beetle.DT)
  • .w文件怎么转成html文件,使用pandoc进行Word与Markdown文件转化
  • @SuppressWarnings注解
  • [《百万宝贝》观后]To be or not to be?
  • [100天算法】-目标和(day 79)
  • [3D游戏开发实践] Cocos Cyberpunk 源码解读-高中低端机性能适配策略
  • [Angular] 笔记 16:模板驱动表单 - 选择框与选项
  • [Angularjs]asp.net mvc+angularjs+web api单页应用
  • [Assignment] C++1
  • [BZOJ1877][SDOI2009]晨跑[最大流+费用流]
  • [BZOJ4337][BJOI2015]树的同构(树的最小表示法)
  • [C++]类和对象【下】