当前位置: 首页 > article >正文

ESP-SPARKBOT AI 智能机器人:v1.2 全流程复刻指南

一、开源项目介绍

项目地址:ESP-SparkBot - 立创开源硬件平台

ESP-SparkBot 是⼀款基于 ESP32-S3,集成语⾳交互、图像识别、遥控操作和多媒体功能于⼀体的智能设备。它不仅可以通过语⾳助⼿实现⼤模型对话、天⽓查询、⾳乐播放等互动,还使⽤⼩度⼿机 APP 完成蓝牙配⽹、⾳⾊切换、⾳乐播放及其他智能服务。同时,ESP-SparkBot 内置加速度传感器,⽀持摇⾊⼦和 2048 游戏等娱乐交互功能。硬件⽅⾯,其磁吸式设计⽀持模块扩展,可轻松转换为遥控⼩⻋,实现摄像头实时传输⼿机操控。此外,设备⽀持本地 AI 处理,可以运⾏⼈脸识别和动作检测功能。还可以通过投屏模块实现⾼清视频播放和游戏运⾏,展⽰强⼤的性能和多功能性。

二、成品效果演示

esp-sparkbot唤醒乐鑫AI

esp-sparkbot-小智AI

三、PCB 板子下单

打开这个网址 ESP-SparkBot - 立创开源硬件平台,点击“打开设计图”,

只需要打印三个板子:选中一个板子,点击“下单”->“PCB下单”,注意每个板子都需要单独下单

需要注意的是板子厚度选 1.0,

如果是 Touch_FPC,则选中软板并且需要补强,

四、BOM 下单

直接点击链接进入网页加购物流,大部分物流在嘉立创购买,少数在某宝某猫,快递费比较贵。

五、3D 打印外壳

从官网下载 STL 3D 打印文件,可以找某宝打印,我这里是找的嘉立创3D打印,材料树脂 9600,

六、焊接工具

  • 水口钳:剪拼板的PCB板使用
  • PCB夹:固定使用
  • 电烙铁套装:焊电路板
  • 热风枪:焊电路板
  • 锡浆:焊电路板(建议买带针筒的锡浆,少量多次使用,避免锡浆快速氧化过期)
  • 工作台隔热垫
  • 镊子+贴片元件盒:收纳电子元器件
  • 飞线:挑软的买
  • 个人防护:KN95口罩、护目镜(在通风环境下作业,锡烟有害健康)
  • 补充:万用表、type-c充电线、助焊膏/助焊剂、洗板水、吸锡条、B-700胶水

七、整合资料包

我把所有资料都整合一个压缩包了,有需要的朋友可以私信我,也可以点这里直接下载。

八、官方固件仓库

git clone https://gitee.com/esp-friends/esp_sparkbot.git

刷固件之前,注意看 README 文档说明。

九、基础固件编译(命令行方式)

这里我使用的 ESP-IDF 版本是 5.4.0,官方使用的版本是 5.2.3,参考官方文档 固件烧录指南

1、设置芯片

idf.py set-target esp32s3

2、配置 menuconfig

idf.py menuconfig

输入指令,回车,进入配置页面, 

按下 shift 旁边的 “/” 按键进入搜索,输入 bmi,

可以看到目前使用的是 BMI220 姿态传感器芯片,当前我使用的是 BMI270 芯片,所以这里需要按一下方向键↓,然后回车,

设置完毕,按 esc 回退到主菜单,接下来设置三个 token 和配网,选中 Example Configuration,回车进入配置页面,

第一个配置百度语音识别 token,第二个配置百度大模型 token,第三个配置天气 token,第四第五配置联网的 wifi 和密码,

  • BAIDU_AUDIO_ACCESS_TOKEN:百度音频服务的 ACCESS_TOKEN,通过百度控制台中的语音技术的 API Key 和 Secret Key 申请,详情参考:获取 access_token
  • BAIDU_LLM_ACCESS_TOKEN:大语言模型服务的 ACCESS_TOKEN,通过百度控制台中的大语言模型应用的 API Key 和 Secret Key 申请,详情参考:获取 access_token。 注意:大语言模型和语音服务使用的是两种不同的 access_token
  • QWEATHER_REQUEST_KEY:和风天气的 request key, 用于在桌面钟界面显示天气和温度信息
  • EXAMPLE_WIFI_SSID:连接 Wi-Fi 的 SSID
  • EXAMPLE_WIFI_PASSWORD:连接 Wi-Fi 的密码

