Mind+上传模式的第三方Arduino用户库实现——RFID-RC522模块读操作
前言
Mind+是一款拥有自主知识产权的国产青少年编程软件,支持Arduino、micro:bit、掌控板等各种开源硬件,兼容Scratch3.0,支持AI与IoT功能,只需要拖动图形化程序块即可完成编程,还可以使用Python/C/C++等高级编程语言,让大家轻松体验创造的乐趣。
Mind+支持三大主流开源硬件平台(Arduino,micro:bit,掌控板esp32),均可以使用基于arduino C的库,因此只需要编写一个arduino的库即可达到三平台兼容。
Mind+已经支持几十种常用的扩展小模块库,为方便更多用户的使用,从V1.6.2版本开始开放用户自定义库功能,你可以根据自己的需要编写或移植现有的arduino库,自己设计图形模块(block)的外观及形状,自己设计对应生成的代码。
支持通过网络加载Github的用户库或直接本地加载(config.json或.mpext文件)。
注:使用用户库请先升级Mind+到V1.6.2 RC2.0及以上版本。
本博客实现的是Mind+上传模式的第三方Arduino用户库。利用Arduino UNO+RFID-RC522模块读S50卡的UID并从串口输出。
1、选择模板或自己建立用户库文件结构
想要建立自己的用户库可以选择官方提供的模板库(Arduino用户库模板、microPython用户库模板、实时模式用户库模板),在此基础上修改为自己需要的用户库;也可以自己按以下用户库文件结构从零构建属于自己的用户库(推荐使用模板库,不必重复造轮子)。
用户库文件结构:
│— newExtensions // 项目名称
│— config.json // 本用户库的配置文件
│— LICENSE.TXT // 许可证说明
│— README.md // 文档说明
│— arduinoC // arduino模式用户库根目录
│— main.ts // 图形块描述文件
│— libraries // arduino库文件,列出本扩展库所有需要引用的.c或.h或.cpp文件;若没有则把此文件夹内容删除清空
│— qrcode.h
│— ...
│— _images // 图片文件
│— featured.png // MindPlus扩展库展示图片(600x372像素)
│— icon.svg // MindPlus中图形块上的图标文件
│— ...
│— _locales // 翻译文件,支持多国语言
│— zh-cn.json
│— en.json
│— ...
│— _menus // 下拉菜单参数,每个板子可以独立设置
│— leonardo.json
│— uno.json
│— nano.json
│— mega2560.json
│— microbit.json
│— mpython.json
│— ...
下载完官方提供的Arduino用户库模板后会得到一个.zip文件。解压后把总文件夹名字改为自己的项目名称(注:不要用中文和特殊符号),并删除其中的.mpext文件。
我的RFID-RC522用户库文件结构如下:
2、修改config.json配置文件
修改config.json配置文件,配置扩展库信息。config.json配置文件的内容如下:
{
"name": {
//模块显示在扩展库中的标题名称
"zh-cn": "RFID-RC522模块", //中文
"en": "RFID-RC522 Module" //英文
},
"description": {
//模块显示在扩展库中的描述
"zh-cn": "简单的读取S50复旦卡UID并从串口输出的RFID-RC522模块", //中文
"en": "Simple read S50 fudan UID and from the serial port output of RFID card - RC522 module" //英文
},
"author": "XXX",
"email": "XXX@qq.com",
"license": "MIT",
"isBoard": false,
"id": "MFRC522", //修改id为这个扩展库唯一标识,英文数字或下划线,不要用中文和特殊符号
"platform": ["win","mac","web"],
"version": "0.0.1", //整个扩展库的版本号,缺少会报错。以后每次修改代码数字逐渐升级
"asset": {
"arduinoC": {
"dir": "arduinoC/",
"version": "0.0.1",
"board": [ //填写支持的板子,无法测试的不要写