官方源码添加4G支持
示例代码版本:小智2.1.0
地址:V2.1.0【whble/xiaozhi-esp32 - xiaozhi-esp32 - Gitea: Git with a cup of tea】
搭建Vscode开发环境
请自行搭建环境,示例IDF版本5.5.2
修改源码说明
- 复制WiFi版本源码,该名称为lichuang-dev-dual,意思为WiFi+4G的支持。

修改Kconfig.projbuild,增加dual板子的支持。
在BOARD_TYPE下添加BOARD_TYPE_LICHUANG_DEV_S3_DUAL
config BOARD_TYPE_LICHUANG_DEV_S3_DUAL bool "立创·实战派 ESP32-S3-DUAL" depends on IDF_TARGET_ESP32S3在USE_DEVICE_AEC中添加BOARD_TYPE_LICHUANG_DEV_S3_DUAL

完成上述两项后保存文件。修改CMakeLists.txt文件,增加编译项。

elseif(CONFIG_BOARD_TYPE_LICHUANG_DEV_S3_DUAL) set(BOARD_TYPE "lichuang-dev-dual") set(BUILTIN_TEXT_FONT font_puhui_basic_20_4) set(BUILTIN_ICON_FONT font_awesome_20_4) set(DEFAULT_EMOJI_COLLECTION twemoji_64)修改完成后保存。
接下来修改lichuang_dev_board.cc文件。
修改成dual的头文件

增加WiFi管理头文件

TAG改成LichuangDevBoard-Dual#define TAG "LichuangDevBoard-Dual"板子名称修改成LichuangDevBoardDual

修改Boot按键部分的代码:void InitializeButtons() { // 启动或者联网状态下单击BOOT按钮进入wifi配置模式,其他状态单击BOOT按钮切换聊天状态 boot_button_.OnClick([this]() { auto& app = Application::GetInstance(); // During startup (before connected), pressing BOOT button enters Wi-Fi config mode without reboot if (GetNetworkType() == NetworkType::WIFI) { if (app.GetDeviceState() == kDeviceStateStarting && !WifiManager::GetInstance().IsConnected()) { auto& wifi_board = static_cast<WifiBoard&>(GetCurrentBoard()); wifi_board.EnterWifiConfigMode(); return; } } app.ToggleChatState(); }); // 四次唤醒切换wifi 4g网络 boot_button_.OnMultipleClick([this]() { auto& app = Application::GetInstance(); if (app.GetDeviceState() == kDeviceStateStarting || app.GetDeviceState() == kDeviceStateIdle || app.GetDeviceState() == kDeviceStateWifiConfiguring) { SwitchNetworkType(); } },4); #if CONFIG_USE_DEVICE_AEC boot_button_.OnDoubleClick([this]() { auto& app = Application::GetInstance(); if (app.GetDeviceState() == kDeviceStateIdle) { app.SetAecMode(app.GetAecMode() == kAecOff ? kAecOnDeviceSide : kAecOff); } }); #endif }屏蔽MCPtool语音切换网络模式的代码

最后修改下板子初始化代码LichuangDevBoardDual() : DualNetworkBoard(ML307_PIN_TX, ML307_PIN_RX, GPIO_NUM_NC, 0), // 0是wifi模式,1是ML307网络,启动后可以通过四击BOOT按钮切换网络 boot_button_(BOOT_BUTTON_GPIO) { InitializeI2c(); InitializeSpi(); InitializeSt7789Display(); InitializeTouch(); InitializeButtons(); InitializeCamera(); // InitializeTools(); GetBacklight()->RestoreBrightness(); }- 修改配置文件config.h,增加4G接口配置。

- 修改config.json,修改名称

完成后可以开始编译
摄像头配置
V2.1.0 摄像头库已经修改成了espressif__esp_video,需要在SDK中打开配置。
实战派摄像头规格GC0308,格式需要选择“YUV422 320x240 20fps”
编译配置
在Xiaozhi Assistant中选择板子
需要实时打断要勾选Enable Device-Side AEC
需要不同语言支持,在Default Language中选择
浏览
95
点赞
0