# AICar_ESP32 **Repository Path**: As-null/AICar_ESP32 ## Basic Information - **Project Name**: AICar_ESP32 - **Description**: AICar ESP32 AI交互控制部分 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-04-02 - **Last Updated**: 2025-06-02 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # AICar_ESP32 数据控制中心 ## 项目概述 AICar_ESP32 是基于大语言模型 Function Call 技术的智能小车控制系统的数据控制中心部分。该部分使用 ESP32-S3 作为主控芯片,负责获取云端大模型数据、采集本地音频数据以及处理语音交互,是整个小车系统的"大脑"和网络通信枢纽。 ![AICar硬件组成图](docs/images/小车外观1.jpg) ![AICar实物展示图](docs/images/底板.jpg) ![AICar实物展示图](docs/images/esp32.jpg) ## 硬件组成 - **主控芯片**:ESP32-S3-N16R8(双核 Xtensa LX7 处理器,16MB 闪存和 8MB PSRAM) - **语音交互模块**:INMP441 麦克风(音频输入)和 MAX98357 音频放大器(音频输出) - **通信接口**:UART(与 STM32 通信)、WiFi(与云服务器通信) - **指示灯**:WS2812 RGB 灯珠(状态指示) ## 核心功能 1. **语音唤醒与录音**: - 监听唤醒词"小明同学" - 通过 I2S 接口采集麦克风音频数据 - 实时流式传输音频数据到云端服务器 2. **网络通信**: - 通过 WiFi 连接到互联网 - 使用 WebSocket 协议与云端服务器建立双向实时通信 - 发送音频数据,接收 TTS 和 LLM 处理结果 3. **控制指令处理**: - 解析来自大语言模型的 JSON 格式指令 - 通过 UART 将结构化的动作序列传输给 STM32 执行控制中心 - 控制 WS2812 灯珠显示当前系统状态 4. **音频播放**: - 接收云端 TTS 合成的音频流 - 通过 I2S 接口驱动扬声器播放语音回复 ## 软件架构 - **开发环境**:基于 Arduino 框架,使用 PlatformIO 作为开发平台 - **运行模式**:基于 FreeRTOS 的多任务并行运行 - **主要任务**: 1. **AI 处理任务**(最高优先级):负责语音唤醒、录音采集和与云端交互 2. **串口监听任务**:负责将 LLM 结果通过 UART 发送给 STM32 3. **WS2812 灯带任务**:根据当前状态控制灯光效果 ## 工作流程 1. 系统启动后先配置 WiFi 连接和初始化 WebSocket 客户端与 UART 通信 2. 进入多任务并行运行模式,同时执行三个任务 3. AI 任务持续监听唤醒词,用户说出唤醒词后进入录音状态 4. 录音数据实时通过 WebSocket 发送到云端服务器处理 5. 接收云端返回的 TTS 音频流并播放,同时接收 LLM 生成的 JSON 格式控制命令 6. 将控制命令通过 UART 发送给 STM32 执行控制中心 7. 完成动作执行后返回初始状态,继续监听唤醒词 ## 技术特点 1. **实时性**:采用流式传输技术,实现实时语音交互 2. **模块化设计**:各功能模块独立,易于维护和扩展 3. **多任务并行**:利用 FreeRTOS 实现高效的任务调度 4. **双向通信**:与云端服务器和 STM32 执行控制中心保持稳定通信 ## 系统提示词设计 数据控制中心将用户语音转为文本后,通过精心设计的系统提示词,让大语言模型生成标准化的 JSON 格式输出,主要包括: - **角色定义提示词**:定义小车的身份和角色特性 - **函数映射提示词**:明确自然语言与机器人功能间的对应关系 - **输出格式提示词**:规定模型输出的 JSON 格式和结构 - **逻辑补充提示词**:确保动作序列逻辑严谨且符合实际运行情况 - **学习示例提示词**:通过示例帮助模型更好理解预期输出 ## 使用说明 1. 将 ESP32 与麦克风、扬声器和其他模块按设计连接 2. 在配置文件中设置 WiFi 参数和服务器地址 3. 编译并上传程序到 ESP32-S3 开发板 4. 系统启动后,通过"小明同学"唤醒小车 5. 通过自然语言对话控制小车行动 ## 未来展望 1. 将 AI 能力本地化部署,减少网络依赖,提高响应速度 2. 整合更多传感器和模态感知能力,增强系统对环境的理解 3. 优化模型响应速度和准确性,提升用户交互体验