不只听懂你,也能“感觉”到你
MacBot 把语音、动画、姿态和触觉放在同一套交互状态机中。不同身体动作会触发不同表情和反馈,而不是简单循环一组 GIF。
双界面语音对话
默认显示 MacBot 表情,可通过语音切换小智聊天界面;支持唤醒、聆听、回复和微信式消息显示。
情绪与口型联动
覆盖 21 种标准情绪,并加入说话、晕眩与欢迎动画;回复时嘴部跟随扬声器音量变化。
姿态与敲击识别
ADXL345 识别单击、双击、三击、摇晃、左右倾斜和倒置,三击还能在待机状态直接唤醒。
触觉震动反馈
DRV2605L 为点击、连接、AI 回复和晕眩事件提供不同震动节奏,并抑制马达对麦克风的干扰。
一块开发板集成完整桌宠能力
核心硬件集中在定制 PCB 上,减少飞线和体积;外壳则采用复古 Macintosh 造型,适合摆在桌面长期使用。
COMPUTE + MEMORYESP32-S3-N16R8
16 MB Flash 与 8 MB PSRAM,为语音流、GIF 解码和双界面状态机提供运行空间。
DISPLAYST7789 彩色屏
240×240 方形彩屏显示终端式启动信息、AI 对话、GIF 表情、Wi-Fi 与电量状态。
AUDIOICS-43434 + MAX98357A
I²S 数字麦克风和功放负责拾音与播放,支持离线唤醒、流式识别和 AI 语音回复。
MOTIONADXL345 加速度计
50 ms 姿态轮询与敲击中断相结合,区分点击、摇晃、倾斜和倒置。
HAPTICSDRV2605L + ERM 马达
提供强点击、双击、轻提示和长震动等波形;震动期间会暂时屏蔽运动事件,避免误触发。
POWER + TIMEMAX17048 + PCF8563
电量计负责电池状态,RTC 提供时间基础;顶部状态栏会显示电量与连接信息。
建议按“裸板验证 → 烧录 → 装壳”推进
先逐项确认屏幕、音频、姿态和震动,再装入外壳。这样出现问题时更容易判断是硬件、固件还是装配应力造成。
核心物料
- 01 MacBot 定制 PCB ×1
- 02 ESP32-S3-N16R8 ×1
- 03 ST7789 240×240 屏幕 ×1
- 04 ICS-43434 麦克风 ×1
- 05 MAX98357A 功放 ×1
- 06 喇叭 ×1
- 07 ADXL345 加速度计 ×1
- 08 DRV2605L + 震动马达
- 09 MAX17048 电量计 ×1
- 10 PCF8563 RTC ×1
- 11 锂电池与充电电路
- 12 3D 打印外壳与紧固件
六步完成基础复刻
下载并核对三套资料
代码仓库用于固件;开源硬件页用于 PCB、原理图与 BOM;MakerWorld 页面用于外壳打印件。
焊接并检查定制 PCB
优先检查电源、短路和器件方向,再连接屏幕、麦克风、喇叭、电池与震动马达。
裸板逐项通电测试
确认 ST7789、I²S 音频和 I²C 器件地址可被识别,再测试敲击与震动。
构建并烧录 MacBot 固件
推荐 ESP-IDF 6.0.2,在代码根目录执行 MacBot 板型构建,烧录后完成配网和设备激活。
打印并预装外壳
先清理屏幕窗口、按钮位和卡扣,确认 USB、BOOT/RESET、喇叭孔和走线没有干涉。
装壳后重新校准互动
外壳刚度会改变敲击峰值与震动传递,装配完成后重新测试单击、双击、三击、摇晃和倒置。
动作、表情和震动如何对应
MacBot 的身体互动有明确优先级:临时身体表情会完整播放,结束后再恢复 AI 说话或待机状态。
单击 / 双击
分别显示眨眼与惊讶表情;震动开启时给出强点击或双反馈节奏。
连续三击
显示开心表情,并可在待命时直接进入聆听,是无需喊唤醒词的快捷方式。
摇晃 / 倒置
优先播放晕眩表情;摇晃时可同步长震动,形成更明显的“被晃晕”反馈。
左右倾斜
显示思考表情,让桌面摆弄动作也能得到即时、本地、不依赖云端的回应。
实机外观与定制开发板
详情图已压缩为 1600×900 WebP,在保留屏幕与 PCB 细节的同时控制页面加载体积。


首次调试重点
装壳前后各测试一次,尤其关注音频噪声、敲击误触发和马达结构声。
屏幕黑屏
确认板型、ST7789 引脚、背光 GPIO 2 和资源分区配置。
音频有杂音
核对麦克风与功放共用 BCLK/LRCK,数据脚分别为 GPIO 6 与 7。
摇晃无反应
检查是否在表情模式,并通过日志确认 ADXL345 初始化和 motion 事件。
敲击误触发
按装壳后的结构刚度调整峰值阈值与冷却时间,震动期间保持事件屏蔽。
代码、PCB 与外壳入口
三处资料分别承担不同职责,请同时阅读各页面的许可、版本和装配说明。
