灵眸小智——基于自研扩展板的桌面 AI 交互机器人
最近一直在折腾“小智”,之前主要还是以开发板和功能验证为主。
这次给它重新增加了一套结构件,把主控、屏幕、麦克风、扬声器、RGB 灯环以及舵机等模块重新整合了一下,终于从原来桌面上零散的一堆模块,慢慢有了一点“机器人”的样子。
这次给它起了一个名字:
灵眸小智
“灵眸”主要来自左右两侧的两个 RGB 环形灯。
在结构上,我把两个灯环设计成了类似机器人双眼的效果,除了起装饰作用,后续也可以利用不同颜色和动态灯效来显示小智当前的运行状态。
整个项目目前可以看作一个:
ESP32 + AI语音交互 + 屏幕显示 + RGB状态灯 + 舵机执行机构
组成的小型桌面 AI 机器人。
一、目前实现的主要功能
1. AI 语音交互
首先保留了“小智”原有的 AI 语音交互功能。
通过麦克风采集用户语音,设备联网后完成语音交互,再通过扬声器播放 AI 的回复。
相比最初单独跑开发板程序,现在把麦克风、功放、扬声器以及屏幕等模块全部安装到结构上以后,整体已经比较接近一个可以独立放在桌面上使用的小型 AI 终端。
2. 双 RGB 环形灯
左右两侧分别安装了一组 WS2812B RGB 环形灯。
这两个灯环除了作为机器人“眼睛”使用以外,还可以承担状态指示功能。
例如后续可以设计成:
- 待机状态:缓慢呼吸灯
- Wi-Fi 连接:蓝色灯效
- 语音唤醒:灯环快速点亮
- 正在聆听:灯光旋转
- AI 思考:流水灯效果
- 正在回答:跟随语音变化
- 网络异常:红色提示
这样用户不用一直盯着屏幕,也可以通过灯光快速判断机器人当前处于什么状态。
两个灯环安装完成以后,整个外观的辨识度也提高了不少。
3. OLED 状态显示
机器人中间安装了一块 OLED 显示屏。
OLED 主要用于显示:
- Wi-Fi 连接状态
- 系统运行状态
- 当前工作模式
- 提示文字
- 简单图标
- 简单表情
这样除了语音和灯光之外,又增加了一种更加直观的信息反馈方式。
后续也准备继续优化 OLED 的显示界面,例如加入不同表情,让机器人在不同状态下有一些简单的“情绪反馈”。
4. 语音输入
语音采集部分使用的是:
INMP441 数字 MEMS 麦克风模块
INMP441 通过 I²S 数字接口与 ESP32 通信。
相比普通模拟麦克风,数字麦克风可以直接输出数字音频数据,在 ESP32 这类语音项目中使用比较方便。
它主要负责:
- 用户语音采集
- 语音唤醒
- AI 对话输入
- 后续语音识别相关功能
简单来说,它就是小智的“耳朵”。
5. AI 语音输出
音频输出使用:
MAX98357A I²S 数字功放模块
MAX98357A 可以直接接收 ESP32 输出的 I²S 数字音频数据,并驱动扬声器播放声音。
它不需要再单独增加 DAC,和 ESP32 配合起来比较简单,也很适合这种小型语音机器人。
目前主要用于:
- AI 回复语音播放
- 系统提示音
- 状态提示
- 后续音效扩展
再配合前面的 INMP441,就形成了:
语音采集 → ESP32 → AI处理 → ESP32 → MAX98357A → 扬声器
这样一套完整的语音交互链路。
二、主要硬件组成
目前这套机器人使用的主要硬件包括:
ESP32 Mini 主控板
作为整个机器人的核心控制器。
主要负责:
- Wi-Fi 联网
- 小智程序运行
- AI 语音交互
- I²S 音频输入输出
- OLED 显示
- RGB 灯效控制
- 舵机及其他外设控制
Mini 版本体积比较小,很适合这种结构空间有限的小型桌面机器人。
INMP441 数字麦克风
负责语音采集。
使用 I²S 接口与 ESP32 通信,是整个语音输入部分的核心模块。
MAX98357A 数字功放
负责音频输出。
通过 I²S 接收 ESP32 的数字音频数据,然后驱动扬声器播放小智的语音。
小型扬声器
扬声器安装在主体结构下方。
一方面可以节省主控区域空间,另一方面也方便声音直接向外传播。
OLED 显示屏
通过 I²C 与 ESP32 通信。
主要显示系统状态、网络信息以及一些简单文字和图标。
WS2812B RGB 环形灯 × 2
安装在机器人左右两侧。
目前主要作为“眼睛”和状态灯使用。
WS2812B 可以单独控制每一颗 LED,因此以后可以制作很多不同的动态灯效。
三、自研 PCB 扩展板
这次项目中我比较想分享的一部分,是中间这块紫色 PCB 扩展板。
它并不是购买的成品扩展板,而是根据这个项目的实际使用需求,我们自己设计并制作的专用扩展板。
从:
原理图设计 → PCB Layout → 打样 → 焊接 → 调试
最开始做这块板的原因也很简单:
适配DF传感器的线序,方便连接DF各种常用传感器。
2. 方便模块更换
很多模块仍然保留接口形式。
如果以后想更换:
- 麦克风
- OLED
- RGB 灯
- 舵机
- 其他传感器
都不需要重新设计整套硬件。
3. 方便教学和实验
因为平时也会接触开源硬件教学,所以在设计的时候也考虑了后续实验和教学使用。
相比把所有东西直接焊死在一起,这种结构更加适合学生观察整个系统的组成。
可以很直观地看到:
主控、输入、输出、显示、灯光和执行机构之间是怎样配合工作的。
4. 预留后续扩展
扩展板并不是只针对现在这一版结构。
后续还可以继续增加一些模块,例如:
- 温湿度传感器
- 光线传感器
- 距离传感器
- 人体感应
- 触摸传感器
- 更多舵机
- 电机驱动
- I²C 设备
- GPIO 外设
这样以后换一个结构,就可以继续把它做成其他类型的小机器人或者 AI 实验平台。
五、结构件设计
这次更新最大的变化,其实就是结构。
之前所有模块基本都是平铺或者临时连接,虽然功能能够运行,但看起来还是一个典型的“开发板实验项目”。
所以这次给它增加了一套金属结构件。
目前的布局大致分成几个区域。
左右两侧
安装两个 WS2812B RGB 环形灯。
主要作为机器人的“眼睛”。
中央区域
安装:
- ESP32 Mini
- 自研扩展板
- OLED
- 麦克风
- 音频模块
这一部分基本就是机器人的核心控制区域。
下方
安装扬声器。
这样既不会挡住屏幕,也能够节省整体空间。
前端
预留执行机构安装区域。
目前安装了一个舵机,后续可以根据不同作品需要,更换成不同机械结构。
六、整体系统组成
目前整个机器人的硬件架构可以简单理解为:
ESP32 Mini
↓
自研 PCB 扩展板
↓
INMP441 数字麦克风
MAX98357A 数字功放 + 扬声器
OLED 显示屏
双 WS2812B RGB 环形灯
微型舵机执行机构
再通过 Wi-Fi 接入 AI 服务。
最终实现:
听得到
INMP441 负责语音输入。
看得见
OLED 和 RGB 灯负责状态显示。
会说话
MAX98357A + 扬声器负责 AI 语音输出。
能联网
ESP32 通过 Wi-Fi 与网络 AI 服务通信。
可以动
舵机负责简单的机械动作。
七、目前这版的一些想法
这次并没有追求一次把所有功能全部做完。
目前主要目标还是先把:
AI语音 + 自研扩展板 + 结构件 + 灯光 + 显示 + 执行机构
这一整套链路跑通。
相比直接购买一个成品 AI 音箱,我觉得这种方式最大的乐趣还是在“折腾”的过程。
可以自己决定:
机器人长什么样;
使用什么主控;
灯光怎么变化;
屏幕显示什么;
增加什么传感器;
最终让它控制什么东西。
尤其是把软件、PCB 和机械结构组合起来以后,就会发现它已经不再只是一个单纯的 ESP32 项目。
它开始慢慢变成一个可以不断迭代的机器人平台。
这次先把目前的版本分享出来,也欢迎大家交流一些新的玩法和改进思路


附件是适配 0.96寸oled屏的代码 可通过flash_download_tool进行烧录测试





