实验室编号 162026

嵌入式固件 / 实体交互

翻转番茄钟 · StickS3 固件

把设备的横竖方向,直接变成 5 分钟与 25 分钟的实体选择

项目
嵌入式固件 / 实体交互
角色
交互设计、固件实现、真机调试
状态
运行中
翻转番茄钟 · StickS3 固件 项目界面

项目概览

我为 M5Stack StickS3 写了一版已经在真机运行的番茄钟固件:竖放自动开始 5 分钟,横放自动开始 25 分钟,四个方向都能正向阅读;暂停、继续与重开收进正面按键。

为什么做

常见番茄钟需要在屏幕里选择专注或休息,再确认时长。对于只有一块小屏和少量按键的设备,这些步骤会让一个本来很轻的动作变得像在设置工具。

我想把选择时间变成一个看得见、摸得着的动作:竖放表示短时段,横放表示长时段。设备的姿态就是当前设置,不需要额外菜单,也更接近无屏实体番茄钟拿起、翻转、开始的使用感。

核心交互

用方向选择时长

固件读取 StickS3 的 BMI270 六轴 IMU,并在方向稳定约半秒后确认姿态:

设备姿态倒计时适合的场景
正竖或倒竖5 分钟短休息、快速处理一件小事
左横或右横25 分钟一轮标准专注时间

四个方向都有对应的画面旋转,数字始终朝向使用者。正竖与倒竖共享 5 分钟,左右横放共享 25 分钟;180° 翻转只校正显示方向,不会重置正在进行的倒计时。

放下就开始

进入番茄钟后不再设置单独的“开始”动作。设备检测到稳定方向便自动开始;竖横切换时,开始对应时长的新一轮计时。这样,翻转设备本身就同时完成了“选时长”和“开始”两个动作。

把按键留给中途控制

倒计时运行时,正面按键短按暂停,再按继续;一轮结束后短按可重开,长按则回到固件主页。侧键在番茄钟页不承担操作,避免在小设备上同时记忆两套控制。

为小屏幕收敛信息

StickS3 使用 135 × 240 的 1.14 英寸屏幕。最初页面带有标题栏和较长的中文提示,实际显示后占用了过多空间,部分点阵字也挤在一起。

真机调试中,我去掉了番茄钟页的 Header,把倒计时数字放大并居中;状态文字缩成“正面键暂停 / 继续 / 重开”和“长按返回”,中文菜单则改用更清晰的 14px 常规点阵字。页面不再解释它是番茄钟,只保留当前需要看到的时间与动作。

当前进展

第一版已完成编译、写入和真机校准,目前在 StickS3 上运行。已经验证四个放置方向、5/25 分钟自动切换、画面旋转、暂停继续、重新计时和返回主页。

固件主页还为六爻、流麻和电脑连接后的额度显示预留了入口,目前番茄钟是其中已经可用的完整功能。后续继续扩展时,仍会保留这一页的离线运行与单动作交互,不让其他模块增加它的使用负担。

硬件平台为 M5Stack StickS3(K150),使用 ESP32-S3、BMI270 IMU 与 135 × 240 LCD。具体规格可查看 M5Stack 官方硬件资料

© 2026 miaoyimin