SMARTWATCH 学习手册有 C 基础 · 嵌入式从零开始
支线四 / 数据、训练与部署 / 学习路线

支线四:从传感器数据到 STM32 模型部署

以活动识别贯穿数据、训练、评估、量化和部署。Python 语法单独补齐,再接入可运行的小模型实验,关键词和睡眠各自展开。

12 篇,按顺序展开

先准备什么

主线传感器、采样、窗口与 FreeRTOS;Python 篇从语言差异讲起。

先从能看见结果的小实验开始,遇到问题再增加代码。已学过的采样、协议与任务知识通过链接接回,项目中尚未实现的部分会明确标注。

按这条顺序学习

00 / 12 篇

Python 语法入门:先把数据读进程序

沿着已有 C 基础,补上缩进、列表、切片、模块和对象。最后读两行采样记录,为后面的数据处理准备最小语言工具。

01 / 12 篇

读到了加速度,怎样知道人在走路

从已经熟悉的传感器波形开始,先尝试规则判断,再认识带标签的数据、模型、训练与推理。所有术语都对应当前要解决的动作识别问题。

02 / 12 篇

怎样准备一份能用于训练的数据

先把数据来源、时间和动作答案保存清楚,再划分训练、验证和测试。每条规则都对应一种会把结果变得不可信的具体情况。

03 / 12 篇

一个点、一段窗口和一批数据有什么区别

从一张六轴表开始,用小数组看清下标,再扩展到 512 点。最后解释输入形状、滑动窗口和归一化为什么必须与模型一致。

04 / 12 篇

训练在改变什么:从一个分数手算起

先用两个特征计算判断分数,再看预测错误如何推动参数变化。损失、梯度和学习率都通过可计算的小例子引入。

05 / 12 篇

亲手训练第一个小模型

让数据读取、前向、更新和评估都能实际运行。先用人工数据检查程序,再把真实记录放进同一条流程,并保留每次实验的依据。

06 / 12 篇

为什么要让一个小窗口沿波形移动

全连接小模型跑通后,再看动作的局部变化怎样被重复利用。从一次小卷积手算起,逐步认识一维卷积、通道和池化。

07 / 12 篇

训练越久,为什么新数据可能反而更差

围绕具体错误理解过拟合、类别不均衡和独立测试。把一个总分拆成每类结果,再决定下一步该补数据还是改模型。

08 / 12 篇

模型文件怎样变成 STM32 能执行的计算

先保存模型结构与参数,再解释量化为什么能减少存储。最后使用 ST 工具做分析、验证和代码导出,每一步都有需要保留的产物。

09 / 12 篇

接回手表:一份窗口怎样走到分类结果

沿真实调用路径读当前活动识别,把窗口、预处理、模型接口和应用更新连起来。完成后应能指出每次推理究竟用了哪份数据。

10 / 12 篇

声音拓展:波形怎样变成“救命”这个词

复用训练、评估和部署流程,重点补声音输入与特征变换。先看时域与频域,再逐步解释项目为何准备 40×32 个特征。

11 / 12 篇

睡眠拓展:为什么一次判断需要更长时间

从三十秒记录的统计特征出发,解释五个窗口怎样组成输入,以及实时运行时的时间对齐与数据缺失为什么重要。

怎样接回项目

阅读 当前模块说明,把本支线的小实验与现有数据路径逐项对应。示例按页内说明放置,不用整段替换生产工程。

练习与资料

所有样式、图解与交互随教程提供;外部官方资料和项目源码链接需要联网。配套实验见 tutorial/examples/branches 与 tutorial/examples/flutter_watch。