中国·澳门新葡萄新京威尼斯(987-官方网站)-Ultra Platform

/ EN
13922884048

技术交流

Technology Exchange
/
/

DIY高手教你打造超酷电脑监控副屏!

发布时间: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及行业观点,只为转载与分享,支持保护知识产权,转载请注明原出处及作者,如有侵权请联系我们删除。

服务热线

0755-83044319

霍尔元件咨询

肖特基二极管咨询

TVS/ESD咨询

获取产品资料

客服微信

微信服务号