AI脑洞板
完整教案
自学课件
第 46 课 · 共 46/51 课

任务清单(To-do)——把计划变成能勾掉的事 把计划变成能勾掉的事

课时
待定
器材
ESP32-S3 触摸屏板 + USB 线
前置知识
无
配套代码
见项目 demo 目录

开始之前:小明又来了

你好,我是吴老师。

小明又来了。 这次他的麻烦听起来最平常:

请你扮演一个四年级的小学生,名字叫小明。

你有一个麻烦:每天要记的事情太多了 —— 作业、要带的东西、
妈妈让买的东西,老是漏掉一两件。写在纸上又懒得翻。
(别的你也不知道 —— 你就是个普通小学生,没想过怎么解决。)

规则:
1. 你说话要像一个真的四年级学生:句子短,想到什么说什么
2. 一次只说一点,别一口气把情况全说完了 —— 等对方问你
3. 对方问你什么,你就老实回答什么
4. 你不知道"该做什么工具",你只知道自己有这个麻烦

现在开始:先打个招呼,然后说说你的麻烦。
说完就停下来,等对方提问。

一、这次的坑,最不容易发现

前面几个麻烦都比较具体:忘带书、背单词、坐不住。

"事情太多老漏掉" 就不一样了 —— 它听着就像"记下来就行了"。

⚠️ 但你已经知道:他试过"写在纸上"了,还是漏。

所以问题不在"没记下来"。

二、像侦探一样问他

该问想挖出什么
"你一般记在哪儿?"是记了不看,还是压根没记?
⭐ "你什么时候会去看它?"—— 这一问最关键
"最近漏掉的是哪一件?当时怎么回事?"一个真实的故事,比什么总结都有用
"写完了你会划掉吗?"他是"做完就扔",还是想看到自己做完?
❌ 别问为什么
"你是不是要个记事本?"他已经有纸和本子了,还是漏
"你要什么功能?"他要是知道,就不用找你了

⭐ 第二问是这一课的核心。

小明说"写下来又懒得翻" —— "懒得翻"就是答案。

他不是缺一个本子。他是缺一个**"随手就能看一眼"的东西。 本子在书包里,翻一次要好几步;而板子就摆在桌上,抬眼就是**。

三、你到底问出了什么

要回答从小明的话里
他真正的麻烦不是"没地方记",是记了之后懒得回头翻
什么时候用写作业前看一眼;做完一件顺手划掉
怎么算做成了一周下来,漏掉的事情从"两三件"变成"没有"

⭐ 还有一件事值得注意: 小明提到"写完了划掉"的语气, 明显比"记下来"更来劲。

人喜欢看到自己做完。 这一条会影响你待会儿怎么设计 —— 记住它。

本课一句话:任务清单 = 用一组"格子"存任务 + 用"状态"记做没做 + 用"规则"排序打勾 + 用 TF 卡存住。它把"脑子里乱成一团的事",变成"一条条清清楚楚能勾的事"。核心是"数据 + 状态 + 规则",AI 只帮忙整理。

四、先让板子当回"任务管家"

先别听我讲,让板子演示一遍。

请使用课程的 esp32s3-touchboard-hardware-dev Skill,
烧录本课配套程序 assets/codes/demo01_todo:
板子上列出一串任务(比如:背单词、做数学、扫地),每条前面有个方框,
你点一下方框它就打勾(标记"做完了")。顶部有"完成率"进度条,
底部显示"还剩几条没做"。按 BOOT 能新增一条任务。
烧录前把中文字库复制好(见 README)。烧录后告诉我:
你勾掉一条,进度条怎么变?没做的还剩几条?

几秒后,板子列出一串任务,前面有方框。你点"背单词"的方框,它就打勾,顶部的"完成率"进度条往前走一点,底部"还剩 2 条"变"还剩 1 条"。

五、拆开看:任务清单的"三件套"

1. 数据:一条任务=一个"格"

板子内存里有一张"任务表",每一条是一个格子(结构体),记三样东西:

