构建番茄钟计时器
扫描二维码
随时随地手机看文章
我一直很推崇深度专注的工作方式,并努力践行这一理念。但我也需要时不时地休息一下,这时我就需要用到番茄钟计时器。市面上有很多适用于手机的应用程序,但我更希望完全与手机断开连接。我身边有两块闲置的 M5 StickC Plus 设备,考虑到其尺寸和内置电池,这似乎是一个不错的开始选择。自从我开始去健身房锻炼以保持健康以来,已经有几个月的时间了,而这个计时器在这里也会非常有用。
M5 StickC Plus2
M5StickC Plus2 是一系列小巧的 ESP32 设备中的一款,其实际用途远超其外观所呈现的那样。它体积小巧,便于携带,还配备了漂亮的显示屏、按钮、蜂鸣器以及各种传感器,非常适合将其改造成番茄钟计时器。非常适合快速原型制作,并在将其开发成更复杂的产品之前进行功能验证。
要求/规定
•它应该具备多种不同的计时程序(深度专注模式、短时间专注模式、平板支撑模式、高强度间歇训练模式……)(等等)
•每个程序都可以包含步骤,而每个步骤则由步骤名称和以秒为单位的时间来定义,此外整个程序还可以设置正数的循环次数或者无限循环。
•在滚动浏览可用步骤的过程中,我应该能够看到菜单屏幕上的前两步内容。
•计时器应显示倒计时、展示接下来的步骤以及循环次数。
•我应该能够以直观的方式实现暂停、开始、跳过步骤以及退出操作。
•步骤完成的音频反馈。
•节能及基于惯性测量单元的功能方面的内容,我将在后续的项目中进行探讨。
按钮命名与使用方法
我将采用 M5 便携式设备的官方命名规则
按钮控制:
•菜单模式:A=切换至下一个节目,A Long=选择,B=切换至上一个节目
•计时器运行状态:A 代表暂停,A Long 代表跳过步骤,B Long 代表退出对话框。
•计时器暂停:A=继续,A(长按)=跳过步骤,B(长按)=退出对话框
•退出对话框:A=确认退出,B=取消
编程
通常我更倾向于使用 Platform IO,但由于 M5Stick 的电路板定义尚未公布,所以我不得不使用 Arduino IDE。
我确保了编程方式能够方便且直观地添加更多的定时程序。还为屏幕的显示设计了独立的功能。经过几个小时的调试,我终于完成了一个能正常运行的版本。但随后我发现,每当定时器发生变化(每秒一次)时,整个屏幕都会闪烁。这非常令人分心。疲惫不堪且急于完成这个项目,我要求进行修复并重新优化代码。最终效果还不错,克劳德甚至还对用户界面做了些许改进,但我还是需要做一些手动调整以确保其正常使用。
屏幕
菜单界面 - 展示了前两步内容,包括程序总耗时以及循环次数。
计时器屏幕会显示当前步骤、暂停/运行状态、倒计时时间、进度条、下一步操作、当前循环次数以及总循环次数。
退出画面
总结性思考
我已经使用了这个产品三天了,它很好地满足了我的需求,尽管考虑到这是一款老旧设备,电池续航能力并不理想,因为没有编写节能代码,而且更重要的是它使用的是 ESP32 单元。但这是我对将其投入实际使用的一次初步验证,并且我还计划在此基础上进行一些改进,比如实现节能功能以及基于惯性测量单元的控制。
本文编译自hackster.io





