
ESP-VoCat 喵伴旋转底座
简介
ESP-VoCat 喵伴底座是为喵伴开发套件量身设计的底座,集成 ESP32-C61 、旋转电机和磁力计,实现旋转、基于 CSI 的触摸感知和磁力开关功能,提供更灵活、更自然的感知与交互体验。
简介:ESP-VoCat 喵伴底座是为喵伴开发套件量身设计的底座,集成 ESP32-C61 、旋转电机和磁力计,实现旋转、基于 CSI 的触摸感知和磁力开关功能,提供更灵活、更自然的感知与交互体验。开源协议
:GPL 3.0
描述
ESP-VoCat 喵伴旋转底座

项目简介
ESP-VoCat 喵伴旋转底座是为 ESP-VoCat 喵伴开发套件 量身打造的智能旋转底座,专用于玩具、智能音箱、智能中控等需要大模型语音交互能力的产品。设备采用 ESP32-C61-WROOM-1 模组,支持 USB Type-C 供电,并可通过磁吸接口为 ESP-VoCat 本体供电。
该项目实现了高精度步进电机控制、磁吸滑动开关事件检测、 CSI 感知功能、稳定的 UART 通信等核心功能,同时能够根据 ESP-VoCat 的 声源识别(Sound Source Localization) 结果自动调整方向,实现面向声源的智能旋转。通过动作控制与声源感知的结合,提供更自然、更具沉浸感的人机交互体验。
视频展示
硬件版本
- v1.0.0
初次发布。
软件版本
-
底座代码 Gitee 仓库:esp-vocat-base
-
喵伴头部小智代码 Gitee 仓库:ESP-VoCat-Xiaozhi
软件版本更新计划:
| 时间 | 版本 | 内容 |
|---|---|---|
| 12月5日 | V0.1.0 | 跟随鼓点摇摆动作 声源识别(定位 + 方向) 磁吸滑动驱动(用于唤醒) 猫咪蹭手动作 |
| 待定 | 后续版本 | 番茄钟完整功能(计时、提醒) UI 控制 语音控制联动 CSI运动感知 |
3D模型版本
- v1.0.0
喵伴底座3D模型
功能展示
ESP-VoCat 底座采用乐鑫 ESP32-C61-WROOM-1-N8R2 模组,通过自定义的 UART 协议,与 ESP-VoCat 本体进行串口通信。机械结构方面,底座配备 24BYJ48 步进电机,可实现声源识别和多种预定义旋转动作,增强交互体验。
此外,ESP-VoCat 底座配有一个磁吸滑动开关,可通过磁吸滑动开关,解锁更多交互体验。
声源识别
ESP-VoCat 支持声源识别功能,能够实时检测环境中的声音方向和位置。系统通过麦克风阵列采集声音信号,结合声强、相位等信息进行分析,判断声源所在的方位角。配合基于步进电机的超静音旋转底座,可以实现面向声源的智能交互。

多种预设动作
旋转底座支持多种预定义动作
-
摇头动作
摇头动作让底座带动喵伴轻轻左右摆头,模拟猫咪好奇或轻微示意的动作。

-
好奇环顾
好奇环顾动作让底座带动喵伴进行左顾右盼,配合小幅度随机偏移,模拟猫咪自然观察环境的行为。

-
鼓点律动
鼓点律动动作使 ESP-VoCat 能够根据外界音乐的鼓点节奏左右摆头,营造与音乐同步的互动效果。

-
温柔蹭手
温柔蹭手模拟猫咪轻柔蹭手的动作:底座缓慢扭向左侧再回到中心,循环数次。动作平滑自然,每次停顿都增强了真实的触感和温柔感。

