133| 0
|
[ESP8266/ESP32] ESP32-S3 AI CAM移植小智手把手教程 |
本帖最后由 岑剑伟 于 2025-5-15 16:20 编辑 ESP32-S3 AI CAM移植小智手把手教程 ESP32-S3 AI 智能摄像头模块 专为智能家居和物联网打造。它集成多种硬件,如 OV3660 摄像头、麦克风等。具备强大 AI 处理能力,支持 TensorFlow Lite 等技术,可实现边缘图像与语音识别。能在黑暗环境全天候监控,应用于智能安防、家庭看护等多个场景。本教程通过硬件适配指南 + 移植流程 + 编译方法的完整链条,不仅解决了 “如何在特定板卡上运行小智机器人” 的具体问题,更提供了一套可复用的小智移植构建方法,对推动边缘计算技术的普及、降低智能设备开发成本、激发创新应用具有实际价值。 ![]() 一、硬件资源配置 ESP32-S3 采用 Xtensa® 32 位 LX7 双核处理器,主频高达 240MHz,具备强大的运算能力,可满足多种复杂任务需求,如 AI 运算、图像和语音处理等。内存:内置 512KB SRAM、384KB ROM 存储空间,模组搭配 16MB Flash 和 8MB PSRAM,可存储大量数据和程序,为运行复杂应用提供了充足的内存空间。 1.摄像头组件 ◦传感器:选用 OV3660 传感器,200W 像素,支持可见光和 940nm 红外感光,能适应不同光照环境,在白天和夜晚都可采集图像数据。 ◦镜头参数:可视角度达 160°,焦距 0.95,光圈 2.0,畸变 < 8%,可获取大视角图像,且图像质量较高,为图像识别和监控应用提供清晰图像源。 ◦红外补光灯:由 GPIO47 控制,在弱光或黑暗环境下自动开启,配合红外感光功能,实现夜视监控。 2.音频组件 ◦麦克风:集成 I2S PDM 麦克风,用于采集声音信号,实现语音识别、录音等功能。 ◦功放与喇叭接口:搭载 MAX98357 I2S 功放芯片,通过 MX1.25 - 2P 喇叭接口连接外部喇叭,实现语音播放、语音对话等功能。 3.其他组件 ◦环境光传感器:LTR - 308 环境光传感器(ALS),通过 GPIO8 和 GPIO9 与处理器相连,用于检测环境光强度,获取环境光数据,为自动调节摄像头参数或其他与环境光相关的功能提供依据。 ◦功能按键:设有复位按键(RST)和 BOOT 按键(GPIO0),复位按键用于重启板卡,BOOT 按键在启动过程中用于进入特定的启动模式,方便程序烧录和系统调试。 ◦SD 卡槽:支持插入 SD 卡,用于扩展存储容量,可存储大量图像、视频、音频数据或其他文件。 ◦板载 LED 灯:由 GPIO3 控制,可用于指示板卡工作状态,如烧录状态、运行状态等 。 项目移植之前需要清晰理解板卡硬件组成,引脚配置参数。 音频解码模块
CAM 模块
二、移植小智板卡文件构建 基于 ESP32-S3 AI CAM 板卡核心参数完成小智聊天机器人移植的教程,包括硬件适配、音频驱动、系统配置、编译优化等方面内容。 1.准备工作 (1)在vscode代码编辑器里安装好 ESP-IDF 开发环境,版本需满足小智项目要求(如≥5.3)。 (2)用git工具克隆最新版本的小智源码到本地。(github.com/78/esp32-xiaozhi) 2.硬件适配 ◦参看移植小智必须的硬件引脚参数,用于设置board文件夹里的config文件。如最关键的音频解码芯片及引脚参数。 扬声器模块采用MAX98357A功率放大器,支持PCM/TDM输入,无需外部MCLK信号,具备低EMI、高效能(92%效率)、抗干扰等特性,适配智能音箱等场景。 MAX98357 I2S 功放芯片管脚定义 • LRC(Left/Right Clock):左右声道时钟信号,用于同步左右声道的音频数据传输。 • DIN(Data IN):实际上是音频数据输出引脚,用于输出音频数据。 • BCLK(Bit Clock):位时钟信号,用于同步音频数据的每一位传输。 • GAIN(增益控制):用于调节音频信号的放大倍数,本案例中没作相应的处理。 •MODE 音频芯片的工作模式设置引脚,设置芯片工作模式,本案例中没作相应的处理。 • GND(Ground):接地引脚,用于电路的接地连接。 • Vin:电源输入引脚,工作电压范围是 2.5V 到 5.5V。 模块特性 • 输入电压范围:2.5V 到 5.5V。 • 默认增益:9dB。 • 输出模式:默认输出为左右声道混合输出((L+R)/2)。 • 适用负载:支持 4Ω 到 8Ω 的扬声器,最大输出功率为 3W。 根据产品的音频解码硬件的参数 MAX98357 I2S 功放芯片、I2S PDM麦克风,没有其他辅助解码芯片的参与,因此,采用NoAudioCodecSimplexPdm 方案即可。 解决完了音频解码方案,其他按照套路即可,因为这款摄像头也没有屏幕,提供的扩展引脚也只能支持uart模式,没法外接oled屏幕,因此 较为简单,非常适合练手。 config.h 文件
把所有适配好的板卡内容放入最新版本的小智项目 boards文件夹下面,关键的一步完成了。 ![]() 三、适配重要参数修改 项目main文件夹下CMakeLists.txt文件修改: (1)因为摄像的音频方案是现成的不需要在CMakeLists.txt文件里整太多东西。 # 根据 BOARD_TYPE 配置添加对应的板级文件 处添加: 在dfrobot之前已有产品k10 附近添加:
CONFIG_BOARD_TYPE_DF_ESP32_S3_AI_CAM 这个名字最好经过深思熟虑,不要过后自己都不知道,当然也要让别人好知道。 “df-esp32-s3-ai-cam” 就是我们板卡支持的文件夹名字,也不可以随意。如果想发布 还要经虾哥审核的,还要遵循虾哥要求执行,但不建议去发布,因为我们自己玩就可以了,不要给虾哥添乱,系统已经很大了,加入虾哥自动升级是稍微方便一点,只要自己会编译,主动权还是在自己手里的。 ![]() (2)项目main目录Kconfig.projbuild文件修改: 在choice BOARD_TYPE prompt "Board Type" 之下
这个里的BOARD_TYPE_DF_ESP32_S3_AI_CAM 需要跟上面 CMakeLIists.txt 里 config BOARD_TYPE_DF_ESP32_S3_AI_CAM 名字一致。确保menuconfig里增加“DFRobot ESP32-S3 AI智能摄像头模块”选项。 ![]() 四、 系统配置与编译 •编译环境配置:打开 SDK 配置编辑器(menuconfig),选择 “DFRobot ESP32-S3 AI智能摄像头模块” 板卡选项(若之前配置正确会出现)。根据板卡的 Flash 参数(16MB Flash),配置 Flash 模式(如 QIO)、Flash 采样模式、Flash SPI 速度(如 80MHz )等参数,确保与板卡硬件一致。 编译条件注意事项:
•解决编译问题:编译过程中若遇到问题,且板卡设置失败,需删除项目中的 build 文件夹,重新设置板卡为 ESP32-S3,再执行编译命令。 •合并固件:编译成功后,根据 ESP32-S3 AI CAM 板卡的芯片类型(esp32s3)和 Flash 参数,使用以下命令合并固件(假设各分区文件位置和名称正确): •在已经安装了 esptool库的python环境下运行以下脚本,需要进入到 项目的‘build” 文件夹里操作。
![]() 五、烧录与测试 ◦烧录固件:使用 ESP32-S3 AI CAM 板卡对应的下载工具(如官方推荐的烧录工具),选择正确的 COM 口(如 COMXX ,根据实际连接确定),设置波特率(如 921600),将合并后的固件(merged_firmware.bin)烧录到板卡中。 ◦功能测试:烧录完成后,给板卡上电,测试小智聊天机器人功能。检查麦克风是否能正常采集语音,音频功放是否能正常播放声音,。通过与机器人进行语音对话,测试语音识别、智能对话功能是否正常,如询问常见问题,查看机器人能否正确回应。 ![]() 项目纯净版地址 https://gitee.com/genvex/xiaozhi_df_ai_cam_construt 后续可以在这个版本上添加各种io组件。 纯净版固件可以聊天唱歌,用刷机工具 0x0地址刷入完整固件,即可配网开始聊天。 配网地址:xiaozhi.me ,其他过程不在此赘述。 |
1.46 MB, 下载次数: 2
纯净版固件
© 2013-2025 Comsenz Inc. Powered by Discuz! X3.4 Licensed