体验用micro:bit CreateAI构建项目的绝佳选择。 制作一个智能的运动计时器,用来告诉您多长时间在运动着或者呆着不动。
项目的逐步指南
第 1 步:理解
工作原理?
在这个项目中,您将训练一个机器学习(machine learing,缩写ML)模型,用来识别您是否正在运动。
您将把这个模型与MakeCode程序结合起来,制作一个锻炼计时器,并将这个项目放到您的BBC micro:bit上。 只需穿戴上micro:bit,就能对您运动和不是运动的时间进行计时。
按下按钮A来查看您已经活动了多少秒,按下按钮B来查看您呆着不动了多久。
什么是机器学习?
机器学习(machine learing,缩写ML是一种人工智能(artificial intelligence,缩写AI),让计算机从数据中学习并基于数据做出决策。
ML模型由人类训练,来帮助人类做决策,例如通过您移动micro:bit的差异来识别您当时做的是什么动作。
我需要做什么?
AI系统需要人类来设计、搭建、测试和使用。 您将收集数据来训练一个ML模型,测试它,改进它并将它与计算机代码组合在一起,制作出一个使用了AI的智能设备。 您将使用一个micro:bit和micro:bit CreateAI网站来完成上面的工作。
第2步:制作
所需材料
- 一个V2版本的micro:bit,USB数据线,装有2节AAA电池的电池组
- 一台电脑(例如台式机,笔记本电脑或者Chromebook),必须能访问micro:bit CreateAI 网站,可以使用Chrome或者Edge网页浏览器
- 如果您的电脑没有自带蓝牙,您需要另外的一个V2版本的micro:bit。
- 准备一条带子和一个固定器,或者找到另一种方法将micro:bit固定在您手腕上(例如,柔性手工毛根或弹力带)。
- 您或许会从我们的micro:bit CreateAI 教学提示中获益
收集数据样本
当您在micro:bit CreateAI中打开下面链接里的项目,您会看到我们已经提供了“运动”和“没有运动”的一些数据样本:
exercising
not exercising
您将使用micro:bit的运动感应器或加速计来添加您自己的动作样本。
在micro:bit CreateAI中,点击“连接“按钮来连上您用来收集数据的micro:bit,然后按照说明来操作。
将收集数据用的micro:bit绑到您的手腕上。 选出一些通常是运动一部分的动作,例如原地跑步、开合跳或步行。 点击第一个动作“excersing”然后点击"录制”来记录您自己的数据样本。 如果您搞错了什么,您可以删除您不想要的样本。 您也可以按下micro:bit的按钮B来启动录制。
对动作“not exercising”也做类似的录制,来确保您收集了运动和没在运动两个不同方向的样本。
检查数据样本:看看动作“excercising”里的样本是不是看起来都像您在运动? 看看动作“not excercising”里的样本看起来是不是都像您呆着没动?
训练和测试模型
点击“训练模型”按钮来训练模型,然后测试它。 尝试四周移动,看看推测动作是否为“exercising”。 保持静止不动,看看推测动作是否变成了“not exercising”。将您的micro:bit给另一个人戴上做上述测试,看看结果是否也一样。
改良您的模型
绝大部分的模型可以通过给与更多数据来得到改进。 如果需要改进模型来识别您的动作,请点击“← 编辑数据样本”。
您可以删除您认为不合适的数据样本(因为这些样本与同一动作下的其他样本差异巨大),也可以添加从您自己或别人获取到的更多样本。
再次训练模型然后测试它。
将模型和代码传到您的micro:bit里
在micro:bit CreateAI里点击“在MakeCode中编辑”,从而在MakeCode编辑器里查看项目代码。
您可以像在任意micro:bit MakeCode 项目中一样修改代码,或者只是试试它。 用USB数据线连接计算机和micro:bit,然后在MakeCode窗口里点击“下载”按钮,按照指示来讲您的AI模型和代码快传输到micro:bit上。 拔掉micro:bit,连接上电池组,穿戴上它并进行测试。
- 按下按钮A来查看您已经运动了多少秒。
- 按下按钮B来查看您呆着不动了多少秒。
- 按下micro:bit背后的重置按钮或者断开然后重连电池组,就能重置计时器。
代码块如何工作
这段代码使用两个变量来分别跟踪您处于运动或者静止的时间。 程序启动的时候,会将这两个计时器变量都设成0.
ML模型判断您处于运动或者静止时,会触发对应的“on ML ... start”代码块。 根据它对于您是否在运动的判断,这些代码块会在micro:bit的LED显示屏上显示不同的图标。
ML模型判断您结束了当前动作(比如说停止运动,不再静止),就会触发“on ML ... stop”代码块。 每个代码块里的代码都清空屏幕显示,然后,根据结束的动作类型将刚才动作的持续时间加到对应的计时器变量里。
“on button ... pressed”代码块里的代码把对应的变量的值显示出来,也就是您运动了多久和呆着不动多久。 计时器以毫秒(千分之一秒)来计时,因此以秒来显示这个时间前要将它除以1000。
评估
它测量您锻炼或休息了多长时间的准确度如何? 它对不同的人也同样工作正常吗?
使用下面这三个步骤,来特使计时器是否工作正常:
- 按下重置按钮。
- 运动30秒。
- 按下按钮A,您应该看到屏幕上滚动显示接近30的一个数字。
- 如果您想改善模型,点击MakeCode编辑器左上方的<箭头,添加更多的数据样本并重新训练模型。
比较我们这个简易AI运动计时器和没有使用ML(机器学习)的计步器项目:
- 如何使用ML来创建一个更有用的项目?
- 我们创建有用的项目中是否总需要AI/ML呢?
第 3 步: 拓展
- 当模型没法识别您的动作时,试试添加那些显示“?”的代码块看看。
- 添加声音代码块,让程序检测到您运动与否的时候,发出声音提示。
- 试一下AI 运动计时器项目,训练您的micro:bit来检测特定的运动或活动,并为之计时。
This content is published under a Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) licence.