注意事项:
所有动作都可参数化调控,便于对接豆包、小智等大模型。
而为更好执行动作,底座的电机控制拥有以下特性:- 精确角度控制: 支持任意角度旋转,精度可达 0.1 度,服务于声源识别
- 平滑加减速: 采用加减速算法,旋转更自然流畅
- 自动归位校准:
由于 ESP-VoCat 旋转底座由步进电机驱动,因此没有角度反馈,故而底座在启动时将进行零位校准,校准流程如下:
- 上电后,电机会自动向左旋转寻找限位开关
- 触碰到限位开关后,电机会向右旋转 95° 到中心位置
- 校准完成后,电机断电
磁吸滑动开关交互控制
ESP-VoCat 底座通过磁吸式滑动开关实现多种交互控制。滑块的不同位置会改变地磁传感器周围的磁场强度,底座通过实时监测这些磁场变化来识别滑块的动作。当检测到位置变化时,底座会将相应事件通过串口上报给 ESP-VoCat,从而实现丰富、直观的交互体验。
支持 7 种磁吸滑动开关事件检测:
- 滑块自上向下拨动 (SLIDE_DOWN)
- 滑块自下向上拨动 (SLIDE_UP)
- 滑块从上方位置移除 (REMOVE_FROM_UP)
- 滑块从下方位置移除 (REMOVE_FROM_DOWN)
- 将滑块放置于上方位置 (PLACE_FROM_UP)
- 将滑块放置于下方位置 (PLACE_FROM_DOWN)
- 当滑块处于下方位置时,可额外识别 单击 动作 (SINGLE_CLICK):基于 mag_x 轴数据变化检测,结合 mag_x 和 mag_y 关系判断,防止滑动误触发
- 喂鱼事件 (FISH_ATTACHED):检测小鱼从上位置放置的特定磁场变化
- 配对模式 (PAIRING):两个 ESP-VoCat 面对面靠近,用于配对联网

磁吸滑动开关控制功能支持多种传感器:
- BMM150 三轴地磁传感器
- QMC6309 三轴地磁传感器
- 线性霍尔传感器
注意:
- 以上传感器三选一即可,默认选择 BMM150。使用线性霍尔传感器时只支持滑块上下滑动(SLIDE_UP / SLIDE_DOWN)两个事件检测!
- 在首次使用该功能前,为适配磁场环境,须完成磁吸滑动开关的校准,以记录其处于 上方 / 下方 / 移除 三种状态时的磁场强度基准值。校准数据将通过 NVS Flash 持久化存储。在使用过程中如需重新校准,可通过 ESP-VoCat 发送串口命令或长按底座 Boot 键进行触发。
依托地磁传感器的检测结果,结合动作判定算法,底座能够识别七类动作。
CSI感知功能
喵伴可通过 Wi-Fi CSI(Channel State Information)感知环境变化,实现动作触发或环境交互。
-
移动检测
通过喵伴获取路由器的CSI信息,可以感知整个空间环境内人体的移动,实现人体移动检测和数据统计。 -
近场感知
通过喵伴和底座之间互相发包,可以控制 Wi-Fi 传输路径,实现小范围高精度的检测效果。例如当检测到人手指靠近时,底座可自动调整姿态或执行预设动作,实现更智能的互动体验。

