一、前言

Mind+内置支持上百种常见的传感器库,并从V1.6.2开始,开放用户库,任何用户均可以制作和分享自己的用户库,并提供了本地及网络加载方式,方便大家的使用。

二、修改外观信息

1、下载样例库
样例库: https://gitee.com/dfrobot/ext-oled12864.git

用户库文件结构
└─newExtensions // 项目名称
│ config.json // 本用户库的配置文件
│ LICENSE.TXT // 许可证说明
│ README.md // 文档说明

└─arduinoC // arduino模式用户库根目录
│ main.ts // 图形块描述文件

├─libraries // arduino库文件,列出本扩展库所有需要引用的.c或.h或.cpp文件
│ └─oled12864
│ oled12864.cpp
│ oled12864.h
│ qrcode.c
│ qrcode.h

├─_images // 图片文件
│ featured.png // MindPlus扩展库展示图片
│ icon.svg // MindPlus中图形块上的图标文件

├─_locales // 翻译文件,支持多国语言
│ zh-cn.json
│ en.json

└─_menus // 下拉菜单参数,每个板子可以独立设置
leonardo.json
uno.json
nano.json
mega2560.json
microbit.json
mpython.json

2、修改json信息

解压后可以看到json文件,我们需要修改里面的一些配置信息,让库文件显示出简略的简介信息

json配置文件

{
“name”: {
“zh-cn”: “APDS-9960手势传感器”,
“en”: “APDS-9960 Sensor”
},
“description”: {
“zh-cn”: “识别向上、向下、向左、向右、靠近、远离六种手势。”,
“en”: “This sensor offers ambient light and color measuring, proximity detection, and touchless gesture sensing.”
},
“author”: “silvery”,
“email”: “silveryliu@gmail.com”,
“license”: “MIT”,
“isBoard”: false,
“id”: “APDS_9960”,
“version”: “0.0.1”,
“platform”: [“win”, “mac”, “web”],
“asset”: {
“arduinoC”: {
“dir”: “arduinoC/”,
“version”: “0.1.0”,
“board”: [
“arduino”,
“arduinounor3”,
“arduinonano”,
“leonardo”,
“mega2560”,
“esp32”
],
“main”: “main.ts”
}
}
}

3、修改外观图片以及积木块矢量图

_images:

删除_images中的所有文件
将一张600x372像素的照片放到文件夹中,命名为featured.png
在iconfont搜索led,找一个合适的图片,点击下载,颜色选择白色,点击SVG下载,保存到文件夹中,命名为icon.png

Mind+预览效果

此时可以打开Mind+,切换到上传模式,打开扩展,选择Arduno uno,然后导入用户库查看效果:

三、库引入及修改编写main.ts

1、引入库文件
打开libraries文件夹,将库文件放入

2、main.ts描述文件总述

文件结构

enum xxxx {//% 引脚描述内容定义,需要翻译的菜单项需要定义到menu文件中//% 引脚生成代码定义
}//% color="#xxxx"   整个扩展block的外观定义,通过 //% 后的描述内容定义
namespace xxxx {  //% block="xxx [xxx]" blockType="xxx" 第一个block的外观定义描述内容  //% block其他描述内容 export function xxxx(parameter: any, block: any) {  //单个block的生成代码定义,通过函数描述生成代码的位置及内容//生成的代码位置及内容描述}//% block="xxx [xxx]" blockType="xxx" 第二个block的外观定义描述内容 //% block其他描述内容 export function xxxx(parameter: any, block: any) {//生成的代码位置及内容描述}//% block="xxx [xxx]" blockType="xxx" 第N个block的外观定义描述内容//% block其他描述内容 export function xxxx(parameter: any, block: any) {//生成的代码位置及内容描述}}

修改后的代码

enum GESTURE {//% block="DIR_NONE"DIR_NONE,//% block="DIR_LEFT"DIR_LEFT,//% block="DIR_RIGHT"DIR_RIGHT,//% block="DIR_UP"DIR_UP,//% block="DIR_DOWN"DIR_DOWN,//% block="DIR_NEAR"DIR_NEAR,//% block="DIR_FAR"DIR_FAR
}//% color="#AA278D" iconWidth=40 iconHeight=40
namespace apds9960 {//% block="gesture sensor initliallize SCL [SCL] SDA [SDA]" blockType="command"//% SDA.shadow="dropdown" SDA.options="SDA"//% SCL.shadow="dropdown" SCL.options="SCL"export function init(parameter: any, block: any) {// let intpin = parameter.INTPIN.code;let sda = parameter.SDA.code;let scl = parameter.SCL.code;Generator.addInclude("includeWire", "#include <Wire.h>");Generator.addInclude("includeSparkFun_APDS9960","#include <SparkFun_APDS9960.h>");Generator.addObject("apdsObject","SparkFun_APDS9960",`apds = SparkFun_APDS9960();`);Generator.addSetup(`initSetup`, `apds.init();`);Generator.addSetup(`enableGestureSensorSetup`,`apds.enableGestureSensor(true);`);}//% block="gesture available?" blockType="boolean"export function isGestureAvailable(parameter: any, block: any) {Generator.addCode("apds.isGestureAvailable()");}//% block="read gesture" blockType="reporter"export function readGesture(parameter: any, block: any) {Generator.addCode(`apds.readGesture()`);}//% block="gesture type [GESTURE]" blockType="reporter"//% GESTURE.shadow="dropdown" GESTURE.options="GESTURE" GESTURE.defl="GESTURE.DIR_LEFT"export function gesture(parameter: any, block: any) {let gesture = parameter.GESTURE.code;Generator.addCode( `${gesture}`);}}

最终效果 积木块样式:


四、总结

本次学习了如何使用Mind+自定义库功能,从样例库文件中学习了积木样式以及程序的定义,参考着其他库制作了这个库,从中学习到了很多不一样的知识,就目前来讲,对于自定义库编写还非常的不熟悉,期待自己能完成一个完全属于自己的库,为mind+这个软件添加自己的元素。

apds9960第三方用户库实现相关推荐

