本帖最后由 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>
|