借助孩子们已知的故事叙事和角色发展的知识,协助对AI的新学习,是一个非常好的方法。
项目的逐步指南
第 1 步:理解
工作原理?
在这个项目中,您将训练一个机器学习(machine learing,缩写ML)模型,用来识别您移动一个柔软玩具的不同方式,而这个玩具佩戴着BBC micro:bit。 您需要选择一些动作来帮助您复述一个故事。
您将把这个模型与MakeCode程序结合起来,让micro:bit识别到上面这些动作时,能够播放声音或显示图像。
什么是机器学习?
机器学习(machine learing,缩写ML是一种人工智能(artificial intelligence,缩写AI),让计算机从数据中学习并基于数据做出决策。
ML模型由人类训练,来帮助人类做决策,例如通过您移动micro:bit的差异来识别您当时做的是什么动作。
我需要做什么?
AI系统需要人类来设计、搭建、测试和使用。
首先,您需要决定是用我们提供的预设动作,还是要为了您的故事选择一些不同的动作。 我们的故事是关于一只叫露西的熊,她想成为一名体操运动员,所以我们选择了符合这个主题的动作:跳跃、翻滚和睡觉。
您将使用micro:bit和micro:bit CreateAI网站,收集数据来训练一个ML模型,测试它,改进它并将它与计算机代码组合在一起,制作一个使用了AI技术的讲故事设备。
我们还包含了一些评估问题,用来让这个AI项目与使用普通算法和代码的项目进行比较。
第2步:制作
所需材料
- 一个V2版本的micro:bit,USB数据线,装有2节AAA电池的电池组
- 一台电脑(例如台式机,笔记本电脑或者Chromebook),必须能访问micro:bit CreateAI 网站,可以使用Chrome或者Edge网页浏览器
- 如果您的电脑没有自带蓝牙,您需要另外的一个V2版本的micro:bit。
- 准备一个柔软玩具、一条带子和一个固定器,或者找到另一种方法将micro:bit固定在您的玩具上(例如,柔性手工毛根或弹力带)。
- 您或许会从我们的micro:bit CreateAI 教学提示中获益
收集数据样本
当您在micro:bit CreateAI中打开下面链接里的项目,您会看到我们已经提供了一些推荐的柔软玩具的动作(跳跃、翻滚和睡觉)及其数据样本:
您将使用micro:bit的运动感应器,也就是加速计来为您的柔软玩具动作添加样本。
jumping
rolling
sleeping
在micro:bit CreateAI中,点击“连接“按钮来连上您用来收集数据的micro:bit,然后按照说明来操作。
将收集数据用的micro:bit固定到您的柔软玩具上。 非常重要的一点是,您在录制接下来的所有样本时,要让micro:bit固定在玩具的同一位置上。 如果您想使用项目中现成的样本,将micro:bit固定在柔软玩具的脖子上并面向前方,如下图所示。 如果您想把micro:bit装在玩具的不同地方,您需要重新采集所有的行为样本,替换掉所有预存的样本。

您可以为跳跃、翻滚和睡觉亲自添加动作数据样本。 每次点击一个动作,然后点击它旁边的“record”按钮,来为这个动作记录样本。
如果您搞错了什么,您可以删除您不想要的样本。 您也可以按下micro:bit的按钮B来启动录制。
检查数据样本:看看动作“jumping”里的所有样本是不是看起来差不多? 看看动作“rolling”里的样本是不是都和动作“jumping”和动作“sleeping”的不同?
训练和测试模型
点击“训练模型”按钮来训练模型,然后测试它。
上下弹一下您的柔软玩具,看看推测动作是否为‘jumping’。 将柔软玩具放倒来模仿睡觉,看看推测动作是否变成了”sleeping“。 看一下您将软玩具翻转时,micro:bit是否检测到动作‘rolling’。
找别人来做移动这个玩具,看看检测动作是否也是正确。
改良您的模型
绝大部分的模型可以通过给与更多数据来得到改进。 如果需要改进模型来识别您的动作,请点击“← 编辑数据样本”。
您可以删除您认为不合适的数据样本(因为这些样本与同一动作下的其他样本差异巨大)。 您也可以添加从您自己或别人获取到的更多样本。
思考一下您的柔软玩具睡觉(动作”sleep“)都有什么姿势,您会发现不同姿势下,样本里的x、y和z的线的上下顺序不一样,这是因为固定在玩具身上的micro:bit的角度发生了变化。
再次训练模型然后测试它。
将模型和代码传到您的micro:bit里
在micro:bit CreateAI里点击“在MakeCode中编辑”,从而在MakeCode编辑器里查看项目代码。
您可以像在任意micro:bit MakeCode 项目中一样修改代码,或者只是试试它。
用USB数据线连接计算机和micro:bit,然后在MakeCode窗口里点击“下载”按钮,按照指示来讲您的AI模型和代码快传输到micro:bit上。
拔掉micro:bit,连接上电池组,把它固定到您的柔软玩具上并进行测试。
代码块如何工作
ML模型判断您的玩具在做什么动作时,会触发对应的“on ML ... start”代码块。 根据它对于玩具正在做什么运动的判断,micro:bit发出不同的声音,LED显示屏显示不同的图标。
ML模型判断您结束了当前动作(比如说停止跳跃),就会触发“on ML ... stop”代码块。 每个代码块里的代码会清除屏幕显示并停止播放声音。
额外的代码块”on ML unknown start“会在模型不确定玩具在做什么动作时,清除屏幕显示。
评估
比较我们这个AI故事伙伴和感官玩具项目。感官玩具项目也是用了加速计来响应不同的动作,但它没有使用ML(机器学习)或任何类型的AI(人工智能)。
- 感官玩具能对什么类型的运动或动作做出反应?
- AI故事伙伴可以做出反应的运动或动作,相对于感官玩具有什么不同? 这些动作是更简单还是更复杂?
- 您还想让ML模型识别哪些动作呢?
- 哪个项目能更好地帮您讲述您的故事?
第 3 步: 拓展
- 和您的AI故事伙伴尝试别的不同动作,并改变动作来适应别的著名民间故事或童话。
- 用”show LEDs“代码块替代”show icons“代码块,让LED显示屏为您的故事显示特定的图标。 您可以使用LED设计表来设计自定义图标。
- 如果您有一个班级吉祥物,使用CreateAI训练吉祥物以回应学生的动作,使它能对学生有反应,例如给予表扬或奖励班级积分。
This content is published under a Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) licence.