串口通信
ESP-VoCat 旋转底座可通过 UART 协议与 ESP-VoCat 进行数据通信。
- 命令类型:
- 角度控制命令(CMD_BASE_ANGLE_CONTROL)
- 预设动作控制命令(CMD_BASE_ACTION_CONTROL)
- 预设动作完成通知(CMD_ACTION_COMPLETE)
- 磁吸开关事件上报(CMD_MAGNETIC_SWITCH_EVENT)
- 磁吸数据校准进度同步(MAG_SWITCH_CALIB_*)
注:目前只开放以上基础的命令类型,后续会添加 CSI 相关命令。
- 数据帧格式:
AA 55 [LEN_H] [LEN_L] [CMD] [DATA...] [CHECKSUM]
- 校验机制:
- 帧头校验
- 校验和验证
硬件要求
主控芯片
- ESP32-C61-WROOM-1 或 ESP32-C61-WROOM-1U 模组
默认使用 ESP32-C61-WROOM-1
外设连接与引脚分配
-
步进电机(28BYJ-48 + ULN2003 驱动 IC)
- IN1 → GPIO28
- IN2 → GPIO27
- IN3 → GPIO26
- IN4 → GPIO25
-
磁力计传感器(I2C)
- SCL → GPIO3
- SDA → GPIO2
- 支持 BMM150(I2C 地址:0x10)
- 支持 QMC6309(I2C 地址:0x7C)
-
线性霍尔传感器(ADC)
- ADC_PIN → GPIO5(ADC_CHANNEL_3)
-
转台回零校准限位开关
- 回零校准限位开关检测引脚 → GPIO1(低电平有效)
-
BOOT 按键
- BOOT 按键 → GPIO9(低电平有效)
默认功能是长按进行磁吸滑动开关校准。
-
UART 通信
- TXD → GPIO29
- RXD → GPIO8
- 波特率:115200
使用说明
首次启动
-
底座角度校准:
- 上电后,电机会自动向左旋转寻找限位开关
- 触碰到限位开关后,电机会向右旋转 90° 到中心位置
- 校准完成后,电机断电
-
磁吸开关校准(如果是首次使用):
- 系统自动检测第一个稳定位置(保持滑块静止约 500ms)
- 系统记录第一个位置后,提示:
First position calibrated - 将滑块移动到第二个不同位置(上/下/拿掉),系统自动检测稳定
- 系统记录第二个位置后,发送
0x12给 ESP-VoCat,通知第二个位置校准完成 - 将滑块移动到第三个不同位置,系统自动检测稳定
- 系统记录第三个位置后,自动按磁场强度排序分配到 REMOVED/UP/DOWN
- 校准完成后发送
0x13给 ESP-VoCat,通知校准完毕 - 校准数据自动保存到 Flash,下次启动自动加载
注意:
- 每个位置需要保持静止,等待系统自动检测稳定(约 500ms)
- 三个位置的磁场差异需大于 100(系统自动判断)
- 移动过程中数据变化正常,系统会自动等待稳定后记录
重新校准
方法 1:长按 Boot 按键
- 长按 GPIO9 的 Boot 按键(约 1.5 秒)
- 系统自动进入重新校准模式
方法 2:串口命令
- ESP-VoCat 发送命令
AA 55 00 03 03 00 10 16给底座 - 系统收到命令后进入重新校准模式
串口命令
1. 角度控制命令(0x01)
格式:AA 55 00 03 01 [ANGLE_H] [ANGLE_L] [CHECKSUM]
示例:旋转到 45°
AA 55 00 03 01 00 2D 31
00 2D= 45(十进制)31=01 + 00 + 2D(校验和)
2. 动作控制命令(0x02)
格式:AA 55 00 03 02 00 [ACTION] [CHECKSUM]
动作码:
0x01:摇头(SHAKE_HEAD)0x02:左顾右盼(LOOK_AROUND)0x03:跟随鼓点-鼓类(BEAT_SWING_DRUM)0x04:猫咪蹭手(CAT_NUZZLE)0x05:跟随鼓点-其他乐器(BEAT_SWING_OTHER)
示例:执行左顾右盼动作
AA 55 00 03 02 00 02 04
3. 磁吸开关事件上报(0x03)
格式:AA 55 00 03 03 00 [EVENT] [CHECKSUM]
事件码:
0x01:滑块向下滑动(SLIDE_DOWN)0x02:滑块向上滑动(SLIDE_UP)0x03:从上面拿下(REMOVE_FROM_UP)0x04:从下面拿下(REMOVE_FROM_DOWN)0x05:从上面放回(PLACE_FROM_UP)0x06:从下面放回(PLACE_FROM_DOWN)0x07:单击事件(SINGLE_CLICK)0x08:喂鱼事件(FISH_ATTACHED)- 小鱼从上位置放置时触发0x09:配对模式(PAIRING)- 长时间处于特定磁场状态0x10:启动数据校准程序0x11:校准开始通知0x12:第二个位置校准完成(头部收到后语音提示第三步)0x13:校准完成
4. 动作完成通知(0x02)
格式:AA 55 00 03 02 00 10 12
- 底座在执行完任意特定动作后自动发送
- 头部可根据此命令同步状态
硬件电路设计说明
底座硬件电路设计
主板硬件电路设计
ESP-VoCat 底座硬件部分主要包含电源管理、MCU、地磁传感器、霍尔传感器、电机驱动,总体硬件框图如下:

