// PROJECT_001 / MOTION-AWARE AI COMPANION
AI 项目 · 姿态感知 · 触觉反馈

MacBot姿态感知震动桌面机器人

MacBot 是基于 ESP32-S3 的开源 AI 情绪陪伴机器人。它能语音对话、显示动态表情,还能识别单击、双击、三击、摇晃、倾斜与倒置,并用表情和震动给出有“身体感”的回应。

ESP32-S3 N16R8ST7789 240×240ADXL345DRV2605L小智 AI
白色复古电脑造型的 MacBot AI 桌面机器人正面实拍
MACBOT · AI EMOTIONAL COMPANION语音对话 · 姿态感知 · 震动反馈
01 对话小智 AI / 语音唤醒
02 表情24 组 240×240 动画
03 感知敲击 / 摇晃 / 倾斜
04 反馈多节奏触觉震动
// 01_CAPABILITIES

不只听懂你,也能“感觉”到你

MacBot 把语音、动画、姿态和触觉放在同一套交互状态机中。不同身体动作会触发不同表情和反馈,而不是简单循环一组 GIF。

💬

双界面语音对话

默认显示 MacBot 表情,可通过语音切换小智聊天界面;支持唤醒、聆听、回复和微信式消息显示。

😊

情绪与口型联动

覆盖 21 种标准情绪,并加入说话、晕眩与欢迎动画;回复时嘴部跟随扬声器音量变化。

🧭

姿态与敲击识别

ADXL345 识别单击、双击、三击、摇晃、左右倾斜和倒置,三击还能在待机状态直接唤醒。

📳

触觉震动反馈

DRV2605L 为点击、连接、AI 回复和晕眩事件提供不同震动节奏,并抑制马达对麦克风的干扰。

// 02_HARDWARE

一块开发板集成完整桌宠能力

核心硬件集中在定制 PCB 上,减少飞线和体积;外壳则采用复古 Macintosh 造型,适合摆在桌面长期使用。

COMPUTE + MEMORY

ESP32-S3-N16R8

16 MB Flash 与 8 MB PSRAM,为语音流、GIF 解码和双界面状态机提供运行空间。

DISPLAY

ST7789 彩色屏

240×240 方形彩屏显示终端式启动信息、AI 对话、GIF 表情、Wi-Fi 与电量状态。

AUDIO

ICS-43434 + MAX98357A

I²S 数字麦克风和功放负责拾音与播放,支持离线唤醒、流式识别和 AI 语音回复。

MOTION

ADXL345 加速度计

50 ms 姿态轮询与敲击中断相结合,区分点击、摇晃、倾斜和倒置。

HAPTICS

DRV2605L + ERM 马达

提供强点击、双击、轻提示和长震动等波形;震动期间会暂时屏蔽运动事件,避免误触发。

POWER + TIME

MAX17048 + PCF8563

电量计负责电池状态,RTC 提供时间基础;顶部状态栏会显示电量与连接信息。

// 03_REPLICATION

建议按“裸板验证 → 烧录 → 装壳”推进

先逐项确认屏幕、音频、姿态和震动,再装入外壳。这样出现问题时更容易判断是硬件、固件还是装配应力造成。

核心物料

  • 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、原理图和位号图为准;不要仅凭本页摘要下单。

六步完成基础复刻

下载并核对三套资料

代码仓库用于固件;开源硬件页用于 PCB、原理图与 BOM;MakerWorld 页面用于外壳打印件。

焊接并检查定制 PCB

优先检查电源、短路和器件方向,再连接屏幕、麦克风、喇叭、电池与震动马达。

裸板逐项通电测试

确认 ST7789、I²S 音频和 I²C 器件地址可被识别,再测试敲击与震动。

构建并烧录 MacBot 固件

推荐 ESP-IDF 6.0.2,在代码根目录执行 MacBot 板型构建,烧录后完成配网和设备激活。

打印并预装外壳

先清理屏幕窗口、按钮位和卡扣,确认 USB、BOOT/RESET、喇叭孔和走线没有干涉。

装壳后重新校准互动

外壳刚度会改变敲击峰值与震动传递,装配完成后重新测试单击、双击、三击、摇晃和倒置。

// 04_INTERACTION

动作、表情和震动如何对应

MacBot 的身体互动有明确优先级:临时身体表情会完整播放,结束后再恢复 AI 说话或待机状态。

单击 / 双击

分别显示眨眼与惊讶表情;震动开启时给出强点击或双反馈节奏。

连续三击

显示开心表情,并可在待命时直接进入聆听,是无需喊唤醒词的快捷方式。

摇晃 / 倒置

优先播放晕眩表情;摇晃时可同步长震动,形成更明显的“被晃晕”反馈。

左右倾斜

显示思考表情,让桌面摆弄动作也能得到即时、本地、不依赖云端的回应。

// 05_DETAILS

实机外观与定制开发板

详情图已压缩为 1600×900 WebP,在保留屏幕与 PCB 细节的同时控制页面加载体积。

// 06_DEBUG

首次调试重点

装壳前后各测试一次,尤其关注音频噪声、敲击误触发和马达结构声。

屏幕黑屏

确认板型、ST7789 引脚、背光 GPIO 2 和资源分区配置。

音频有杂音

核对麦克风与功放共用 BCLK/LRCK,数据脚分别为 GPIO 6 与 7。

摇晃无反应

检查是否在表情模式,并通过日志确认 ADXL345 初始化和 motion 事件。

敲击误触发

按装壳后的结构刚度调整峰值阈值与冷却时间,震动期间保持事件屏蔽。

// 07_VIDEO

完整功能演示

视频集中展示 MacBot 的 AI 语音对话、动态表情、敲击与姿态识别,以及不同事件对应的震动反馈效果。

播放器无法加载时,前往哔哩哔哩观看完整演示 →