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

一、开源项目介绍

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

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

二、成品效果演示

esp-sparkbot唤醒乐鑫AI

esp-sparkbot-小智AI

esp-sparkbot-小智AI v1.5.2 微信对话版

三、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 文档

分屏效果参考:ESP32S3 分屏神器:轻松实现 USB 多屏扩展-CSDN博客

十一、烧录小智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

esp-sparkbot-小智AI v1.5.2 微信对话版

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

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,红笔接电源,不响则代表正常,响了就要检查一下哪里短路了。

十三、学习交流

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

参考资料

### 部署 Stable Diffusion 的准备工作 为了成功部署 Stable Diffusion,在本地环境中需完成几个关键准备事项。确保安装了 Python 和 Git 工具,因为这些对于获取源码和管理依赖项至关重要。 #### 安装必要的软件包和支持库 建议创建一个新的虚拟环境来隔离项目的依赖关系。这可以通过 Anaconda 或者 venv 实现: ```bash conda create -n sd python=3.9 conda activate sd ``` 或者使用 `venv`: ```bash python -m venv sd-env source sd-env/bin/activate # Unix or macOS sd-env\Scripts\activate # Windows ``` ### 下载预训练模型 Stable Diffusion 要求有预先训练好的模型权重文件以便能够正常工作。可以从官方资源或者其他可信赖的地方获得这些权重文件[^2]。 ### 获取并配置项目代码 接着要做的就是把最新的 Stable Diffusion WebUI 版本拉取下来。在命令行工具里执行如下指令可以实现这一点;这里假设目标路径为桌面下的特定位置[^3]: ```bash git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git ~/Desktop/stable-diffusion-webui cd ~/Desktop/stable-diffusion-webui ``` ### 设置 GPU 支持 (如果适用) 当打算利用 NVIDIA 显卡加速推理速度时,则需要确认 PyTorch 及 CUDA 是否已经正确设置好。下面这段简单的测试脚本可以帮助验证这一情况[^4]: ```python import torch print(f"Torch version: {torch.__version__}") if torch.cuda.is_available(): print("CUDA is available!") else: print("No CUDA detected.") ``` 一旦上述步骤都顺利完成之后,就可以按照具体文档中的指导进一步操作,比如调整参数、启动服务端口等等。整个过程中遇到任何疑问都可以查阅相关资料或社区支持寻求帮助。
评论 18
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

金汐脉动 | PulseTide

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值