apds9960第三方用户库实现
一、前言
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第三方用户库实现相关推荐
- 【Mind+】APDS9960第三方用户库实现
文章目录 一.前言 二.修改外观信息 1.下载样例库 用户库文件结构 2.修改json信息 json配置文件 3.修改外观图片以及积木块矢量图 Mind+预览效果 三.库引入及修改编写main.ts ...
- Mixly第三方用户库实现
前言: Mixly自从2015年问世以来,就深受国内创客.中小学教师喜爱,如今已经成为国内最好用的Arduino图形化软件.Mixly最大的优点就是其开放性,Mixly建立了一个生态圈,这个生态圈欢迎 ...
- Mixly第三方用户库开发Arduino UNO使用EMW3080连接阿里云
文章目录 前言 一.实验准备 1.硬件准备 2.软件准备 二.实验过程 1.Mixly库说明 2.文件编写 2.1.编写xxx.xml文件 2.2.编写block/xxx.js文件 2.3.编写zh- ...
- 【mixly】APDS9960第三方库开发
APDS9960第三方库开发 文章目录 APDS9960第三方库开发 前言 一.实验准备 1.硬件准备 2.软件准备 二.实验过程 1.Mixly库说明 2.文件编写 2.1.编写xxx.xml文件 ...
- Mind+上传模式的第三方Arduino用户库实现 -DHT11温湿度模块
Mind+上传模式的第三方Arduino用户库实现--DHT11模块读取温湿度 前言 Mind+是一款拥有自主知识产权的国产青少年编程软件,支持Arduino.micro:bit.掌控板等各种开源硬件 ...
- 基于第三方开源库的OPC服务器开发指南(2)——LightOPC的编译及部署
基于第三方开源库的OPC服务器开发指南(2)--LightOPC的编译及部署 前文已经说过,OPC基于微软的DCOM技术,所以开发OPC服务器我们要做的事情就是开发一个基于DCOM的EXE文件.一个代 ...
- python安装第三方库win10_在win里anaconda怎么安装第三方的库
这次给大家带来在win里anaconda怎么安装第三方的库,在win里anaconda安装第三方库的注意事项有哪些,下面就是实战案例,一起来看一下. anaconda 集成了很多科学计算中所需要的包, ...
- react第三方组件库_如何自定义您的第三方React组件
react第三方组件库 by Jacob Goh 雅各布·高 如何自定义您的第三方React组件 (How to customize your third party React components ...
- 制作Mind+ Arduino UNO + EMW3080芯片连接阿里云的用户库
文章目录 前言 一.实验准备 1.硬件准备 2.软件准备 二.实验过程 1.下载样例库 1.2.用户库文件结构 1.3.相关配置文件说明 1.3.1.config.json配置文件 1.3.2.mai ...
最新文章
- oracle 快速备份表数据
- 用 Python 和 OpenCV 来测量相机到目标的距离
- SQL语句更改表所有者
- 太卷了~ 八股文,算法张口就来?2022版Java面试手册帮你全拿捏
- 获取进程或线程的ID以及句柄信息
- 显示画面 大华摄像头_大华乐橙智能锁荣获2020房地产首选供应商前十强
- Android9很多游戏玩不了,安卓狂野飙车9玩不了应该如何解决
- 通过迁移的方式解决Active Directory服务器问题之5-恢复服务器的应用
- java 的 sort()_Java中Array.sort()的几种用法
- c语言是高级编程语言吗,C语言是高级编程语言吗?
- 将中文姓名转为拼音英文名的一种实现
- con 元器件符号_altium designer常用元件电气符号和封装形式
- 无刷直流电机正反转 原理 分析
- 【四二学堂】代码写诗之--《二十一杯酒》
- ArcGIS API For JavaScript 利用GP服务生成等值线、等值面(二)之生成等值面
- 系统优化的基本思想点
- linux系统中怎么配置路由,Linux系统中路由配置介绍
- 【收集】Oracle官网账号
- 苹果搜索广告ASA开户教程
- Redis的持久化操作---RDBAOF