今天我们做一个桌面番茄钟/计时器——按一下开始 25 分钟倒计时,屏幕显示剩余时间,结束时屏幕闪烁并蜂鸣,再 3D 打印一个小立座把它摆起来。


01. 点亮设备与环境配置 (10 min)

目标:学会连接设备、选择开发环境(课程采用最易上手的 UIFlow 图形化/Python 平台)。

动手步骤

  1. 打开浏览器,访问 flow.m5stack.com
  2. 用 USB 线将 M5Stack 连接至电脑,并根据网页提示安装驱动与 M5Burner 烧录固件(如果是第一次使用)。
  3. 在 UIFlow 界面左侧的屏幕设计器中,拖入一个 Label (文本) 控件。
  4. 在右侧积木区,拖出事件 on ButtonA wasPressed,并在其中拖入 Label set text "Hello!"

你会得到:在模拟器或烧录进真机后,当你按下 M5Stack 上的 A 键,屏幕文字会立刻改变,宣告你的硬件第一次听从你的指令。

02. 在屏幕上显示时间 (10 min)

目标:学会使用循环和变量更新屏幕上的数字。

动手步骤

  1. Variables 抽屉中,新建一个变量名为 timer,在 on start 里初始化它 set timer to 1500 (25分钟等于 1500 秒)。
  2. 在主循环 Loop 或定时器事件中,放入以下逻辑:
    • change timer by -1
    • 计算分钟和秒:min = timer / 60, sec = timer % 60
    • 在屏幕的 Label 控件上显示格式化后的时间,例如 min + ":" + sec
    • wait 1 s

你会得到:屏幕上出现一个会每秒自动减一的数字倒计时。

03. 添加交互:开始与复位 (10 min)

目标:引入状态机变量(开始/暂停/复位),使用物理按键控制硬件状态。

动手步骤

  1. 新建变量 running,在 on start 时设为 false
  2. 将步骤 2 的倒计时循环外面包裹一层判断:if running == true then ...
  3. 拖出按键事件:
    • 当按下 Button A 时,将 running 设为 true (开始计时)。
    • 当按下 Button B 时,将 running 设为 false,并且重置 timer1500 (复位)。

你会得到:一个可控的桌面番茄钟。按下 A 键开始,按下 B 键暂停并复位至 25:00。

04. 添加声音与振动反馈 (8 min)

目标:控制 M5Stack 的内置硬件外设(蜂鸣器、RGB 灯或马达)。

动手步骤

  1. 在倒计时循环内部,加上一个判断:if timer == 0 then ...
  2. 当时间归零时:
    • running 设为 false
    • 调用 Speaker 抽屉中的 play tone ... for 1s (播放蜂鸣器警报声)。
    • 调用 Hardware 抽屉将屏幕背景色设为红色闪烁,提示时间到。

你会得到:一个功能完整的番茄钟!25分钟倒计时到 0 时,设备发出蜂鸣警报,屏幕闪烁。这已经达到了桌面造物的核心 ship 门槛!

05. 让 AI 帮你建 3D 打印外壳 (12 min)

目标:学会用 AI 编写 OpenSCAD 脚本,生成参数化 3D 打印外壳。

动手步骤

  1. 使用游标卡尺或查阅官方文档,量出你的 M5Stack 物理尺寸(例如 M5StickC Plus2 尺寸大约为 48×25×13 mm)。
  2. 打开 AI 助手,发送以下 Prompt:
    我正在使用 M5StickC Plus2(尺寸为 48x25x13 mm)制作一个桌面番茄钟。
    请为我编写一段 OpenSCAD 代码,生成一个桌面立座外壳:
    1. 它的底部是一个倾斜 15 度的支撑槽,宽度为 13.5 mm,深度为 8 mm,可以完美插住并斜放设备。
    2. 两侧和底部留有开口,方便接 USB-C 数据线。
    3. 请使用 OpenSCAD 能够理解的纯文本代码返回,并给出设计尺寸的解释。
    
  3. 将 AI 返回的 OpenSCAD 代码复制,粘贴进 OpenSCAD 编辑器中(可以在电脑上下载免费的 OpenSCAD,或使用在线版本)。
  4. 点击渲染,并导出为 .stl 文件。

你会得到:一个完全量身定做的 3D 打印外壳模型文件,准备进行切片和打印。

06. 切片、打印与组装 (7 min)

目标:了解切片与打印的基础流程,并将软硬件组装在一起。

动手步骤

  1. 打开你的切片软件(如 Bambu Studio、Cura),导入刚才的 .stl 文件。
  2. 选择默认填充率 15%,无需添加支撑,直接导出 G-code 并开始打印。
  3. 没有 3D 打印机怎么办?:你可以将 .stl 文件发给学校的创客空间、社区图书馆,或者使用在线 3D 打印服务(如嘉立创三维、淘宝代打),单件成本通常在几块钱左右。
  4. 打印完成后,剥离底阀,将 M5Stack 插入插槽中。

你会得到:一个摆在课桌上、真正能工作且有 3D 打印外壳保护的实体番茄计时器!拍照截取你的成品图,你已经可以去提交项目了。