单元五 · 反应测试有方法
第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 秒再测下一轮。
想一想:目前程序循环运行时,理论上可测多少次?每次测试之间有没有固定规律?若要更难预测,可以怎么改?
弄清以上要点后,在下方 MixGo MINI 中按四个示例依次载入:产生事件并感知输入 → 计算反应时间 → 显示反应时间 → 随机时间再测。
四、动手体验 · MixGo MINI
本课共 4 个编程示例,请用下拉切换后分别载入体验。
事件产生并感知用户输入
正在载入 MINI 编程环境
正在载入 MixGo MINI 图形化仿真编程环境…
五、课堂总结
- 在编程实现的过程中,需要清晰梳理功能目标、硬件支持情况。
- 对于复杂的控制系统,可以采用拆分功能、分步解决的方式简化实现难度,逐步实现目标程序。
六、拓展提升
- 人在应对有规律的反应刺激时会逐渐适应。若要更好训练反应速度,反应测试仪应随机给出事件。可在动手体验的「随机时间反应」示例中练习,并尝试自己调整随机范围。
测评
对照本课学习目标作答;选出后点「检查」。答错会显示简短说明。
-
用「输入—计算—输出」描述反应测试仪的工作过程,下列哪项最合适?
-
计算反应时间时,正确做法是:
-
实现较复杂的控制系统时,更合理的做法是:
本节小结
回顾:组成与工作过程示意,以及「刺激 → 感知按键 → 计时 → 显示」的分步实现。完成下方编程体验与测评。