乐于分享
好东西不私藏

小智官方源码添加4G支持

小智官方源码添加4G支持

小智官方源码添加4G支持

示例代码版本:小智2.1.0

地址:V2.1.0【whble/xiaozhi-esp32 - xiaozhi-esp32 - Gitea: Git with a cup of tea】

V2.1.0官方源码

修改版源码

搭建Vscode开发环境

请自行搭建环境,示例IDF版本5.5.2

修改源码说明

  1. 复制WiFi版本源码,该名称为lichuang-dev-dual,意思为WiFi+4G的支持。 

  2. 修改Kconfig.projbuild,增加dual板子的支持。 在BOARD_TYPE下添加BOARD_TYPE_LICHUANG_DEV_S3_DUAL 

config BOARD_TYPE_LICHUANG_DEV_S3_DUALbool"立创·实战派 ESP32-S3-DUAL" depends on IDF_TARGET_ESP32S3

在USE_DEVICE_AEC中添加BOARD_TYPE_LICHUANG_DEV_S3_DUAL    完成上述两项后保存文件。

  1. 修改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)

修改完成后保存。

  1. 接下来修改lichuang_dev_board.cc文件。  修改成dual的头文件    增加WiFi管理头文件    TAG改成LichuangDevBoard-Dual
#define TAG "LichuangDevBoard-Dual"

板子名称修改成LichuangDevBoardDual  修改Boot按键部分的代码:

voidInitializeButtons(){// 启动或者联网状态下单击BOOT按钮进入wifi配置模式,其他状态单击BOOT按钮切换聊天状态        boot_button_.OnClick([this]() {auto& app = Application::GetInstance();// During startup (before connected), pressing BOOT button enters Wi-Fi config mode without rebootif (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();    }
  1. 修改配置文件config.h,增加4G接口配置。 

  2. 修改config.json,修改名称 

完成后可以开始编译

摄像头配置

V2.1.0 摄像头库已经修改成了espressif__esp_video,需要在SDK中打开配置。 实战派摄像头规格GC0308,格式需要选择“YUV422 320x240 20fps” 

编译配置

在Xiaozhi Assistant中选择板子 

需要实时打断要勾选Enable Device-Side AEC

需要不同语言支持,在Default Language中选择