项目介绍
利用ESP32-S2制作一个网络摄像头模块,实现图像捕捉功能并发送到树莓派或PC,再由PC进行图像识别。与此同时,利用语音识别功能实现语音输入,并将语音输入的内容与图像识别的结果整合后发送给ChatGPT,最后通过TTS输出ChatGPT的返回信息,让ChatGPT拥有视觉能力和语音对话能力。
该项目的硬件部分主要是完成ESP32-S2无线视觉模块的设计,目标设计出一款自带摄像头和显示屏并兼具一定拓展能力的ESP32-S2开发板。
Scheme-it工具介绍
Scheme-it 是全球可用的云端式工具,可设计、分享电子电路绘图和线路图。最新发布的新功能包含:
1、Ultra Librarian 符号整合:此功能纳入了约 200 万个 Ultra Librarian 精细、美观的符号,以及 Digi-Key 产品目录的影像。
2、Symbol Editor 2.0:使用者采用此自订符号编辑器,即可创造目前 Scheme-it 没有的新符号,让您设计不受限。
3、数学标示:由 LaTeX 技术支援,使用者能以适当格式嵌入数学方程式,并且直接在线路图上计算。
Digi-Key Electronics 的 Scheme-it 工具目前提供 Ultra Librarian 符号整合、自订符号编辑器,以及在线路图中加入数学方程式的功能。Scheme-it 工具含有完整的电子符号库,并整合 Digi-Key 产品目录,因此可进行各种电路设计。使用者可以在 Scheme-it 中建立物料清单 (BOM),并购买用于专案的零件,也可以分享专案,汇出 KiCAD、.PNG、.SVG、.PDF 格式的档案。
平台中建立的线路图可依您的意愿公开分享,并且在 Scheme-it 首页可搜寻,让您能分享想法及进一步创新。Digi-Key 的 TechForum 也为 Scheme-it 使用者提供专属空间,在此针对 Scheme-it 提问、评论、分享想法。
方案框图
该方案以树莓派或PC作为核心,使用ESP32-S2进行视觉信息输入。由于图像是通过WIFI发送至核心,并非通过USB或SPI等有线的方式,因此在该项目中视觉模块可以被部署在任何位置。
若使用树莓派作为核心,那么还需要为其添加音频电路。音频的输入输出均使用I2S接口,通过将现成的I2S DAC模块和I2S MIC模块接入,可以很方便的实现语音输入输出功能。
该方案的框图如下:
当然也可以直接在Scheme-it上查看,链接如下:
https://www.digikey.cn/schemeit/project/face-ad30344251e84456865b248c322d2ae5
原理图
先是串口通讯部分,通过一个CH343P来实现串口通讯,主要用作固件烧录和调试。
下面是供电部分,ESP32-S2需要的3.3V由一颗LDO进行供电。由于使用了摄像头,需要用到1.3V/1.2V和2.8V两个电压,因此再增加一块双LDO芯片来给摄像头供电。
下面是ESP32-S2模块的引脚引出,除了EN需要增加RC延迟电路保证开机时序外,没有其他特别需要注意的。EN的延迟主要是相对于BOOT引脚而言,因此若BOOT引脚上接有电容,EN引脚的电容需要比BOOT引脚更大。而其他straping引脚已在模组内完成了上下拉,不需要再做处理。
显示屏使用了1.14寸的ST7789,这里使用SPI1进行连接,因此可以把SPI0空出来用作拓展用途。同时由于BOOT引脚自带上拉电阻,因此利用BOOT作为显示屏的背光开关,可在节约引脚的同时实现默认关闭显示屏。
摄像头选用的是较为通用的OV2640,引脚选用上没有什么需要特别注意的地方,可以使用ESP32-S2上任意可用的双向IO口。由于OV2640内部有区分模拟回路和数字回路,因此模拟地和数字地要在外部单点相接。
在这里我还增加了一颗大功率LED,作为补光灯使用。大功率LED直接使用5V进行供电。因为功率较大,无法用普通的限流电阻来进行限流,因此这里用了一个专门的LED恒流驱动芯片,固定限流350mA。控制可以使用单片机直接控制,也可以利用OV2640的闪光灯引脚来进行控制。
最后把剩余一些没有用到的端口引出,并添加USB接口。注意这个USB是ESP32-S2的自带USB,与一开始的串口USB并不相同。这个USB接口不但可以用来烧写固件,还可以用作USB Device或USB Host使用。
由于考虑到上位机可能会出于功耗的考虑使用树莓派,而不使用PC,因此这里又设计了一块树莓派的声音模块,使用I2S接口,功放模块用的是MAX98357模组,麦克风用的是INMP441模组,还引出了两个接口,可以尝试同时控制机械臂,实现真正完整功能的“贾维斯助手”。
元器件介绍
ESP32-S2
ESP32-S2 是一款高度集成、高性价比、低功耗、主打安全的单核 Wi-Fi SoC,具备强大的功能和丰富的 IO 接口。
ESP32-S2 集成了丰富的外围设备,有 43 个可编程 GPIO,可以灵活配置为 USB OTG、LCD 接口、摄像头接口、SPI、I2S、UART、ADC、DAC 等常用功能。ESP32-S2 具有 LCD 接口和 14 个可配置的电容触摸 GPIO,可为基于触摸屏和触摸板的设备提供良好的 HMI 解决方案。
ESP32-S2 的工作温度是 -40 °C~105 °C,适用于各类工业、消费和照明应用。
ESP32-S2-MINI-2 和 ESP32-S2-MINI-2U 是通用型 Wi-Fi MCU 模组,功能强大,具有丰富的外设接口,可用于可穿戴电子设备、智能家居等场景。
心得体会
这个项目是我做过的较为复杂的项目之一。其中硬件部分相对于常规开发板的设计更为复杂,由于有摄像头的关系,若想实现紧凑设计则走线会比较困难;而软件部分,将语音识别,ChatGPT,OpenCV,TTS整合在一起协同工作,对我来说也有一定的挑战性。我会尽可能完成阶段二,相信完成这个项目一定会对自身有莫大的提升。