可以通过 idf.py menuconfig 手动配置上方参数,也可以直接在 Kconfig.projbuild 中修改 default 值 注意:如果 sdkconfig 文件已经生成,则 Kconfig.projbuild 不再生效。可以删除 sdkconfig 或运行 idf.py menuconfig 指令修改。

输入真正的 token 之后回车保存,直到所有配置都配置完毕,一直按 esc 键返回,最后按 y 键确认配置,

注意:百度的 token 有效期是 30 天,过期后需要重新获取 token

3、编译

idf.py build

4、一键烧录

要先确认设备的串口号,可以用这个命令,

ls /dev/tty*

此时,未给设备上电,因此还没串口号,接下来按住 boot 键再接电源,

刷出串口号 /dev/ttyACM0 就是设备的串口号,为了避免权限问题,先赋权,

sudo chmod 777 /dev/ttyACM0

最后输入烧录指令,

idf.py -p /dev/ttyACM0 flash monitor 

从控制台日志中可以看到,烧录完成,并且网络和 api 调用都正常。如果编译完成后显示“waiting for download...” 则需要重启设备。至此,烧录完成,可以愉快玩耍了!

esp-sparkbot唤醒乐鑫AI

十、USB 固件编译(VS Code方式)

USB 扩展屏示例可以将 ESP-SparkBot 开发板作为一块 windows 的副屏,支持以下功能:

  • 支持 480*480@60FPS 的屏幕刷新速率
  • 支持音频的输入和输出

注意:因为 S3 使用 USB FS,所以带宽资源相对优先,若想提升体验可以更换为支持 USB HS 的 [ESP32-P4]

烧录完成后,需要重新连接设备,然后在声音输出设置看到新输出 Analog Output,选中即可,

esp-sparkbot-音频输出

很遗憾,现在固件只支持 Windows10 及 Windows11,在 Deepin 下无法测试分屏效果。

USB 拓展屏方案可以参照官方文档,USB Device 方案 - - — ESP-IoT-Solution latest 文档

十一、烧录小智AI固件

参考 手把手教你用ESP32-S3打造智能聊天机器人-立创实战派_esp32小智-CSDN博客

Step1、下载固件包

# 下载地址
https://github.com/78/xiaozhi-esp32/releases

# v1.5.0
https://github.com/78/xiaozhi-esp32/releases/download/v1.5.0/v1.5.0_esp-sparkbot.zip

下载完之后,解压,得到一个 bin 文件,这就是烧录所需要的固件包了,

Step2、在线烧录固件

# 在线烧录网站
https://espressif.github.io/esp-launchpad/

打开这个网址,然后用 USB 连接开发板到电脑,点击 “Connect” 菜单,在弹窗中选择开发板的串口,这样就可以连接上开发板。

接着点击菜单“DIY”,选择刚下载的固件文件路径,填写烧录地址为 0x0,点击“Program”开始烧录。

烧录完成,需要重启设备,

显示“waiting for download”,拔掉电源重新上电即可。进入配网模式后,设置 wifi 的账号密码,在后台配置小智 AI 就可以使用了。

esp-sparkbot-小智AI

十二、常见问题与解决方案

1、编译报错

main/app/app_audio_record.c 文件编译报错,

//ESP_LOGI(TAG, LOG_BOLD(LOG_COLOR_GREEN) "Wakeword detected");
ESP_LOGI(TAG, "Wakeword detected");

只需改写一下日志输出代码即可,官方 5.2.3 版本不会报错,这里报错的是 5.4.0 版本。 

2、屏幕只亮背光

修改代码,spi mode 从 2 修改为 0,代码路径在 components/esp_sparkbot_bsp/esp_sparkbot_bsp.c,

const esp_lcd_panel_io_spi_config_t io_config = {
        .dc_gpio_num = BSP_LCD_DC,
        .cs_gpio_num = BSP_LCD_SPI_CS,
        .pclk_hz = BSP_LCD_PIXEL_CLOCK_HZ,
        .lcd_cmd_bits = LCD_CMD_BITS,
        .lcd_param_bits = LCD_PARAM_BITS,
        .spi_mode = 0,
        .trans_queue_depth = 10,
    };

重新编译烧录之后,如果还是只亮背光,则检查电容电阻与屏幕的硬件焊接,

3、摄像头方向错误

修改宏定义文件 components/esp_sparkbot_bsp/include/bsp/esp_sparkbot_bsp.h ,

#define BSP_CAMERA_VFLIP        0
#define BSP_CAMERA_HMIRROR      1

