
开源协议
:GPL 3.0
创建时间:2025-05-15 00:25:28更新时间:2025-06-20 14:43:32
描述
该设备基于乐鑫ESP32-S3-WROOM-I-N4主控,配置如下:
- **音频模块**:麦克风采用INMP441,功放模块使用MAX98357A,且板载天问ASR-PRO核心板。
- **灯光控制**:可控制WS2812B灯珠、5050RGB灯珠。
- **其他功能组件**:具备红外收发功能,还配有光敏电阻、雷达模组。







一、项目背景与目标
本项目旨在开发一款高度集成的智能控制板,集成语音识别、环境感知、显示控制和智能交互功能。通过优化硬件设计和软件架构,实现以下目标:
- 兼容多种传感器和执行器,支持灵活扩展
- 实现语音控制、红外遥控、环境感知等多元交互方式
- 优化 PCB 布局,解决多层信号干扰问题
- 提供友好的用户界面和便捷的开发接口
二、硬件设计优化
1. 核心硬件选型与资源分配
| 组件 | 型号 | 功能说明 |
|---|---|---|
| 主控芯片 | ESP32-S3-WROOM-1-N4 | 双核处理器,4MB 闪存,支持 WiFi/BLE,更换N16R8可以支持语音唤醒 |
| ASR 模块 | 天问 ASR-PRO | 离线语音识别,支持唤醒词和命令词识别 |
| 麦克风 | INMP441 | 高灵敏度数字麦克风,内置前置放大器 |
| 功放模块 | MAX98357A | 3.2W 单声道 D 类音频放大器,低功耗高效率 |
| 显示模块 | 1.54 寸 TFT(ST7735) | 128×160 分辨率,SPI 接口 |
| 环境传感器 | SHT40 + 光敏电阻 | 高精度温湿度传感器 + 环境光检测 |
| 运动检测 | 安信可 RD-03 / CEM5826-M11 | 毫米波雷达,支持人体存在检测和运动跟踪 |
| 姿态传感器 | MPU-6050 | 6 轴加速度计 + 陀螺仪,用于姿态检测 |
| 灯光控制 | WS2812B + 5050RGB | 智能 RGB 灯珠,支持全彩显示 |
| 红外控制 | 红外收发模块 | 支持家电红外控制和信号学习 |
2. PCB 设计优化
针对前期打板发现的问题,进行了以下改进:
- 修正 INMP441 麦克风座子孔径,确保 2.54mm 排针顺利插入
- 优化 MAX98357A 功放模块布局,调整喇叭接口位置和极性
- 增加 0Ω 电阻跳线选项,支持不同型号雷达模块切换
- 优化 ESP32-S3 烧录接口,确保固件更新便捷
- 增加关键信号测试点,方便调试和故障排查
3. 接口定义标准化
| 功能 | 引脚分配 | 通信协议 | 备注 |
|---|---|---|---|
| TFT 屏幕 | IO42(SCLK)/IO41(MOSI)/IO39(DC)/IO40(RST)/IO38(CS) | SPI | 1.54 寸 ST7789 |
| WS2812B | IO14/ASR_PC4 | 单线协议 | - |
| 红外接收 | ASR_PA2 | - | IRM-3638 |
| 红外发射 | ASR_PA0 | - | IR333-A/XL-2012IRC-940 |
| 雷达模块 | IO17(RX)/IO18(TX)/IO46(OUT) | UART + 数字 IO | 支持 RD-03/CEM5826-M11,OUT可接ASR_PA1 |
| I2C 总线 | IO41(SDA)/IO42(SCL) | I2C | 连接 SHT40、MPU6050、OLED |
| 光敏电阻 | IO9(ADC1_CH8) | 模拟输入 | - |
三、软件仓库
基于虾哥小智面包板代码修改:https://github.com/molun/xiaozhi-esp32
编译时选择:默语小智管家ESP32-S3版
引脚定义:
#ifndef _BOARD_CONFIG_H_
#define _BOARD_CONFIG_H_
#include
#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_4
#define AUDIO_I2S_GPIO_BCLK GPIO_NUM_5
#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
#if CONFIG_OLED_SSD1306_128X32
#define DISPLAY_HEIGHT 32
#elif CONFIG_OLED_SSD1306_128X64
#define DISPLAY_HEIGHT 64
#elif CONFIG_OLED_SH1106_128X64
#define DISPLAY_HEIGHT 64
#define SH1106
#else
#error "未选择 OLED 屏幕类型"
#endif
#define DISPLAY_MIRROR_X true
#define DISPLAY_MIRROR_Y true
// A MCP Test: Control a lamp
#define LAMP_GPIO GPIO_NUM_18
#endif // _BOARD_CONFIG_H_
编译配置:
{
"target": "esp32s3",
"builds": [
{
"name": "MolunSmartHome-ESP32S3",
"sdkconfig_append": [
"CONFIG_ESPTOOLPY_FLASHSIZE_4MB=y",
"CONFIG_PARTITION_TABLE_CUSTOM_FILENAME=\"partitions/v1/4m.csv\"",
"CONFIG_OLED_SSD1306_128X32=y"
]
},
{
"name": "MolunSmartHome-ESP32S3-128x64",
"sdkconfig_append": [
"CONFIG_ESPTOOLPY_FLASHSIZE_4MB=y",
"CONFIG_PARTITION_TABLE_CUSTOM_FILENAME=\"partitions/v1/4m.csv\"",
"CONFIG_OLED_SSD1306_128X64=y"
]
}
]
}
注意,需要关掉语音唤醒和PSRAM。如果使用N16R8模组,按照默认配置编译即可。
注意,需要关掉语音唤醒和PSRAM。如果使用N16R8模组,按照默认配置编译即可。
设计图
未生成预览图,请在编辑器重新保存一次BOM
暂无BOM
克隆工程添加到专辑
0
0
分享
侵权投诉


评论