打印
[活动]

【MolunSmartHome】试图教会你编译自己的小智固件

[复制链接]
1441|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
molun|  楼主 | 2025-2-15 17:55 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 molun 于 2025-2-15 17:59 编辑

【MolunSmartHome】定制属于自己的小智固件
#申请原创#@21小跑堂


最近各类小智AI对话机器人DIY大火,自己也手痒,做了几个版本。
总想着大而全,因此参照多个项目最终的产物就是硬件接线配置不同,不能直接用别人的固件,需要进行定制编译。
【ESP32S3 4M Flash模组成功运行虾哥小智】 https://www.bilibili.com/video/BV1JeAweuEn5/?share_source=copy_web&vd_source=92e5311a7d6802b0f8947ec6908a6883



源码基于虾哥https://github.com/78/xiaozhi-esp32.git

直接下载或者安装git客户端后命令拉取源码
gh repo clone 78/xiaozhi-esp32git clone https://github.com/78/xiaozhi-esp32.git
选择一种即可


在VSCODE中打开文件夹,这里默认已经安装好乐鑫IDF





连接好开发板后,依次选择端口号,设置目标芯片,烧录方式





根据硬件情况选择,如果是通过串口芯片连接的ESP32S3就选择UART,否则选择JTAG

选择SDK配置编辑器,对应命令
idf.py menuconfig



根据自己开发板情况进行以下修改

修改Flash size,因为我用的模组是ESP32-S3-WROOM-1-N4,即4M版本,没有PSRAM。

修改Custom partition CSV file分区表
partitions.csv 修改为 partitions_4M.csv



自己部署后台的可以修改这里,看到已有开源项目。

这里选择对应的开发板,如果是自己DIY的,就选择默认面包板wifi版本或者4G版本即可


貌似没有PSRAM,就不能语音唤醒,关掉即可。

切换回源码,进行IO口配置,如果按照虾哥推荐的接线方式就不需要动这里。

#ifndef _BOARD_CONFIG_H_
#define _BOARD_CONFIG_H_

#include <driver/gpio.h>

#define AUDIO_INPUT_SAMPLE_RATE  16000
#define AUDIO_OUTPUT_SAMPLE_RATE 24000

// 如果使用 Duplex I2S 模式,请注释下面一行
#define AUDIO_I2S_METHOD_SIMPLEX

#ifdef AUDIO_I2S_METHOD_SIMPLEX

#define AUDIO_I2S_MIC_GPIO_WS   GPIO_NUM_5
#define AUDIO_I2S_MIC_GPIO_SCK  GPIO_NUM_4
#define AUDIO_I2S_MIC_GPIO_DIN  GPIO_NUM_6
#define AUDIO_I2S_SPK_GPIO_DOUT GPIO_NUM_7
#define AUDIO_I2S_SPK_GPIO_BCLK GPIO_NUM_15
#define AUDIO_I2S_SPK_GPIO_LRCK GPIO_NUM_16

#else

#define AUDIO_I2S_GPIO_WS GPIO_NUM_5
#define AUDIO_I2S_GPIO_BCLK GPIO_NUM_4
#define AUDIO_I2S_GPIO_DIN  GPIO_NUM_6
#define AUDIO_I2S_GPIO_DOUT GPIO_NUM_7

#endif


#define BUILTIN_LED_GPIO        GPIO_NUM_14
#define BOOT_BUTTON_GPIO        GPIO_NUM_0
#define TOUCH_BUTTON_GPIO       GPIO_NUM_21
#define VOLUME_UP_BUTTON_GPIO   GPIO_NUM_NC
#define VOLUME_DOWN_BUTTON_GPIO GPIO_NUM_NC

#define DISPLAY_SDA_PIN GPIO_NUM_41
#define DISPLAY_SCL_PIN GPIO_NUM_42
#define DISPLAY_WIDTH   128
#define DISPLAY_HEIGHT  64
#define DISPLAY_MIRROR_X true
#define DISPLAY_MIRROR_Y true

#endif // _BOARD_CONFIG_H_

以上是我的项目配置

这里暂且不关闭试试,上次关闭编译后使用正常。

这里选择唤醒词,乐鑫官方提供了一些,默认你好小智,还有诸如小爱同学、Hi乐鑫等,当然也可以付费定制优化自己的唤醒词。

“白**”模组,实际上就是别的厂商优化唤醒词语料!

模组“白**”地址在这里,可别说我吃独食。别忘记填写邀*码:RJBGBB




继续往下翻找,或者搜索PSRAM,关闭PSRAM,如果你采用的是带有PSRAM的模组如N8R2之类的,可能需要调整对应的通道


我这里选择关闭PSRAM


修改完毕之后保存生效,点击构建烧录

耐心等待ing




烧录成功

至此,可以用手机连接模组热点进行配网。我这里二次烧录后尽然不需要配网,直接接入了。
首次烧录后,配网完成会播报验证码,用于小智后台绑定。

https://xiaozhi.me/console/devices


可以设置备注名称,方便区分不同的设备。

进行智能体配置
搞忘记了,没有PSRAM,前面编译设置唤醒词好像没啥卵用。

保存后重启设备,开始体验吧!

<iframe src="//player.bilibili.com/player.html?isOutside=true&aid=114006534655969&bvid=BV1JeAweuEn5&cid=28402123126&p=1" scrolling="no" border="0" frameborder="no" framespacing="0" allowfullscreen="true"></iframe>


使用特权

评论回复

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

14

主题

92

帖子

1

粉丝