单元五 · 反应测试有方法

第18课 实现反应测试仪

任务场景
任务场景:实现反应测试仪

一、学习目标

  • 了解反应测试仪的工作原理。
  • 能比较熟练地绘制算法流程图。
  • 通过制作实现反应测试仪,进一步体会设计开发过程中逐步实现与系统整合。

二、情境导入

我们已经了解到锻炼反应力对日常生活、学习、工作和运动等方面都有很多好处。

为了锻炼反应能力,今天我们来制作这台反应测试仪,一起弄清它的工作流程。

三、核心讲解

本课学习路径:

1明确基本组成与工作过程
2分步完成各项功能

1.明确反应测试仪的基本组成与工作过程

先回顾上一课的设计:明确功能、硬件支持,再用「输入—计算—输出」简述工作过程。

分析表(示例)
分析项目描述
任务主题设计「反应测试仪」
系统的功能1.提供反应刺激;2.测量反应时间;3.记录反应时间;4.反馈反应时间;5.其他额外功能
主要硬件支持1.蜂鸣器、RGB 灯、LED 灯阵等;2.内置时钟;3.CPU 与内存;4.LED 灯阵显示;5.其他硬件
工作过程简要描述发出刺激并开始计时,等待传感器获取人的反应(输入)→ 计算反应时间(计算)→ 在显示屏上呈现结果(输出)

(1)反应测试仪系统工作过程

输入

发出新刺激;系统开始记录时间;等待按钮被按下

计算

计算检测到的反应时间;记录反应时间

输出

呈现反应时间(显示等)

(2)人的反应过程

输入

外界刺激(如灯光亮起)

计算

根据测试要求给出反应指令

输出

执行反应指令(如按下按钮)

想一想:系统侧的「输入」和人侧的「输入」分别指什么?它们怎样对上?

2.分步完成反应测试仪的各项功能

复杂系统可拆成小功能,逐步实现后再整合。

  • 提供刺激:按程序逻辑下达发光指令,点亮 MixGo Mini 的 L1 灯,让测试者看见灯光。
  • 获取输入:测试者看到灯光后按下按钮;用按键传感器读取是否按下。
  • 计算反应时间:记下「刺激出现时刻」与「按键时刻」,二者相减得到反应时间。
  • 显示结果:用「显示字符串」等积木,把时间差显示在 LED 灯阵上。
计时流程:输入事件产生时间 → 等待反应输入 → 接收到人的反应后,记录时间并计算差值。
  1. 亮灯并记录「亮灯时刻」。
  2. 循环等待,直到按键被按下。
  3. 灭灯,记录「按下时刻」,计算差值并显示。
  4. 放入循环后可反复测试;显示结果后可间隔约 1 秒再测下一轮。

想一想:目前程序循环运行时,理论上可测多少次?每次测试之间有没有固定规律?若要更难预测,可以怎么改?

弄清以上要点后,在下方 MixGo MINI 中按四个示例依次载入:产生事件并感知输入 → 计算反应时间 → 显示反应时间 → 随机时间再测。

四、动手体验 · MixGo MINI

本课共 4 个编程示例,请用下拉切换后分别载入体验。

事件产生并感知用户输入

五、课堂总结

  • 在编程实现的过程中,需要清晰梳理功能目标、硬件支持情况。
  • 对于复杂的控制系统,可以采用拆分功能、分步解决的方式简化实现难度,逐步实现目标程序。

六、拓展提升

  • 人在应对有规律的反应刺激时会逐渐适应。若要更好训练反应速度,反应测试仪应随机给出事件。可在动手体验的「随机时间反应」示例中练习,并尝试自己调整随机范围。

测评

对照本课学习目标作答;选出后点「检查」。答错会显示简短说明。

  1. 用「输入—计算—输出」描述反应测试仪的工作过程,下列哪项最合适?

  2. 计算反应时间时,正确做法是:

  3. 实现较复杂的控制系统时,更合理的做法是:

本节小结

回顾:组成与工作过程示意,以及「刺激 → 感知按键 → 计时 → 显示」的分步实现。完成下方编程体验与测评。