其他分享
首页 > 其他分享> > Mind+第三方用户库实现

Mind+第三方用户库实现

作者:互联网

一.背景
Mind+,全名Mindplus,诞生于2013年,是一款拥有自主知识产权的国产青少年编程软件,集成各种主流主控板及上百种开源硬件,支持人工智能(AI)与物联网(IoT)功能,既可以拖动图形化积木编程,可以使用Python/C/C++等高级编程语言。该软件由DFRobot旗下子品牌蘑菇云创客教育发布,用户只需要拖动图形化程序块即可完成编程,还可以自动转换Python/C/C++等高级编程语言,适用于校内的大班教学、项目创作、创客比赛等场景,同时能满足学生校外进行创意编程与项目创造的需求。
二.下载模板库
官方模板库:https://gitee.com/dfrobot/ext-oled12864
下载完后解压得到一个文件夹,删除其中的后缀为mpext文件,修改文件夹名字为:ext-MpythonBT,英文数字或下划线,不要用中文和特殊符号
在这里插入图片描述

三.修改config.json
1.删除其中files字段部分代码
2.修改name和description对应字段,英文部分可以谷歌翻译
3.修改author(作者)和email(邮箱)为自己的
4.修改id为这个扩展库唯一标识,英文数字或下划线,不要用中文和特殊符号,最好与文件夹后的名字相同
5.version为版本号,可以改成0.0.1,以后每次修改代码数字逐渐升级
6.board填写支持的板子,无法测试的不要写
7.其他部分不用动,保存。
8.具体字段描述见api列表。

{
  "name": {
    "zh-cn": "掌控板蓝牙",
    "en": "MpythonBT"
  },
  "description": {
    "zh-cn": "掌控板的蓝牙功能",
    "en": "MpythonBT"
  },
  "auther": "heweijing",
  "email": "1366703561@qq.com",
  "license": "MIT",
  "isBoard": false,
  "id": "MpythonBT",
  "platform": [
    "win"
  ],
  "asset": {
    "arduinoC": {
      "dir": "arduinoC/",
      "version": "0.0.1",
      "board": [
        "esp32"
      ],
      "main": "main.ts"
    }
  }
}

四.修改资源文件

1._images
删除_images中的所有文件
将一张600x372像素的照片放到文件夹中,命名为featured.png
在iconfont(https://www.iconfont.cn/)搜索找到合适的图片,点击SVG下载,保存到文件夹中,命名为icon.png
在这里插入图片描述

2.libraries
arduino库,即包含.h和.cpp文件时,需要放到此文件夹中。
在这里插入图片描述

3._locales
此文件夹放置翻译文件
在这里插入图片描述

4._menus
此文件夹放置下拉菜单文件,例如引脚编号的下拉,默认放置了所有主控器的常见引脚,可以直接在main.ts中调用

五.编写main.ts文件

积木颜色如果需要修改可以用取色板工具取色后修改
namespace名字修改为与id相同
修改block字段设置积木文字和下拉菜单,blocktype设置积木形状
shadow配置下拉菜单 配置menu文件 如果需要翻译可以修改zh-cn文件
配置block函数内容



//% color="#AA278D" iconWidth=50 iconHeight=40
namespace MpythonBT {


    //% block="MpythonBT init name [NAME]" blockType="command"
    //% NAME.shadow="string"  NAME.defl="ESP32BT"
    export function MpythonBTInit(parameter: any, block: any) {
        let name=parameter.NAME.code;
        console.log(name);
        Generator.addInclude('MpythonBTInitinclude', '#include "BluetoothSerial.h"');
        Generator.addObject("MpythonBTInitobject", "BluetoothSerial", "SerialBT");
        Generator.addSetup("MpythonBTInitsetup", `SerialBT.begin(${name});`);

    }

    //% block="MpythonBT available" blockType="boolean"
    export function MpythonBTAvailable(parameter: any, block: any) {

        Generator.addCode(["SerialBT.available()",Generator.ORDER_UNARY_POSTFIX]);
    }

     //% block="MpythonBT read " blockType="reporter"
     export function MpythonBTRead(parameter: any, block: any) {

        Generator.addCode(["SerialBT.read()",Generator.ORDER_UNARY_POSTFIX]);
    }
     //% block="MpythonBT write [STR]" blockType="command"
     //% STR.shadow="number" STR.defl="1"
     export function MpythonBTWrite(parameter: any, block: any) {
            let str = parameter.STR.code;
        Generator.addCode(`SerialBT.write(${str});`);
    }

}

六.效果
此时可以打开Mind+,切换到上传模式,打开扩展,选择掌控板,然后选择刚刚修改好的config.json文件,查看效果:
在这里插入图片描述在这里插入图片描述

可以看到已经有调试标志以及快捷刷新按钮了。

七测试
编写一个简单的代码,并检查生成的代码是否正确
在这里插入图片描述
代码上传之后,我们手机上下载一个蓝牙串口助手(SSP),并且打开手机蓝牙,打开下载好的蓝牙串口助手,连接名称为"hhh"的蓝牙。我们在蓝牙串口助手聊天界面发送123,打开mind+串口,收到49 50 51(ASCII码类型的123,通过工具设置发送数据格式)。然后我们按下掌控板A键,在手机端收到0x01(16进制数,通过首选项设置数据格式的接收十六进制数据)。
在这里插入图片描述在这里插入图片描述

八.导出分享
测试完成之后,在扩展库上右键选择导出,稍等即可导出完成。
在这里插入图片描述

此时可以查看库文件目录下有一个.mpext文件,此文件直接加载即可,此时没有调试模式的标志。
在这里插入图片描述

八**.结论**
经过此次实验,我懂得了如何加载Mind+第三方用户库,但不可避免的是实验过程中出现了许多问题,比如无法成功编写main.ts文件,无法成功测试等问题,但经过排查代码编写和硬件的连接,终于成功完成了此次实验。

标签:Generator,any,Mind,第三方,修改,文件夹,MpythonBT,用户库,block
来源: https://blog.csdn.net/weixin_45616349/article/details/116720156