  1. 【Mind+】APDS9960第三方用户库实现

    文章目录 一.前言 二.修改外观信息 1.下载样例库 用户库文件结构 2.修改json信息 json配置文件 3.修改外观图片以及积木块矢量图 Mind+预览效果 三.库引入及修改编写main.ts ...

  2. Mixly第三方用户库实现

    前言: Mixly自从2015年问世以来,就深受国内创客.中小学教师喜爱,如今已经成为国内最好用的Arduino图形化软件.Mixly最大的优点就是其开放性,Mixly建立了一个生态圈,这个生态圈欢迎 ...

  3. Mixly第三方用户库开发Arduino UNO使用EMW3080连接阿里云

    文章目录 前言 一.实验准备 1.硬件准备 2.软件准备 二.实验过程 1.Mixly库说明 2.文件编写 2.1.编写xxx.xml文件 2.2.编写block/xxx.js文件 2.3.编写zh- ...

  4. 【mixly】APDS9960第三方库开发

    APDS9960第三方库开发 文章目录 APDS9960第三方库开发 前言 一.实验准备 1.硬件准备 2.软件准备 二.实验过程 1.Mixly库说明 2.文件编写 2.1.编写xxx.xml文件 ...

  5. Mind+上传模式的第三方Arduino用户库实现 -DHT11温湿度模块

    Mind+上传模式的第三方Arduino用户库实现--DHT11模块读取温湿度 前言 Mind+是一款拥有自主知识产权的国产青少年编程软件,支持Arduino.micro:bit.掌控板等各种开源硬件 ...

  6. 基于第三方开源库的OPC服务器开发指南(2)——LightOPC的编译及部署

    基于第三方开源库的OPC服务器开发指南(2)--LightOPC的编译及部署 前文已经说过,OPC基于微软的DCOM技术,所以开发OPC服务器我们要做的事情就是开发一个基于DCOM的EXE文件.一个代 ...

  7. python安装第三方库win10_在win里anaconda怎么安装第三方的库

    这次给大家带来在win里anaconda怎么安装第三方的库,在win里anaconda安装第三方库的注意事项有哪些,下面就是实战案例,一起来看一下. anaconda 集成了很多科学计算中所需要的包, ...

  8. react第三方组件库_如何自定义您的第三方React组件

    react第三方组件库 by Jacob Goh 雅各布·高 如何自定义您的第三方React组件 (How to customize your third party React components ...

  9. 制作Mind+ Arduino UNO + EMW3080芯片连接阿里云的用户库

    文章目录 前言 一.实验准备 1.硬件准备 2.软件准备 二.实验过程 1.下载样例库 1.2.用户库文件结构 1.3.相关配置文件说明 1.3.1.config.json配置文件 1.3.2.mai ...

最新文章

  1. oracle 快速备份表数据
  2. 用 Python 和 OpenCV 来测量相机到目标的距离
  3. SQL语句更改表所有者
  4. 太卷了~ 八股文,算法张口就来?2022版Java面试手册帮你全拿捏
  5. 获取进程或线程的ID以及句柄信息
  6. 显示画面 大华摄像头_大华乐橙智能锁荣获2020房地产首选供应商前十强
  7. Android9很多游戏玩不了,安卓狂野飙车9玩不了应该如何解决
  8. 通过迁移的方式解决Active Directory服务器问题之5-恢复服务器的应用
  9. java 的 sort()_Java中Array.sort()的几种用法
  10. c语言是高级编程语言吗,C语言是高级编程语言吗?
  11. 将中文姓名转为拼音英文名的一种实现
  12. con 元器件符号_altium designer常用元件电气符号和封装形式
  13. 无刷直流电机正反转 原理 分析
  14. 【四二学堂】代码写诗之--《二十一杯酒》
  15. ArcGIS API For JavaScript 利用GP服务生成等值线、等值面(二)之生成等值面
  16. 系统优化的基本思想点
  17. linux系统中怎么配置路由,Linux系统中路由配置介绍
  18. 【收集】Oracle官网账号
  19. 苹果搜索广告ASA开户教程
  20. Redis的持久化操作---RDBAOF

热门文章

  1. 数据结构队列-先进先出
  2. 基于pycharm的简单爬虫
  3. 分布式消息中间件应用实践
  4. MyEclipse和Eclipse界面配色文字设置
  5. 【练习题】python集合练习
  6. 二本出身的我,是如何拿下阿里 special offer 的?
  7. 二、图像阈值处理及平滑操作(均值滤波、方框滤波、高斯滤波、中值滤波)
  8. 字节提出TRT-ViT:面向TensorRT的视觉Transformer,加速显著!
  9. 深圳软件测试培训:测试中常见移动端基础知识
  10. 如何快速一次性卸载所有python包(第三方库)呢