# 小樱nfc鸟头杖_stm32程序 **Repository Path**: TiX233/sakura_nfc_stm32 ## Basic Information - **Project Name**: 小樱nfc鸟头杖_stm32程序 - **Description**: 小樱nfc鸟头杖_stm32程序 - **Primary Language**: Unknown - **License**: GPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 0 - **Created**: 2025-03-17 - **Last Updated**: 2025-04-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 小樱 nfc 鸟头杖 stm32 程序 目录: - [小樱 nfc 鸟头杖 stm32 程序](#小樱-nfc-鸟头杖-stm32-程序) - [〇、仓库说明](#〇仓库说明) - [一、内容介绍](#一内容介绍) - [二、如何使用](#二如何使用) - [1、程序下载接口](#1程序下载接口) - [2、安装](#2安装) - [3、语音下载](#3语音下载) - [三、卡牌触发](#三卡牌触发) - [四、自定义卡牌和控制效果](#四自定义卡牌和控制效果) - [五、调试命令](#五调试命令) ## 〇、仓库说明 本仓库是 [小樱 nfc 鸟头杖](https://gitee.com/TiX233/sakura_nfc_repo.git) 项目的一个子仓库。 硬件开源连接:[【立创】小樱nfc鸟头杖](https://oshwhub.com/realtix/sakura_nfc) ## 一、内容介绍 本项目存储与鸟头杖主控程序相关的内容。 ## 二、如何使用 ### 1、程序下载接口 使用 st-link 下载,接线处: ![st-link](./Pic/Snipaste_2025-03-20_22-54-58.jpg) ### 2、安装 **PCB 安装位置**: ![pcb](./Pic/Snipaste_2025-03-20_22-58-20.jpg) **开关引出位置**: ![switch](./Pic/Snipaste_2025-03-20_22-58-42.jpg) **nfc 线圈**: 每副天线感值约 `1uH` 单天线接法: ![单接](./Pic/Snipaste_2025-03-20_23-01-35.jpg) ![单原理图](./Pic/Snipaste_2025-03-20_23-07-09.jpg) 双天线接法: ![双接](./Pic/Snipaste_2025-03-20_23-02-57.jpg) ![双原理图](./Pic/Snipaste_2025-03-20_23-07-25.jpg) 内部空间有限,除 PCB 外,其他如开关、喇叭等等部件使用热熔胶粘接固定。螺丝选用 m2*5 自攻螺丝。 ### 3、语音下载 使用 Type-C 线连接电脑和法杖,连接时,需要主要 C 口正反插分别为串口和语音下载,如果电脑弹出来一个 U 盘,则为语音下载方向。 将附件中的音频解压后拖到弹出的 U 盘即可。 ![upan](./Pic/Snipaste_2025-03-20_23-17-24.jpg) ## 三、卡牌触发 可以使用法杖自带的读写卡命令来配置卡牌。 在法杖下载和安装后,使用 Type-C 线连接电脑和法杖,注意 C 口接入方向,确保电脑识别为串口。打开任意串口助手,115200 波特率,使用如下命令来配置卡牌信息: ```shell /card -w ``` 例: ```shell /card -w 1 0x0006 0x00 2 1 ``` 效果: 当靠近该卡片时,法杖会读出 卡片ID(01) 和 自定义参数(0x00)发送给蓝牙 mesh 地址为 0x0006 的设备,并播放 02 号文件夹内的 001 号音频,控制器会执行的操作与法杖无关,法杖仅转发卡片内容,一般由控制器根据卡片 ID 来决定执行哪些操作。 另外,如果将地址配置为 `0xFFFF` 那么靠近这张卡牌则会将消息转发给所有受控设备。 **目前的预设卡牌:** | 卡牌 | 效果 | 卡牌 ID | 蓝牙 mesh 地址 | 自定义数据 | 音频文件夹号 | 音频号 | | - | - | - | - | - | - | - | | 光牌 | 开灯 | 1 | 0x0006 | 无 | 2 | 1 | | 暗牌 | 关灯 | 2 | 0x0006 | 无 | 3 | 1 | | 风牌 | 开/关 风扇 | 3 | 0x0007 | 无 | 4 | 1 | 可以不按照上述预设卡牌内容来设置卡牌,因为以上内容并非写入法杖的主控里,而是写在卡牌的芯片里,法杖只会转发卡牌内容到相应控制器,只需保证存在对应地址的控制器即可。一般来说,控制器根据卡牌 ID 来决定所需要执行的操作,但还是留了一个自定义数据字节,暂时没有设计用处,但也会发送给控制器。 ## 四、自定义卡牌和控制效果 如果需要添加额外的卡牌和触发效果,那么卡牌的配置过程和上述一样,不过写入的内容根据实际情况决定,仅需额外补充对应语音至法杖,无需对法杖代码进行修改,不过控制器需要根据所需来对其代码进行相应修改。对于控制器的代码修改相关内容详见其对应仓库。 对于受控设备的蓝牙 mesh 地址,可以按照如下要求设定: ```c 0XFFFF 广播地址 设备短地址不能配置成这个 0X0002 到 0XFF00 单播地址 设备地址(用户设置短地址可在这个范围内) 0X0001 中心机地址 中心机 0xFF01 到 0XFFFE 系统地址 一般不建议使用 ``` 另外,法杖的地址固定为 `0005`,建议大于这个数 对于自定义音频,其文件夹开头必须为两位数字,名称总共不超过 12 个字节,汉字一个字占两个字节,文件夹下的音频以三位数字开头,最多 255 个音频,名称长度同文件夹。音频格式使用 `MP3`,采样率可用 `8/11.025/12/16/22.05/24/32/44.1/48KHZ`,有高音质需求请自行改装主控 PCB,将 CH8001 芯片的 DAC 引脚接至外置 DAC。 ## 五、调试命令 连接串口后,发送 `/help` 命令后即可查看所有可用的命令 对于某一命令,可通过不带任何参数或使用 `-h` 参数来打印其用法 **例如**: 通过串口发送以下内容,将打印 播放特定音频命令 的用法 ```shell /audio -h ``` 输出用法提示: ```shell Useage: /audio ``` 也就是说,这条命令需要三个参数,第一个是命令名,第二个是音频所在文件夹 id,第三个是音频编号 用法例: ```shell /audio 1 1 ``` 这条命令将会播放第一个文件夹内的第一个音频,用于测试音频播放 --- **目前可用的命令**: | 命令 | 功能 | | - | - | | `/help` | 列出所有可用命令 | | `/echo` | 返回第一个参数用以测试串口输入输出 | | `/hello` | Ciallo World~ (∠・ω< )⌒☆ | | `/battery` | 输出电池电压及电量 | | `/ws2812_test` | 播放指定灯效用以测试 | | `/card` | 读写卡命令 | | `/audio` | 播放指定音频用以测试 | | `/volume` | 设置音量 | | `/mesh` | mesh 发送测试用命令 |