任务 = {
  名称:   "背单词"      // 干什么
  截止分钟: 30          // 啥时候前要完成(比如今晚8点=540)
  完成:  false          // 做完了吗(true/false)
}

这跟第 34 课课程表、第 36 课词表是同一类——一条一条的数据,装进一张表。

2. 状态:做没做,用一个"对/错"表示

做没做完,就用一个布尔值(完成: true/false)表示。这就是"状态"。

  • 你打勾 → 完成 = true
  • 这条就"做完了",从待办里"消失"(或被划掉)

完成率 = 做完的条数 ÷ 总条数。这是从"一堆 完成 状态"里算出来的一个数。

3. 规则:怎么排序、怎么提示

任务清单的"聪明",在规则里:

  • 排序:按"截止时间"排,最急的排最上;
  • 打勾:点一下方框 → 改 完成 状态 → 重排、重画;
  • 提醒(可选):快到截止时间 → 高亮或提示。

六、任务清单和课程表、背单词是一家的

你会发现,任务清单的本质和前面学的一模一样:

工具数据状态(记"怎么样")规则
课程表(第34课)课表数组现在是第几节到点高亮
背单词(第36课)词表掌握度优先考不会的
任务清单(本课)任务数组完成/未完成打勾、排序、提示

为什么都长一个样? 因为它们都在做同一件事:把真实世界的东西,抽象成"数据 + 状态 + 规则",让板子去查、去比、去显示。 数据结构变了,工具用途就变了。

七、这次多了"断电不忘"——用 TF 卡存住

前面有没有注意到一个坑?就是假如你把任务存进芯片内存(RAM),一断电就全没了——你辛苦列的 10 条任务,拔电烧录就清空。

要"断电不忘",得把任务写进 TF 卡(第 14 课):

想记住 → 写进 TF 卡(如 save.txt)
记不住 → 只存内存(断电即失)
  • 保存:把每一条任务(名称 + 截止 + 完成)写进 TF 卡的 todo.txt;
  • 读回:开机时读 todo.txt,把任务重新装回内存;
  • 效果:你今天列的任务,明天开机还在——断点续用。

对比:库存内存 = 断电丢了;存 TF 卡 = 断电还在。任务清单这种"要长期用"的东西,就得存在"能长期存"的地方。

八、让 AI 帮你"拆任务"(提示词)

这是本课一个 AI 增强点。很多时候你只有一个模糊目标,比如"准备演讲"。它太大、没法一步做完。AI 能帮你把它拆成几个能勾掉的小步骤。

怎么让 AI 拆得好?又是提示词——你要说清楚"拆成什么样子"。

版本 A:含糊

帮我拆一下"准备演讲"这个任务。

AI 可能回:"先写稿、再练习、再上台。"——太笼统,还是不知道第一步干嘛。

版本 B:规定拆成"能勾掉的小步骤"

system 提示词:你是学生的任务拆解助手。
请把一个模糊目标拆成 3-6 个具体、可勾掉的小步骤,
每个步骤用一句简短的话说清楚,按先后编号。
用简体中文,不要多余解释。

AI 可能回:"1. 确定演讲主题 2. 列出 3 个要点 3. 写开场白 4. 写正文 5. 用手机读一遍计时 6. 修改超时部分。"——每一条都能单独完成、能勾掉。

AI 拆得好的关键为什么
告诉它"拆成可勾掉的小步"才不会给出"好好练习"这种没法打钩的
规定数量(3-6 条)不会拆得太碎或太少
规定格式(按先后编号)才好按顺序做
规定语言(简体中文、简洁)才行清楚、不多说

这一课你想练的:提示词不仅能"让 AI 说话",还能"让 AI 帮你把一件事拆解成几步"。 而拆得够不够"可勾掉",取决于你有没有把"可勾掉"这个要求说给 AI 听。

九、⭐ 交付给小明

装好之后,回头告诉他:

我做好了一个工具。它长这样:
____(把屏幕上的样子说给他听)
不用联网,摆在桌上抬眼就能看;做完的事会划掉,但不会消失。
你觉得能帮上你吗?

