• 正文
  • 相关推荐
申请入驻 产业图谱

188块买了个ESP32-P4,让Codex做成触屏快捷键,顺手还能当电脑副屏

11/04 08:25
105
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

Hi,uu们,最近又在拿 Codex 玩硬件。

前面刚把 ESP32-S3-GEEK 折腾成电脑副屏,能把电脑上的一块独立桌面塞进小屏幕里。东西不大,看着它真的跑起来,还是挺有意思的。

然后就开始惦记手里的另一块板子了。

ESP32-P4,性能比前面那些小家伙强了这么多,拿来干点啥?

总不能一直放在那儿,通电欣赏一下出厂界面,再断电吃灰吧。

这次这块带触摸屏的 P4 板,188 块钱买的。

比我前面玩的 AI 工牌贵一点,但能折腾的空间也大了不少。大屏、触摸、更宽裕的内存,再加上显示和图像处理这套东西,可玩性确实很高。

想了一圈,先把我早就惦记的东西做出来:桌面触屏快捷键。


我之前就看过 Stream Deck 那类桌面快捷控制台。

把常用操作摆在手边,复制、粘贴、截图、切窗口、调音量,按一下就完成。尤其软件一多,有些组合键平时不常用,临时还真想不起来。

东西挺好,看完价格,又觉得也不是非买不可。

现在手里正好有一块带触摸屏的开发板,Codex 也已经陪我跑通了一次副屏开发,那就自己做一个。

不用照着原版的结构复刻,我要的就是那几个实际功能。188 块的板子,屏幕和触摸都带了,先把它利用起来。用屏幕画按键,布局随时换,图标随时改,自己开发这条路,成本也更容易接受。

于是直接给 Codex 下任务:先整理资料,弄清楚这是什么板子,再写程序、编译、烧进去。

这块板子的型号是JC4880P443C_I_W,P4 搭配 C6,带一块4.3 英寸、480×800 的触摸屏。我这块实物是 16MB Flash、32MB PSRAM。

P4 负责显示和主要程序,Wi-Fi、蓝牙这边配合 C6 来做。对这次用途来说,底子已经挺够用了。


最初要求真不复杂:在屏幕上放几个常用快捷键。

复制、粘贴、撤销、截图,再来几个媒体控制,先能用再说。

跑起来以后,想法就开始往外冒了。

既然是触摸屏,为什么非得写死这几个按钮?

既然有无线,为什么还要一直插着 USB 当键盘?

既然能通过网页配置,换个按键名称、导入个图标,应该也能做吧?

最后慢慢加成了现在这套:三页、36 个按键,中文名称、自定义图标、蓝牙快捷键,再加一页自动化脚本。

平时放在桌上供电,通过蓝牙连接电脑,点屏幕就能发送快捷键。

▲ 板子实际LCD帧缓冲截图。中文按键、自定义图标、常用组合键,都放在这块触摸屏上。

配置也不用每次改代码、重新烧录。

板子连上局域网后,打开它提供的配置网页,选中一个按键,换名称、换功能、导入图标,保存到设备就行。配置存在板子里,断电以后还在。

这里要区分一下:局域网现在用来配置按键,不是已经做成无线投屏了。

我觉得这种方式比固定按键有意思。今天是常用办公操作,明天想换成某个软件的专用面板,重新配一页就行。

至于自动化脚本,第一版也没搞得太复杂,就是组合键、连续按键和延时。

比如复制内容,等一下,再粘贴;或者按完一个组合键,切换窗口,再执行下一步。步骤可以自己排。现在还不是点一下就直接运行电脑上的 Python、PowerShell,那是另一层功能,后面需要再加。

▲ 项目网页界面预览。左侧选按键,右侧改中文名称、导入图标、配置组合键;不需要为了换个功能重新刷机。

▲ 自动化页的“复制粘贴”示例:CTRL+C,等200毫秒,再CTRL+V。这里是项目本地预览,不会向电脑发送按键。


当然,也不是跟 Codex 说一句“给我做个键盘”,后面就全程顺滑了。

蓝牙一开始能搜到,配不上。还有过点屏幕没反应,过一会儿又恢复的情况。

这些东西不拿实物试,光看代码很容易觉得已经完成了。