供电方式
ESP-VoCat-Base 支持USB-Type-C供电,电源为5V。同时,ESP-VoCat-Base提供了磁吸接口,可为ESP-VoCat主体进行供电。ESP-VoCat-Base内部通过DC-DC电路,将5V电压转换为3.3V电压,为ESP32-C61主控芯片及外设电路供电。

限流措施: 为ESP-VoCat主体供电时,采用TPS2051BDBVR芯片进行500mA限流。

步进电机控制
ESP-VoCat-Base采用步进电机控制底座旋转,驱动芯片采用ULN2003A。ULN2003A为高压、大电流达林顿阵列芯片,包含七个具有公共发射极的开路集电极达林顿对,常用于步进电机的控制。步进电机型号为24BYJ48,是一种内部带减速器的减速步进电机。控制方式为四相八拍,采用5V DC供电。
ESP-VoCat-Base的步进电机驱动电路如下:

RGB 灯扩展接口
ESP-VoCat-Base提供了WS2812B灯带接口,可以接入WS2812B RGB灯带,实现音乐律动灯等需要RGB 灯效的场景,电平转换电路如下:

传感器
地磁传感器: ESP-VoCat-Base预留有BMM150 三轴地磁传感器与QMC6309 三轴地磁传感器的焊接位,主要用于磁吸滑动开关的感知,两者都通过I2C协议与主控芯片进行通信,用户可自主二选一。ESP-VoCat-Base将默认使用BMM150 传感器。
BMM150外围电路如下:

QMC6309外围电路如下:

线性霍尔传感器: ESP-VoCat-Base配备了SS49E线性霍尔传感器,可用于检测磁场强度。SS49E传感器采用模拟输出。主控芯片ESP32-C61-WROOM-1采用ADC获得传感器数据。外围电路如下:

人体存在检测雷达: ESP-VoCat-Base预留有人体存在检测雷达LD2402的接口,可用于实现人体存在检测等功能,LD2402与主控芯片采用UART通信。外围电路如下:

I2C协议接口: ESP-VoCat-Base留有一个I2C协议接口,可额外挂载支持I2C协议的设备。外围电路如下:

子板硬件电路设计
ESP-VoCat-Base通过安装在步进电机轴承上的子板,与ESP-VoCat主体相连接。子板通过限位开关,实现步进电机的角度校准。

复刻教程
在装配前请准备以下材料及部件:
| 序号 | 描述 |
|---|---|
| 1 | 3D 打印外壳外身 |
| 2 | 3D 打印外壳底盖 |
| 3 | 3D 打印转台上盖 |
| 4 | 3D 打印转台下盖 |
| 5 | ESP-VoCat-Base-MainBoard |
| 6 | ESP-VoCat-Base-SubBoard |
| 7 | 24BYJ48 步进电机 |
| 8 | 3D 打印磁吸滑动开关滑块 |
| 9 | SH1.0mm 间距 5P 端子线 |
| 10 | 圆形磁铁 D10×1.5 mm |
| 11 | 圆形磁铁 D6×5 mm |
| 12 | 内径 7mm 外径 11mm 高度 3mm 轴承 |
| 13 | M4×5mm 螺丝 |
| 14 | M2×4mm 螺丝 |
| 15 | M2×3mm 螺丝 |
投板注意事项:
- 板厚选择 1.0mm
- 两个地磁传感器均为WLCSP封装,焊接难度较大,焊接初学者可考虑选择SMT服务。立创商城中也包含相关资源。
子板焊接注意事项:
焊接子板磁吸公座时需注意方向,有红色标记的一端应和 PCB 板上白圈在同一侧!!!