将翻转宏定义 BSP_CAMERA_VFLIP 的值从 1 改为 0 ,将镜像宏定义 BSP_CAMERA_HMIRROR 的值从 0 改为 1 ,然后重新编译烧录固件。

4、没有声音输出

检查NS4150B元件是否焊接成功,并且检查喇叭是否焊接成功,喇叭是否损坏?

5、没有识别声音

检测麦克风、ES8311芯片是否焊接成功。

6、没有识别串口

注意,首次上电需要检查 Type C 是否短路,并且先按 boot 键再接 USB 上电,若未能识别出串口,则检查 PCB 板子电路、ESP32S3 芯片是否焊接成功。

7、Type C 上电失败

这种情况通常表现为 LED 灯用万用表测的时候是亮灯,但是 Type C 上电后 LED 灯不亮,此时需要检查 Type C 与元器件的方向是否正确,

8、bmi270 初始化失败

检查姿态传感器芯片 bmi270 的焊接,建议先焊接芯片的引脚,再焊接 PCB 引脚,然后使用助焊膏固定芯片,最后热风枪吹,焊接完成后别忘了用洗板水清理助焊膏。

9、温馨提示

  • 谨慎使用洗板水,不要把板子浸透,否则板子内部可能会短路。
  • PCB 上标注 NC 的元器件代表着Normal Close 常闭,请勿焊接。
  • USB 投屏功能只能在 Windows 系统下支持,其他系统未支持。
  • 百度 TOKEN 有效期只有 30 天,过期了需要手动刷新。
  • 如果BOM材料断货了,替代材料寻找方法:类型->型号->规格,检查下用途跟PCB电路图对得上。
  • 头部两个板子插接需注意方向,接反极大可能烧板!!!
  • 打板时板厚选择 1mm。
  • 板子涉及拼板,打板回来需要自己剪开并打磨。
  • 电池需备注接 1.25 红黑插头。
  • 注意使用的芯片是 ESP32-S3-WROOM-1-N16R8。
  • 首次上电前先用万用表测试一下 TypeC 元件是否存在短路。
  • 注意屏幕焊接,容易折断。
  • 注意安装电池时镊子只捅一边,同时捅两边的话会短路。
  • 注意在通风条件下焊接,电烙铁跟热风枪都很高温,需小心使用工具。
  • 电容电阻较多,注意不要搞混,同时有些元器件有方向要求,注意方向焊接。
  • 元器件较小,建议在白天采光好的环境下焊接,可加购一个放大镜焊接。
  • B站有保姆级焊接教程,可以先学习一下大体焊接流程与技巧。
  • 小白建议补充锡浆/锡膏/加热台/回流炉/回流曲线/助焊剂/助焊膏等焊接知识。
  • 万用表检查短路,通常是蜂鸣档,黑笔接GND,红笔接电源,不响则代表正常,响了就要检查一下哪里短路了。

十三、学习交流

如果你在复刻途中遇到困难,点击下方名片,或者私信我,一起学习交流。

参考资料

  • ESP-SparkBot - 立创开源硬件平台
  • esp_sparkbot: 本仓库用于存放 ESP_SparkBot 的相关例程和 3D 建模。ESP_SparkBot 是一款基于 ESP32-S3的大模型 AI 桌面机器人,开发环境为 ESP-IDF,详情请参考 README。
  • Docs

http://www.kler.cn/a/600552.html

相关文章:

  • 网络基础-路由器和交换机工作配置
  • 【测试报告】论坛系统
  • 新书速览|OpenCV计算机视觉开发实践:基于Python
  • 跨境选品利器:基于速卖通API实时监控爆款商品价格与库存波动
  • 3.25-2request库
  • MATLAB 2024b深度学习,图神经网络(GNN)
  • 正弦函数的连续傅里叶变换正弦序列的DTFT
  • HarmonyOS 之 @Require 装饰器自学指南
  • DeepSeek-V3-0324 模型发布:开源 AI 性能再攀高峰,推理与编码能力逼近顶级闭源模型
  • python康复日记-request库的使用,爬虫自动化测试
  • ToolsSet之:快捷键和速查表
  • VS Code连接远程服务遇到的问题
  • 蓝之洋科技以AI智能制造引领变革,推动移动电源产业迈向高端智能化!
  • 三分钟读懂微服务
  • 蓝桥杯-符号变反操作(差分)
  • Weblogic
  • shopify跨境电商行业前景与规模
  • 【Linux-驱动开发-pinctrl子系统】
  • SpringBoot-配置文件中敏感信息的加密保姆级教程
  • 高度电路中时序设计之二