后面查到,网页请求和触摸界面挤在同一个主循环里,碰上慢请求,屏幕也跟着等。另外,USB 诊断日志在电脑不读取串口时,也可能拖住程序。

处理方式就是把网络工作拆出去,日志改成非阻塞,让触摸继续轮询。

我的工作也很明确:插线、切 USB 口、允许必要的管理员授权,然后盯着板子看——屏幕亮不亮,按键有没有生效,画面方向对不对。

Codex 负责读资料、改代码、编译、刷机和分析日志。它说写好了,我还得伸手点两下。


快捷键做完,我又想起前面 S3-GEEK 的副屏了。

这次屏幕更大,还有触摸,能不能顺便也当电脑副屏?

而且我不想把它刷成副屏之后,前面的快捷键功能就没了。我的要求是:平时还是快捷键,真要用副屏的时候,在屏幕上点几下再进去。

最后做成了这个流程:

开机进快捷键 → More → 扩展显示器 → Start Windows USB。

然后把数据线接到板子的 USB3 高速口,电脑端配套程序开始传画面。

电脑上出现的是一块独立扩展桌面,可以把窗口拖过去,小屏和主屏显示不同的内容。

用完以后,长按屏幕上HOLD EXIT所在的角落两秒,返回快捷键面板。Windows 这边,本次启用的虚拟屏也会恢复停用。

▲ 网页里的扩展屏使用说明。真正的进入操作要在板子触摸屏上完成;图中的宽高、帧率输入框仍是后续局域网功能的预留参数,当前Windows发送程序默认12帧/秒。

第一次测试,画面是出来了,长按退出却不好使。

最后发现触摸驱动把“这次没有新报告”当成了“手指松开”,长按计时老是被打断。修完再试,显示和退出才都跑通。

目前传到板子的是800×480 的画面,程序默认按 12 帧/秒发送,再旋转到这块原生竖屏上显示。电脑虚拟屏的分辨率不一样时,会等比例缩放、补黑边。

看状态、放个配置窗口、显示一些不怎么高速变化的内容,是这次主要考虑的用途。高刷视频就先不往它身上安排了。

还有一点提前说清楚:它是USB 数据传画面,Windows 端需要虚拟显示驱动和配套程序,并不是普通 Type-C 视频显示器,也不是接上任意设备就免驱显示。平时用蓝牙快捷键,也不需要一直占着这个高速 USB 连接。


我比较想拿它干的,其实还有现场调试。

有些工控机平时不接显示器,设备装在那里,偶尔要改个参数、看一下状态、查一下网络设置。事情可能不大,为了看个界面,又得找屏幕、找线,把一堆东西搬过去。

如果带一块这种小屏,再带个小键盘、鼠标,就方便不少。

小屏接主机看界面,键盘、鼠标接工控机自己的 USB 口,需要调整的时候直接操作。

这里不是说这块 P4 板又变成了键鼠扩展坞,而是把临时调试要带的那块显示器缩小了。

对已经提前配好驱动和程序的 Windows 工控机,这个方案就有了实际用途。调完拔掉,拿回桌上,又是我的快捷键面板。

不过,系统还没启动、需要进 BIOS,或者机器已经启动失败,那还是得用它本来的视频输出接显示器。这块 USB 副屏依赖操作系统,不能把用途吹过头。

树莓派那边我也想接上。代码里已经开始做 Linux GUD 接收,不过这次先把 Windows 跑通,树莓派还没实测,留到后面继续折腾。


折腾到这里,这块板子终于不只是一个通电亮屏的开发板了。

放桌上,它是触屏快捷键;需要多一块小屏,在菜单里切过去;想改功能,打开网页自己配。

188 块买的板子,折腾出了触屏快捷键和电脑副屏两种用法,我觉得挺值。比 AI 工牌贵的那一点,换来了更大的屏幕和更多折腾空间。尤其之前已经用 Codex 做过一轮 S3 副屏,再来玩 P4,想法确实容易越加越多。

当然,自制也有自制的成本,线要自己插,问题要自己试,外壳和支架还可以继续琢磨。

不过对我来说,这些本来就是玩开发板的乐趣。

代码也放出来了,想一起玩的可以看看:

https://gitee.com/Auto_Action/esp32-p4-c6

先把现在这两个功能用起来。下一步,再看看这块 P4 还能塞进去点什么。

相关推荐

想看更多拆解吗?

微信公众号