服务热线
0755-83044319
发布时间:2024-11-15作者来源:澳门新葡萄新京威尼斯987浏览:621
历经四个月的Fastbond第三季活动现已圆满结束,项目审核结果已邮件告知大家,感谢硬禾小伙伴们的踊跃参与,带来了超多精彩项目,期待接下来的奖励返还。
今年FastBond3活动小伙伴们又提供了不少新创意,硬件上不止有强大的功能,还有精美的外观,妥妥的产品级设计。这个由【pomin】带来的一线通高刷监控副屏设计便让人眼前一亮,是一款高刷新率、高自由度、具有触摸功能、低成本、易操作的监控小屏。
完整项目报告已经上传至电子森林:
https://www.eetree.cn/project/3544
背景介绍
如今电脑配件厂商都在推出一些带屏外设,主要面向给极客玩家、DIY 玩家,装扮自己的电脑主机和桌面,置于显示屏下方的小监控屏就是其中很受欢迎的一类产品。如今市场上的“监控小屏”类外设当前主要有以下三种方案:
经过比较不难发现以上三种方案均有一定缺点,针对上述问题,本创意首次提出了如下方案:
使用 USB HS 转 SPI、I2C、UART专用芯片搭配 IO 拓展芯片实现高速驱屏、电容触摸。
使用 I2C 环境传感器获取当前室内温湿度,可拓展工作台温湿度监控等功能。
直接使用电脑运行 LVGL,无 Flash 限制!无 RAM 限制!搭配 LVGL 设计器实现炫酷界面!
通过 WMI 等方式直接读取电脑状态,无需反复配网、配置,直接运行 exe 完成操作。
依靠上述方案实现了一个低成本、高性能、易操作的监控小屏项。项目具体实现过程请大家接着往下看。
硬件设计
首先一起来看看该项目实现的框图设计吧!
方案介绍如下:
通过 USB 转高速 SPI(60Mbps)驱动 SPI 小屏幕显示,实现高刷新率
通过 USB 转 I2C 读取 TOUCH 芯片、温湿度芯片实现触摸、监测环境温湿度的功能
通过 USB 转高速 UART(6Mbps)和STM32通讯,实现IO、PWM拓展功能
器件列表
IO 拓展器硬件设计
对于 STM32 端的 IO 分配使用 CubeMX 来完成分配,如下所示:
PA13、PA14 作 SWD 烧录引脚
PA0、PA1、PA4、PA5 作为 GPIO 输出引脚、PA6、PA7、PA11、PA12 作为 GPIO 输入引脚
PB1 作为 PWM 输出引脚、频率为 10KHz
PA2、PA3 作为 USART1 通信引脚与 CH347T 通讯
原理图设计
原理图采用 KiCAD 进行设计,CH347T、FPC 等部分封装为手动创建,非系统原理图库。硬件设计相关文件可查看项目报告原文附件。
原理图介绍:
Type-C 及供电电路
CH347T 与 STM32 通过 UART 连接
CH347T 与 HS3001 通过 I2C 连接
触摸屏通过 SPI、I2C、GPIO、PWM 与 CH347T 和 STM32 连接
PMOS 控制 STM32 电源电路——当 CH347T 建立 USB 连接后 ACT 拉低,STM32 工作;断开连接(但不断电)后 ACT 拉高,STM32 不工作,LCD_BL 拉低,实现了电脑休眠时自动熄灭屏幕的功能
PCB设计采用了双层布局(设计文件可)。此外本项目还设计了一个简洁的外壳,为HS3001温湿度传感器预留了通风缝隙以确保空气流通,外壳与屏幕紧密贴并留有 Type-C 的接口槽孔。
软件设计
IO拓展器
IO 拓展器采用 modbus 协议与 PC 端软件通讯,来完成对 MCU 的 IO 输入输出、PWM 占空比进行读写操作,本项目是在 STM32G030F6P6 端移植了 FreeModbus 的协议栈以实现 PC 和 STM32 的通讯。
modbus 是工业中常用的一种标准的通信协议,有二进制变量(线圈、离散量)和双字节变量(输入寄存器、保持寄存器)四种类型,在工业中广泛用于 IO 控制、数据同步等许多应用,在本项目中的 IO 操作、PWM 占空比设置十分合适,上下位机的代码也可以利用开源库,易于实现。
PC端
IO 拓展器通讯 API
与 IO 拓展器的通讯使用 libmodbus 来实现,对于读 IO 输入对应为 modbus 读输入寄存器操作,写 IO 输出和 PWM 占空比对应写保持寄存器操作。
SPI、I2C 通讯 API
对于 SPI、I2C 的通讯,沁恒已经封装成了 DLL 库,只需调用即可,但仍较为复杂,本项目对其进行了一些简化封装,具体代码比较繁多,在此不做过多展示。
驱动封装
对于触摸屏的驱动芯片,也就是 ST7789,采用四线 SPI 通讯方式,其中 D/CX 引脚为 IO 拓展器的 IO 输出脚,用前文的 libmodbus 进行操作,其他的 SCL、SDA、CSX 为 SPI 标准信号线,使用 CH347T 库进行操作,搭配操作实现高速刷屏。
对于触摸屏的 FT6236 触摸芯片和 HS3001 温湿度传感器,都采用 I2C 的通讯方式,使用 CH34T 库进行操作。
对于 PC 的状态信息读取采用 Windows 给出的一些 API 和开源的一些库代码来完成,目前支持了 CPU 温度/占用率、GPU 温度/占用率、主板温度、内存占用率这几个信息的读取。
LVGL 界面设计
完成硬件信息的读取之后,接下来就要将其展示出来并且可供用户操作。本项目采用了现在[敏感词]的 LVGL 来作为界面库使用,主要包含有显示驱动接口和输入驱动(在此为触摸)接口。
界面设计是使用的 GUI Guider 进行的设计,图标来自 iconfont,整体设计界面如下:
由于篇幅原因,软件设计部分代码细节不在此做过多展示,详情可点击“阅读原文”查看。
实物展示
PCB和2.4 寸的触摸屏铁框完美契合,装上外壳,完美贴合。
通电效果展示(小米温湿度计合影)
功能实现:支持时间、电脑CPU、GPU温度&占用率、环境温湿度数据监测及显示,还能一键触屏快速启动Keil / VScode,具体演示可详见项目视频。
设计文件获取
本项目对本项目感兴趣的小伙伴可前往电子森林查看完整项目报告,附件中可获取项目设计相关文件。(还可以在评论区和原作者交流哦~)
免责声明:本文采摘自“硬禾学堂”,本文仅代表作者个人观点,不代表澳门新葡萄新京威尼斯987及行业观点,只为转载与分享,支持保护知识产权,转载请注明原出处及作者,如有侵权请联系我们删除。
友情链接:站点地图 澳门新葡萄新京威尼斯987官方微博 立创商城-澳门新葡萄新京威尼斯987专卖 金航标官网 金航标英文站
Copyright ©2015-2024 澳门新葡萄新京威尼斯987 版权所有 粤ICP备20017602号-1