前言
新一年的电子工程师DIY活动开启了,我又来见证各位大佬发挥啦!感谢面包板社区提供的技术交流平台
本项目非首次发布于互联网,目前开源地址:
像素时钟项目开源地址:https://gitee.com/laoguaige/esp32-s3-r8-n8-pixel-clock
一、完整体展示
二、硬件设计
2.1. 整体原理图
2.2. 电源部分
第一版时,使用 FM5324G 作为控制。它是一个集成了锂电池充电管理,电池5V升压输出,电池电量判断和 LED 电量指示的集成电源管理 IC。
但是发现使用一个800mAh的电池,开个10分钟就没电了,直接舍弃电源管理部分,直接通过TYPE-C接口进行供电。
当前版:
首先,因为语音模块需要有一个下载设备,这里直接将TYPE-C接口的数据接口接到了一个CH340N(图中的U9,立创商城编号C2977777)的器件上。接下来对各个器件进行说明。
- R56和R57是USB协议上要求的,必须是5.1K,涉及到PD诱骗电压输出,具体原因自行百度。
- D8和D7是ESD保护器件,防止静电的,防止静电损坏后级设备,也可以不用这些器件。
- VBUS通过一个短接符号连接到了5V,说明这个TYPE-C输入的是5V,是我的个人习惯,通常可以直接在USB处标记5V。
- U9就是之前说的CH340N,看数据手册,是一个将USB 转串口的芯片,而我们的语音识别模块就是通过串口下载。
- C26和C27,首先是C26,在CH340N的数据手册中指出:当CH340N的电压输入为5V时,必须在V3引脚处外接一个100nf的电容;VCC处尽量加一个100NF的电容。
- R27和D1,根据CH340N的厂家说明,为了防止与CH340N通信的设备,通过RXD和TXD引脚将电压反充给CH340,建议在RXD引脚上接入一个限流电阻,TXD上接一个反向二极管,防止电流电压倒灌。
- D2也是一个ESD器件,防止类似雷击,静电等导致的瞬间高压损坏设备,加入ESD器件后,可以有效防止瞬间的高压将设备烧毁。
总结:就是一个通过USB供电的同时,还可以通过USB给语音模块下载语音识别的固件
2.3. 主控部分因为该项目使用到网络的地方很多,优先选择生态最好的乐鑫ESP32。正好我还有ESP32的开发板,具体的型号就是使用立创开发板的立创·ESP32S3R8N8开发板。
没啥好说的,就是给开发板供电5V就好,开发板上有LDO,输入5V后开发板会输出3V3。这里需要注意,我就是BOT引脚用来接了按键,方便在调试出现故障时,也可以通过进入升级模式,擦除内存。
2.4. RTC时钟部分
使用常见的一个RTC时钟模块DS1302。特点如下:
DS1302需要外部接一个32.768KHz的晶振作为时钟,就是图中的X1器件。而晶振为了更加的稳定精确,需要在晶振的输入输出加上负载电容,根据那个晶振的手册说明,加了12pf的负载电容,就是图中的C8C9。VCC1是备用电池的电源输入口,如果想要在设备断电的情况下,DS1302还能够跑时,那么必须接入这个B1电池座,这个电池座是接的纽扣电池。C7单纯是滤波用。DS1302的其他引脚就是控制引脚了,将其接到开发板引脚上,方便开发板控制。
2.5. 温湿度采集部分
又是使用常见的一个温湿度传感器DHT11。特点如下:
原理图设计
DHT11在数据引脚DATA上,必须加一个上拉电阻,让DHT11在空闲时保持高电平。根据它的数据手册,这个上拉电阻就选择了4.7K的R12。然后DHT11是支持3.3V~5V的电压输入的,这里因为开发板是3V3的GPIO电压,所以为了通信稳定,给DHT11的数据引脚DATA的也保持3.3V,给DHT11的输入电压为3.3V。
2.6. WS2812彩灯矩阵部分
这里购买的是淘宝上卖 36元 的 32 * 8 像素的彩灯矩阵:WS2812B全彩软像素屏8X8 8X32 16X16幻彩5V显示可编程像素软屏
原理图设计:
WS2812是一个单总线的设备,每一个灯珠里面都带了驱动电路,可以同时控制很多个灯,但是为了以防万一,在这个WS2812彩灯矩阵的电源输入口VCC处,加了一个1000UF的电容,防止彩灯矩阵亮的瞬间电压电流不足,加了电容之后,如果出现电压电流不足的情况下,就可以从这个大电容取电。
2.7. 音频采集部分
关于模拟信号类我不太了解,这里是参考的一个音频采集模块的电路:MAX4466音频采集模块,感兴趣的朋友直接上淘宝搜索就好。
原理图设计:
做出来的实际效果好像不是很好,但是勉强能够使用...
2.8. 按键部分
在软件部分当中使用一个按键去控制UI界面的切换。但是当前我虽然用上了按键,结果我的外壳部分没有做好,导致我现在切换界面的拆开外壳去按按键… 大家等我完善或者复刻的时候自行完善就好。
2.9. 亮度采集部分
通过一个电阻+光敏电阻采集光亮度,光敏电阻会根据光亮度自动调整阻值。为什么加R58这个1K电阻呢?因为光敏电阻有可能会因为光的原因导致阻值为0,为0就会让3V3和GND短路,所以加了一个R58作为负载,即使光敏电阻为0欧了,由于R58这个负载电阻的存在,所以也不会短路。
2.10. 震动电机部分
电机,也可以叫做马达,它很好理解,给正负级通电,它就转了。但是震动电机因为结构的关系,当旋转起来的时候,因为离心力的原因,就会震动。
2.11. 语音识别部分
语音识别部分,我使用的是一个模块:SU-03T,它最近比较火,操作简单使用方便。通过网页在线点点点就可以实现语音命令的配置。
需要注意的是,如果你买的是单独的一个模块,那么你还需要购买发声的喇叭 和 采集声音的麦克风(咪头)。
喇叭我买的立创商城的:C530532
咪头也是:C234013
下面就是SU-03T语音识别模块的外围电路,下面是对各个器件的介绍:
- 因为这个语音识别模块在下载固件时,必须在保持断电的情况下,在电脑上点击下载,然后再通电才能够下载成功。为了实现这个断电下载操作,加了一个拨码开关(SW1)。
- C19的作用是储能,必须语音识别模块感觉还是电流消耗挺大的,加一个10UF的电容,在没有电流时就从C19供电。
- 语音采集的框图中的32DB只的就是这个麦克风是-32DB的一个麦克风,或者叫咪头。
- SPK1就是喇叭。
- 图中的03TTXD和03TRXD就是接到了CH340N的串口通信线上,语音固件就是通过这两根线进行固件下载。
- B2TX和B3RX是接到了开发板上的GPIO13和GPIO12,开发板将这两个引脚设置为串口通信,语音模块也将B2B3设置为串口通信,这样才可以数据互传。 这个很重要,因为该语音模块只能设置B2和B3为串口。
语音识别的固件下载,在之前的供电部分给大家讲过,USB接口那里有一个用于语音识别模块下载固件的通信设备CH340N,我这里就贴一个图:
二、外壳部分
3D文件的下载:https://gitee.com/laoguaige/esp32-s3-r8-n8-pixel-clock/tree/master/3Dfile
因为实物很大,打印的外壳需要分开,分左右两边。
LEDGrid2x.stl 为光栏,需要一个部件打两个,拼到一起;
说明:光栏一定要黑色的材质,不管是3D打印时选择黑色的材料还是后面收到喷黑漆,一定记得使用黑色的光栏!不然观感就差很多
frontFrame2x.stl 为外壳边框,需要一个部件打两个,拼到一起;
Housing.stl 和 Housing_noV.stl 为同一个部件,选择一个进行打印即可,都是成本较高,酌情打印;
如要组建完整的外壳,还需要购买黑色的亚克力透明面板!挡住光线!
生产的规格参数:黑茶色 透明亚克力 95×330×2mm
实际效果:三、软件部分
因为软件部分篇幅较多,关于各个模块的例程请参考gitee仓库下各个例程的说明文档。
前往地址: https://gitee.com/laoguaige/esp32-s3-r8-n8-pixel-clock/tree/master/firmware,下载最新的固件,然后打开ESP32S3的下载烧录工具,从0地址开始烧录。
烧录完成之后断电重启即可。