V1.0.0 版本旋转底座硬件装配
ESP-VoCat 旋转底座包含 MainBoard 、 SubBoard 两块电路板,与一个 24BYJ48 步进电机, MainBoard 和 SubBoard 通过 5P 1.0mm间距 的排线相连。步进电机 通过排线与 MainBoard 连接。
装配步骤:
-
将 2 块 D10×1.5mm 圆形磁铁 装配至3D 打印外壳外身的内部,需特别注意磁铁极性。
-
将 内径 7mm 外径 11mm 高度 3mm 的微型轴承 装配至3D 打印外壳外身的内部的凹槽中,确保轴承装配到位。
-
将 24BYJ48 步进电机 安装至3D 打印外壳外身的内部,并使用两颗 M4×5mm 螺丝 进行固定,考虑到装配公差,此时不需要将螺丝完全拧紧,待转台安装在电机轴上之后再将其拧紧即可。
-
将 ESP-VoCat-Base-SubBoard 电路板安装至3D 打印转盘下盖上,确保螺丝孔对齐。
-
将 3D 打印转盘上盖 安装至3D 打印转盘下盖上,并在背面使用两颗 M2×3mm 螺丝 进行固定。
-
将 SH1.0mm 间距 5P 端子线 插入转盘的接口。
-
将 组装完成的转盘 安装至步进电机的轴中,转盘表面与外身基本平齐。此时可将电机螺丝拧紧。
-
将 ESP-VoCat-Base-MainBoard 使用两颗 M2×4mm 螺丝 固定在 3D 打印外壳底盖上。
-
将 步进电机排线 插入主板的电机接口中(弯插,印有 Motor 标识),将 子板排线 插入主板的子板接口中(直插,无标识)。注意:5P 1.0 排线必须为双头同向,插之前请反复检查,以免短路烧板!
-
将 圆形磁铁 D6×5mm 安装至 3D 打印磁吸滑动开关滑块 的凹槽内(注意磁铁极性,需和D10×1.5mm的磁铁相吸),然后放置在喵伴旋转底座胸前,开关将被自动吸附。最后,将旋转底座上电并烧录固件,观察旋转底座是否正常进行自动归位校准程序,若正常,则 ESP-VoCat 旋转底座安装完成。
物料清单
ESP-VoCat 底座物料清单
-
圆形磁铁 -- D6×5mm,选直径6x厚5mm (1个)
-
圆形磁铁 -- D10×1.5mm,选直径10x厚1.5mm (1个)
-
3D 打印外壳可以选择自己打印或者走嘉立创打印
技术交流群
若在复刻工作中遇到任何问题,欢迎加入官方技术交流群,与其他开发者实时探讨、共解难题。
- 0 群(已满):813935663
- 1 群(已满):1032430870
- 2 群(已满):939405364
- 3 群(已满):480486715
- 4 群(已满):807521569
- 5 群:1054806943
购买方式
目前已有第三方卖家售卖成品或散件,如果不想复刻,可直接在淘宝搜索“喵伴底座”购买。
常见问题
Q1:电机抖动或不转
- 检查供电是否充足(至少 5V 1A)
- 检查接线是否正确
- 检查是否有阻力阻碍到转台转动
- 尝试降低速度(增大
speed_us参数)
Q2:磁吸开关校准失败
- 确保传感器 I2C 连接正常
- 检查传感器类型配置是否匹配
- 移动滑块时动作要明确,等待稳定提示再移动
- 慢速移动时,检查是否已优化沉淀期机制
Q3:串口通信异常
- 检查波特率是否为 115200
- 确认 TX/RX 接线是否正确
- 检查校验和是否计算正确
如果你在复刻之后发现有问题,欢迎评论指正!!!
设计图
未生成预览图,请在编辑器重新保存一次BOM
暂无BOM
克隆工程知识产权声明&复刻说明
本项目为开源硬件项目,其相关的知识产权归创作者所有。创作者在本平台上传该硬件项目仅供平台用户用于学习交流及研究,不包括任何商业性使用,请勿用于商业售卖或其他盈利性的用途;如您认为本项目涉嫌侵犯了您的相关权益,请点击上方“侵权投诉”按钮,我们将按照嘉立创《侵权投诉与申诉规则》进行处理。
请在进行项目复刻时自行验证电路的可行性,并自行辨别该项目是否对您适用。您对复刻项目的任何后果负责,无论何种情况,本平台将不对您在复刻项目时,遇到的任何因开源项目电路设计问题所导致的直接、间接等损害负责。









