From fb0394dcee234719634d79349a5bc10af6c5a09d Mon Sep 17 00:00:00 2001 From: Sucareto <28331534+Sucareto@users.noreply.github.com> Date: Sat, 23 Apr 2022 16:55:04 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8F=98=E6=9B=B4=E5=AE=9A=E4=B9=89=E4=BD=8D?= =?UTF-8?q?=E7=BD=AE=EF=BC=9B=E4=BF=AE=E5=A4=8D=E8=87=AA=E5=AE=9A=E4=B9=89?= =?UTF-8?q?=20HW=20=E5=AF=BC=E8=87=B4=E7=9A=84=E8=AF=BB=E5=8F=96=E9=97=AE?= =?UTF-8?q?=E9=A2=98=EF=BC=9B32u4=E6=94=B9=E7=94=A8spi=E6=A8=A1=E5=BC=8F?= =?UTF-8?q?=EF=BC=8C=E4=BF=AE=E5=A4=8Dfelica=E8=AF=BB=E5=8F=96=E9=97=AE?= =?UTF-8?q?=E9=A2=98=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 15 +++++++-------- cmd.h | 40 ++++++++++++++++++++++++++++++++++------ 2 files changed, 41 insertions(+), 14 deletions(-) diff --git a/README.md b/README.md index 5de8113..ecfb883 100644 --- a/README.md +++ b/README.md @@ -7,14 +7,13 @@ ### 使用方法: 1. 按照 [PN532](https://github.com/elechouse/PN532) 的提示安装库 -2. Arduino 和 PN532 接好 VCC,GND,SDA,SCL -3. PN532 的拨码开关按照 PCB 上丝印的指示,调整到 I2C 模式 -4. 接上 WS2812B 灯条(可选) -5. 上传 [ReaderTest](tools/ReaderTest/ReaderTest.ino) 测试硬件是否工作正常 -6. 若读卡正常,可按照支持列表打开设备管理器设置 COM 端口号 -7. 按照游戏的波特率设置代码的`high_baudrate`选项 -8. 上传程序打开游戏测试 -9. 安装 [MifareClassicTool](https://github.com/ikarus23/MifareClassicTool),修改 [Aime 卡示例](doc/aime示例.mct) 后写入空白 MIFARE UID/CUID 卡 +2. 按照使用方式,在 Arduino 和 PN532 接好连接线(I2C或SPI),并调整 PN532 上的拨码开关 +3. 接上 WS2812B 灯条(可选) +4. 上传 [ReaderTest](tools/ReaderTest/ReaderTest.ino) 测试硬件是否工作正常 +5. 若读卡正常,可按照支持列表打开设备管理器设置 COM 端口号 +6. 按照游戏的波特率设置代码的`high_baudrate`选项,`115200`是`true`,`38400`是`false` +7. 上传程序打开游戏测试 +8. 安装 [MifareClassicTool](https://github.com/ikarus23/MifareClassicTool),修改 [Aime 卡示例](doc/aime示例.mct) 后写入空白 MIFARE UID/CUID 卡 某些 Arduino 可能需要在游戏主程序连接前给串口以正确的波特率发送 DTR/RTS,需要先打开一次 Arduino 串口监视器再启动主程序。 如果是 SDBT,可以在启动前运行一次 [DTR-RTS.exe](tools/DTR-RTS.exe) 以向 COM1 和 COM12 发送DTR/RTS。 diff --git a/cmd.h b/cmd.h index b6b9a85..0ab9dd3 100644 --- a/cmd.h +++ b/cmd.h @@ -2,12 +2,40 @@ #define NUM_LEDS 6 CRGB leds[NUM_LEDS]; +#if defined(__AVR_ATmega32U4__) || defined(ARDUINO_SAMD_ZERO) +#pragma message "当前的开发板是 ATmega32U4 或 SAMD_ZERO" +#define SerialDevice SerialUSB +#define LED_PIN A3 +#define PN532_SPI_SS 10 //32U4 不使用 SPI 时,执行 ReadWithoutEncryption 会失败 + +#elif defined(ARDUINO_ESP8266_NODEMCU_ESP12E) +#pragma message "当前的开发板是 NODEMCU_ESP12E" +#define SerialDevice Serial +#define LED_PIN D5 +//#define SwitchBaudPIN D4 //修改波特率按钮 + +#elif defined(ARDUINO_NodeMCU_32S) +#pragma message "当前的开发板是 NodeMCU_32S" +#define SerialDevice Serial +#define LED_PIN 13 + +#else +#error "未经测试的开发板,请检查串口和阵脚定义" +#endif + +#if defined(PN532_SPI_SS) +#pragma message "使用 SPI 连接 PN532" +#include +#include +PN532_SPI pn532(SPI, PN532_SPI_SS); +#else #include #include -#include +PN532_I2C pn532(Wire); +#endif -PN532_I2C pn532i2c(Wire); -PN532 nfc(pn532i2c); +#include "PN532.h" +PN532 nfc(pn532); uint8_t AimeKey[6], BanaKey[6]; @@ -153,15 +181,15 @@ static void sg_nfc_cmd_reset() { //重置读卡器 static void sg_nfc_cmd_get_fw_version() { sg_res_init(23); // memcpy(res.version, "TN32MSEC003S F/W Ver1.2", 23); - memcpy(res.version, "*SCRT_Reader F/W Ver1.2", 23); + memcpy(res.version, "-> Sucareto Aime Reader", 23); // sg_res_init(1); // memset(res.version, 0x94, 1); } static void sg_nfc_cmd_get_hw_version() { sg_res_init(23); - // memcpy(res.version, "TN32MSEC003S H/W Ver3.0", 23); - memcpy(res.version, "*SCRT_Reader H/W Ver3.0", 23); + memcpy(res.version, "TN32MSEC003S H/W Ver3.0", 23); + // memcpy(res.version, "-> Sucareto Aime Reader", 23); // sg_res_init(9); // memcpy(res.version, "837-15396", 9); }