Arduino版本 DFrobot mind+图形化模块自定义添加库--rc522(RFID)

2023-10-13 06:10

本文主要是介绍Arduino版本 DFrobot mind+图形化模块自定义添加库--rc522(RFID),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Arduino版本 DFrobot mind+图形化模块自定义添加库–rc522(RFID)

一、软件准备

名称版本
Mind+最新
VS code(这个没硬性要求)最新

二、硬件准备

名称数量
Arduino uno一块
MFRC522一块
IC卡一块
杜邦线若干

三、项目开始

1、相关参考文章

DF官方参考链接:https://mindplus.dfrobot.com.cn/ext-api#target_10
DF官方学习视频参考:https://www.bilibili.com/video/BV1yE411V7zf?p=2
oled12864样例库: https://gitee.com/dfrobot/ext-oled12864.git
PS:希望读者认真看完官方的相关参考文献,在里面会介绍相关的block的定义和相关函数的用法,在这里不做过多的解释。

2、config.json文件修改

(1)demo:
在这里插入图片描述
RC522:

{"name": {"zh-cn": "rc522读卡器","en": "rc522"},"description": {"zh-cn": "rc522读卡器","en": "rc522"},"author": "litp","email": "2505145537@qq.com","license": "MIT","isBoard": false,"id": "rc522","version": "0.0.1","platform": ["win"],"asset": {"arduinoC": {"dir": "arduinoC/","version": "0.0.1","board": ["microbit","esp32","arduino"],"main": "main.ts"}}
}
3、添加相关库

这里需要注意你的主控是什么版型,这里使用arduino UNO,掌控板一般用python,ESP32一般和arduino一样,注意库的兼容性
在这里插入图片描述
在这里插入图片描述
PS:注意要放在一个文件夹里面。

3、相关引脚定义和使用

在这里插入图片描述

4、编写mian.ts

这里的相关细节请看官方的文档和相关视频,在上面有相关的链接。
arduino版RC522相关代码:


enum SIZE {//% block="29*29"1,//% block="58*58"2
}enum LINE {//% block="1"1,//% block="2"2,//% block="3"3,//% block="4"4
}enum BTN {//% block="A"A,//% block="B"B,//% block="A+B"AB
}//% color="#AA278D" iconWidth=50 iconHeight=40
namespace rc522 {//%  block="rc522init" blockType="command"export function rc522_init(parameter: any, block: any) {Generator.addInclude('rc522_initinclude', '#include<rfid1.h>');Generator.addObject(`rc522_initobject`, `RFID1`, `rfid;`);Generator.addObject(`rc522_initobject1`, `uchar`, `serNum[5];`);}//%  block="rc522setup" blockType="command" export function rc522_setup(parameter: any, block: any) {Generator.addSetup(`rfid.begin`, `rfid.begin(7, 5, 4, 3, 6, 2);`);Generator.addSetup(`delay`, `delay(100);`);Generator.addSetup(`rfid.init`, `rfid.init();`);}//%  block="rc522_readfail" blockType="command" export function rc522_readfail(parameter: any, block: any) {Generator.addCode(`
uchar status;
uchar str[MAX_LEN];
// Search card, return card types
status = rfid.request(PICC_REQIDL, str);
if (status != MI_OK){return;
}
// Show card type
rfid.showCardType(str);
//Prevent conflict, return the 4 bytes Serial number of the card
status = rfid.anticoll(str);`);
}//%  block="rc522_readsuccess" blockType="command" export function rc522_readsuccess(parameter: any, block: any) {Generator.addCode(`  
if (status == MI_OK){Serial.print("The card's number is: ");memcpy(serNum, str, 5);rfid.showCardID(serNum);//show the card IDSerial.println();Serial.println();}
delay(500);rfid.halt(); //command the card into sleep mode`);}
}
5、相关block的中文添加

在这里插入图片描述

6、第三方自定义用户库添加

在这里插入图片描述

本项目相关的代码下载链接:

四、效果展示

1、mind+ IDE图形效果

在这里插入图片描述

2、下载代码效果

在这里插入图片描述

3、测试效果

这篇关于Arduino版本 DFrobot mind+图形化模块自定义添加库--rc522(RFID)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/201290

相关文章

Python版本与package版本兼容性检查方法总结

《Python版本与package版本兼容性检查方法总结》:本文主要介绍Python版本与package版本兼容性检查方法的相关资料,文中提供四种检查方法,分别是pip查询、conda管理、PyP... 目录引言为什么会出现兼容性问题方法一:用 pip 官方命令查询可用版本方法二:conda 管理包环境方法

Python sys模块的使用及说明

《Pythonsys模块的使用及说明》Pythonsys模块是核心工具,用于解释器交互与运行时控制,涵盖命令行参数处理、路径修改、强制退出、I/O重定向、系统信息获取等功能,适用于脚本开发与调试,需... 目录python sys 模块详解常用功能与代码示例获取命令行参数修改模块搜索路径强制退出程序标准输入

Python pickle模块的使用指南

《Pythonpickle模块的使用指南》Pythonpickle模块用于对象序列化与反序列化,支持dump/load方法及自定义类,需注意安全风险,建议在受控环境中使用,适用于模型持久化、缓存及跨... 目录python pickle 模块详解基本序列化与反序列化直接序列化为字节流自定义对象的序列化安全注

C#中通过Response.Headers设置自定义参数的代码示例

《C#中通过Response.Headers设置自定义参数的代码示例》:本文主要介绍C#中通过Response.Headers设置自定义响应头的方法,涵盖基础添加、安全校验、生产实践及调试技巧,强... 目录一、基础设置方法1. 直接添加自定义头2. 批量设置模式二、高级配置技巧1. 安全校验机制2. 类型

python pymodbus模块的具体使用

《pythonpymodbus模块的具体使用》pymodbus是一个Python实现的Modbus协议库,支持TCP和RTU通信模式,支持读写线圈、离散输入、保持寄存器等数据类型,具有一定的参考价值... 目录一、详解1、 基础概念2、核心功能3、安装与设置4、使用示例5、 高级特性6、注意事项二、代码示例

SpringBoot AspectJ切面配合自定义注解实现权限校验的示例详解

《SpringBootAspectJ切面配合自定义注解实现权限校验的示例详解》本文章介绍了如何通过创建自定义的权限校验注解,配合AspectJ切面拦截注解实现权限校验,本文结合实例代码给大家介绍的非... 目录1. 创建权限校验注解2. 创建ASPectJ切面拦截注解校验权限3. 用法示例A. 参考文章本文

Python一次性将指定版本所有包上传PyPI镜像解决方案

《Python一次性将指定版本所有包上传PyPI镜像解决方案》本文主要介绍了一个安全、完整、可离线部署的解决方案,用于一次性准备指定Python版本的所有包,然后导出到内网环境,感兴趣的小伙伴可以跟随... 目录为什么需要这个方案完整解决方案1. 项目目录结构2. 创建智能下载脚本3. 创建包清单生成脚本4

Python中logging模块用法示例总结

《Python中logging模块用法示例总结》在Python中logging模块是一个强大的日志记录工具,它允许用户将程序运行期间产生的日志信息输出到控制台或者写入到文件中,:本文主要介绍Pyt... 目录前言一. 基本使用1. 五种日志等级2.  设置报告等级3. 自定义格式4. C语言风格的格式化方法

Vite 打包目录结构自定义配置小结

《Vite打包目录结构自定义配置小结》在Vite工程开发中,默认打包后的dist目录资源常集中在asset目录下,不利于资源管理,本文基于Rollup配置原理,本文就来介绍一下通过Vite配置自定义... 目录一、实现原理二、具体配置步骤1. 基础配置文件2. 配置说明(1)js 资源分离(2)非 JS 资

Ubuntu如何升级Python版本

《Ubuntu如何升级Python版本》Ubuntu22.04Docker中,安装Python3.11后,使用update-alternatives设置为默认版本,最后用python3-V验证... 目China编程录问题描述前提环境解决方法总结问题描述Ubuntu22.04系统自带python3.10,想升级