自制ESP32墨水屏手表——Watchy(软件)

一款源自国外的开源墨水屏手表——Watchy,其软件部分包含库的安装、代码框架、功能的修改等多个方面。在进行代码框架讲解之前,需要强调的是,目前官方已更新至1.4版本,硬件和原理图均有所调整。若后续有更新版本,将进行1.4版本的详细解析。

代码框架主要由以下几个部分组成:例程、watchy库和Arduino.h。例程部分位于不同路径下,包含不同表盘代码,功能各异,例如第一个(7_SEG)示例。该示例只包含一个初始化函数,所有功能在中断中执行。Watchy_7_SEG.cpp和Watchy_7_SEG.h文件用于表盘的显示刷新等功能,其余文件则存储了图片文件。watchy库的主要功能函数位于Watchy.cpp和Watchy.h文件中,config.h文件则定义了引脚的宏,修改代码主要参考这三个文件。其余文件则涉及陀螺仪、实时时钟等外设的二次封装调用。

在功能修改方面,本文以添加自动刷新功能为例。由于原始设计可能为了省电,没有设置自动刷新功能。通过研究代码,我们发现进入菜单并返回是刷新时间的唯一方式。对于ESP32,可以使用外部唤醒功能,如按钮触发唤醒,实现自动刷新。在Watchy.cpp文件的初始化函数中,修改外部唤醒中断ESP_SLEEP_WAKEUP_EXT1,以实现按钮唤醒时的自动刷新。在handleButtonPress()函数中,根据按下按钮的不同,实现进入菜单或刷新时间的功能。在刷新时间的代码中,先将屏幕填黑,再刷新显示内容,以提高刷新速度。此外,对于电量显示功能,通过ADC采样实现不同的电压对应不同的电池电量。

在附件部分,提供了官网参考手册和注意事项。首先使用习惯的编辑器修改代码,然后重新打开Arduino进行验证。由于每次打开软件的第一次编译会编译所有库,因此,在修改库代码后,必须重启Arduino,重新编译,以确保新代码被正确编译。最后,祝大家成功实现自定义Watchy手表。

上一篇:下一篇:丰田酷路泽
下一篇:上一篇:返回栏目