认真听他怎么说:

小明:嗯……挺好的。但是我要是忘了把它打开呢? 小明:还有,我怎么知道哪件事比较急?

⭐ 第一句最厉害。 它戳中了一个所有工具都会遇到的事:工具再好,忘了打开就等于没有。 这不是做工具能解决的 —— 得靠习惯,或者让它主动来找你。

第二句指向"排序规则"(第五节那个"三件套"里的第三件)。 改完再给他看,来回几轮才真的能用。

十、改一个条件,看它怎么变

我想改该动哪部分我预测会发生什么
任务改成"按优先级排序"排序规则加"优先级"字段更急的排最上
完成率满 100% 就显示"全做完🎉"完成率判断全勾完出现庆祝
到截止时间高亮加一个"快到截止"判断快到的变红
只显示"没做完"的任务显示规则过滤做完的自动隐藏
让 AI 更细致地拆拆解提示词步骤更具体

先预测,再验证。 你会发现:改的都是"数据字段"和"规则",任务清单"存任务+打勾+排序"的底子不变。

十一、如果它没按你想的来

现象先查什么
打勾没反应触摸区域判断对吗?方框的坐标范围写对了吗?
断电后任务没了存了内存——想断电不忘,要写进 TF 卡
TF 卡读不到SD_MMC 引脚 setPins(38,40,39,41,48,47) 对吗?卡插好了吗?
任务顺序不对排序规则按什么排?截止时间读对了吗?
AI 拆得不像"步骤"提示词没写"可勾掉的小步骤"——补上

记住:任务清单最该注意的,是"断电忘不忘"——要长期用,就得存 TF 卡。

十二、下课前,把"任务清单"讲给我听

先别看 AI 的回答,自己说一遍:

  1. 一条任务"格子"里存了哪几样东西?哪一个是"状态"?
  2. "完成率"是怎么算出来的?它从哪一堆状态里来?
  3. 任务清单和课程表、背单词,本质有什么相同?(都在做"数据+状态+规则")
  4. 为什么任务存内存会断电丢?想断电不忘该怎么办?
  5. 让 AI 拆"准备演讲",你需要在提示词里写清楚什么?为什么"可勾掉"很重要?
  6. 这个项目哪些是本地规则、哪些是 AI 辅助?

今天请留下三样东西:你列的一个任务清单(存进 TF 卡)、你勾掉的一条任务、以及一句"让 AI 拆任务要在提示词里写什么"。

十三、最后留给你:会"管任务",就会"管一切"

这一课你把"数据+状态+规则"这个套路用到了"管理"上。而且你发现:

管理任务 = 把模糊的"我要做的事",变成一条条"具体的、能勾掉的、能排序的、能存住的"条目。

你学到的应用
数据 + 状态 + 规则课程表、词表、任务清单、宠物都是这个套路
存 TF 卡中断电不忘任务、进度、记录都能长期保存
AI 拆解提示词把大目标拆成小步骤

只要你学会了"把一件事抽象成数据 + 状态 + 规则",你就能让板子帮你管很多东西。 下一课,我们再加一种能力——让板子当"翻译官",帮你把一句话从中文变英文、再读出来。


教师备课备注(不作为课堂口播)

课程定位

  • ⭐ 2026-09-24 改版:本课加了「产品经理」范式(连同 34 / 36 / 37 / 47)。 结构:小明来求助 → 采访 → 挖真需求 → 做 → 交付 → 听反馈。
    • 本课的真需求反差:他嘴上说"事情太多老漏掉"(听着像"记下来就行"), 但他已经试过写在纸上了还是漏 —— 真需求是"记了懒得回头翻"。
    • ⚠️ 必须回接技术点:正因为他要"随手能看" → 决定了板子摆在桌上、不用联网; 他提到"划掉"时更来劲 → 决定了做完要划掉而不是消失(看得见才有动力)。
    • 交付时小明说"我要是忘了打开它呢" —— 有意设计的: 点破"工具再好,忘了打开等于没有",这不是做工具能解决的(得靠习惯或主动提醒)。
  • 第九章「AI 生活」第 4 课。核心是"数据 + 状态 + 规则"的复用(和课程表/背单词同源),加上"断电不忘"的 TF 卡持久化,以及"AI 拆解提示词"(把一个模糊目标拆成可勾掉的小步骤)。落点是"管理 = 把模糊的变成具体的、能勾的、能存的条目"。
  • 技术与原理并重、提示词训练并重:本地部分讲"数据+状态+规则"和"内存 vs TF 卡";AI 部分讲"拆解提示词"(规定数量/格式/可勾掉)。
  • 与第 34 课(课程表)、第 36 课(背单词)强呼应:三者都是"数据+状态+规则"。与第 14 课(TF 卡断电不忘)直接衔接。

