试图教会你虾哥小智AI源码编译固件
#虾哥# #小智# #固件编译# #DIY设计#
近期虾哥的小智开源项目大受欢迎,你是否定制了自己的硬件而不知道如何编译固件?跟我来编译属于自己的小智固件!
源码基于虾哥https://github.com/78/xiaozhi-esp32.git
直接下载或者安装git客户端后命令拉取源码
gh repo clone 78/xiaozhi-esp32
git clone https://github.com/78/xiaozhi-esp32.git
选择一种即可
在VSCODE中打开文件夹,这里默认已经安装好乐鑫IDF
连接好开发板后,依次选择端口号,设置目标芯片,烧录方式
根据硬件情况选择,如果是通过串口芯片连接的ESP32S3就选择UART,否则选择JTAG
选择SDK配置编辑器,对应命令 idf.py menuconfig 我们这里全程不需要命令行操作,UI界面点选即可
根据自己开发板情况进行以下修改
修改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 [removed]
#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 32
#define DISPLAY_MIRROR_X true
#define DISPLAY_MIRROR_Y true
#endif // _BOARD_CONFIG_H_
以上是我的项目配置
#ifndef _BOARD_CONFIG_H_
#define _BOARD_CONFIG_H_
#include [removed]
#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 32
#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
可以设置备注名称,方便区分不同的设备
进行智能体配置
有没有大佬能详细介绍介绍ESP-32系列模组驱动各类屏幕,屏幕各引脚与模组GPIO连接有没有什么讲究,如何结合数据手册确定?看了很多案例,五花八门,终究没有知其所以然!求赐教! #ESP32# 有没有大佬能详细介绍介绍ESP-32系列模组驱动各类屏幕,屏幕各引脚与模组GPIO连接有没有什么讲究,如何结合数据手册确定?看了很多案例,五花八门,终究没有知其所以然!求赐教!