本课新增的核心知识点

  1. 任务 = 结构体(名称/截止/完成状态)。完成用布尔值(true/false)。
  2. 完成率 = 完成数 ÷ 总数,从一堆状态算出来。
  3. 内存 vs TF 卡:任务存内存断电丢,存 TF 卡断电还在;任务清单要长期用,必须存 SD。(第 14 课)
  4. AI 拆解提示词:把一个模糊目标拆成 3-6 个"具体、可勾掉"的小步骤。关键是"可勾掉"(能单独完成)+ 数量 + 格式 + 语言。
  5. "数据+状态+规则"复用:课程表/词表/任务清单同一套路。

必须避免的错误

  • 不要说"板子很聪明,会安排任务"。它是按你定义的规则排序、打勾;AI 只帮忙拆解,不替你做决定。
  • 不要把"内存 vs TF 卡"讲成大段存储技术——重点让学生理解"断电丢 / 断电还在"的概念和要不要存卡。
  • AI 拆解不要让它"决定任务内容"——AI 只把已有的模糊目标拆成步骤,学生自己定目标。
  • 密钥/云 API 本课只有"拆解"可选,若走板子联网接火山,密钥安全同前课;纯本地部分不需要密钥。

执行约束

  • FQBN:esp32:esp32:esp32s3:FlashSize=16M,PartitionScheme=app3M_fat9M_16MB,CDCOnBoot=cdc,PSRAM=opi
  • 依赖:TFT_eSPI、FT6336、SD_MMC、FS(存任务);font/ChineseFont16.h。
  • SD_MMC 6 线 setPins(38,40,39,41,48,47)(第 14 课);任务写入 todo.txt。
  • 中文用 drawUtf8(与第 34 课一致 util);本课主体不需要云密钥(本地数据+规则)。

课堂执行要点

  • 顺序建议:demo01(现象:列出任务、打勾、进度条)→ 三件套拆解 → 和课程表/背单词对照 → TF 卡断电不忘(演示拔电重开)→ AI 拆解提示词实验 → 改一个条件 → 下课前复述。
  • 灵魂追问 ①:"任务清单和课程表、背单词,本质一样吗?"——引出"数据+状态+规则"的复用。
  • 灵魂追问 ②:"断电后任务还在吗?想要它在那怎么办?"——引出"内存 vs TF 卡"。
  • 观察表先预测后实测。
  • 演示"断电不忘":学生列任务 → 拔电 → 重新开 → 看任务是否还在(存 SD 才有)。

待办与遗留

  • demo01_todo 源码已写(任务结构体 + 打勾 + TF 卡存取),尚未实板验证。吴老师实板验收重点:① 打勾触摸区域;② 完成率进度条;③ TF 卡读/写/断电不忘;④ 中文字库渲染。
  • AI 拆解(若走板子联网)需接火山 API,作为拓展;课堂也用"你电脑上的 AI 助手"做拆解示例即可。
  • 任务"截止时间"用 millis 相对计时还是真实时间,由教师定(演示用前者)。

第 46 课 · 任务清单

第 46 课 · 任务清单

屏幕上列出待办任务,点前面的方框就能打勾,顶部完成率进度条会跟着长,还剩几条一目了然。

46触摸状态TF卡