跳到主要内容

案例十三:小心别撞墙——超声波精准“停车”挑战赛

案例简介

前面 12 节课,我们学会了 PU 机器人的全部能力:走路、跳舞、唱歌、变灯光、感知距离、表达情绪……现在,是时候来一场真正的机器人竞赛了!

比赛规则很简单:在赛道前方放置一面"墙壁"(障碍物),所有机器人在同一起跑线出发,朝墙壁直线前进,在撞上之前停下来。谁的机器人离墙壁最近且没有碰到墙壁,谁就获胜!

听起来简单?但要真正做到"近而不碰",需要精准控制超声波传感器的距离判断、行走速度和停车时机——这就是本课的核心挑战。学生将综合运用超声波传感器、动作模块、循环模块、变量模块,编写"精准停车"程序,通过多轮比赛不断调优参数,在竞赛中体验工程调优的乐趣。

教学准备

名称图示/说明
PU 机器人套装
编程设备(电脑)每组一台
比赛赛道宽 1 米、长 2 米以上的平整区域,用胶带标出起跑线
"墙壁"(障碍物)坚硬平整的纸箱/木板,高度超过机器人头部,宽度覆盖赛道
卷尺用于测量最终停车距离,精确到毫米
计时器用于记录每组的完成时间
打印"比赛记录表"(每组一份)
奖品/奖状冠亚季军奖励(可选)

PU 机器人双足步行特性回顾

特性说明对停车挑战的影响
步行方式6 自由度舵机驱动双足交替迈步每一步跨出后必须落地站稳,无法"半步悬停"
停止机制舵机停止运动 → 保持当前站立姿态停止响应快,没有"滑行",但步态中途无法中断
速度可调通过调整步幅(动作幅度参数)和步频(循环延时)控制步幅小→每步距离短→更容易精准停,但走得慢

教师提示:PU 机器人是 OTTO 类双足步行机器人,不是轮式小车。轮式车有"刹车惯性"——车轮停转后车身还会往前滑一段距离。但双足机器人没有滑行惯性——舵机一停就站住了。双足停车的真正难点在于步态时机:你无法精确控制"迈半步",只能控制"迈完这步后不再迈下一步"。

比赛规则

基本规则

规则项说明
目标机器人从起跑线出发直线前进,停在墙壁前,离墙壁最近且不触碰者获胜
赛道平整地面,起跑线距墙壁约 1.5 米(可根据场地调整)
出发按下 A 键后启动,机器人自动前进
有效成绩机器人没有碰到墙壁的前提下,传感器到墙壁的最短距离
犯规判定机器人碰到墙壁 = 碰撞犯规,该轮成绩无效
比赛轮次根据实际时长及学生活跃度灵活调整,建议练习赛两轮,正式比赛一轮

得分规则

成绩得分
距离墙壁 ≤ 1cm 且未触碰⭐⭐⭐ 满分(完美停车!)
1cm < 距离 ≤ 3cm⭐⭐ 优秀
3cm < 距离 ≤ 5cm⭐ 良好
5cm < 距离 ≤ 10cm合格
距离 > 10cm太远了,继续加油
碰到墙壁犯规,该轮 0 分

特殊情况 如果两位同学编写的代码使PU在完全相同的距离处停止,那么获胜者是最先停止的机器人.

课程目标

  1. 综合运用超声波传感器、动作模块、循环模块、变量模块、编写"精准停车"程序;

  2. 在竞赛情境中体验工程调优的完整流程——测试→分析→修改→再测试,培养科学实验思维;

  3. 培养竞技精神与团队协作能力。

课程引入

同学们,今天不是上课——是比赛!

规则只有一句话:让你的机器人走到墙壁面前,停下来,离墙壁越近越好,但绝对不能撞上去!

你可能觉得这很容易——"不就是一直走,看到墙就停嘛!"但你想想,机器人收到"停止"指令到真正停下来,中间有一个过程——就像你跑步时听到哨声,身体还会往前冲几步才停下来。这个"往前冲"的距离,就是机器人的"制动惯性"。

所以真正的挑战是:你需要在机器人还没到墙的时候就下达停止指令,留出"刹车距离"。但留太多了就离墙太远(输),留太少了就撞墙(犯规)。

这个"刚刚好"的距离是多少?没有标准答案——你的机器人和你自己去找!

学习探究

第一阶段:分析挑战——双足停车为什么难?

  1. 讨论:双足 vs 轮式,停车有什么不同?

    轮式小车双足 OTTO 机器人
    行进方式车轮持续滚动双足交替迈步
    停止方式电机停转,靠摩擦减速舵机停转,直接站住
    有滑行吗?有,车轮有惯性会滑一段没有,舵机停就站住了
    精准停车难点刹车时机(留出滑行余量)步态时机(最后一步跨多远不可控)
    每次结果一样吗?比较稳定有随机偏差
    • 核心结论:双足机器人没有"滑行刹车"问题,但有一个轮式车没有的问题——你无法精确控制每一步跨多远。同样的"前进"指令,每步实际距离可能有 ±0.5cm 的偏差。
  2. 停车时机分析

关键发现:误差大小取决于"发出停止指令时,机器人处于步态的哪个阶段"

  • 如果刚好在一步的开始被检测到 → 这一整步都要跨完 → 误差大
  • 如果刚好在一步的末尾被检测到 → 只多走一点点 → 误差小
  • 这是随机的,无法精确控制!
  1. 降低误差的策略
策略原理效果
小步幅行走每步跨得短,即使多走一步,误差也小⭐⭐⭐ 最有效
低步频行走每步之间间隔长,给传感器更多检测机会⭐⭐ 有效
提高检测频率减少每次循环的延时,更快发现"该停了"⭐⭐ 有效
多次取最优跑多轮,取最好成绩⭐ 治标不治本

MakeCode 编程

程序链接:https://makecode.microbit.org/_TRMWvyP1AXsM

此程序仅为最简单示例,可通过编程继续优化效果

第四阶段:正式比赛

  1. 赛前准备
  • 各组确认最终参数(练习赛中表现最稳定的一组)
  • 机器人放置在起跑线后方,朝向墙壁,确保步行方向对准
  • 裁判(教师)用卷尺确认起跑线到墙壁的距离一致
  1. 正式赛流程(每组 3 轮)

    裁判宣布"准备" → 各组放置机器人

    裁判宣布"3、2、1、出发!" → 各组同时按下 A 键

    机器人步行前进……(其他同学围观加油)

    机器人停车(或撞墙)

    裁判用卷尺测量:机器人头部到墙壁的距离(精确到毫米)

    记录成绩 → 下一组

赛后分析

  • 公布排名,颁发奖状
  • 冠军组分享:你们的停车阈值和步幅设的是多少?调参过程中最关键的发现是什么?
  • 犯规组反思:为什么会撞墙?如果再来一次,你会改哪个参数?
  • 全班讨论:为什么同一个参数,有时候停得好,有时候停得差?

课后延伸

  • 挑战一:"连续挑战赛"——完成一次停车后,自动后退回到起跑线,再前进停第二次。连续 3 次都停在 3cm 以内算"大师级"!提示:后退距离用固定延时控制;

  • 挑战二:"跟随挑战"——让机器人跟随障碍物保持固定距离(如 5cm)。障碍物前进,机器人跟着前进;障碍物停下,机器人停下;障碍物后退,机器人也后退。提示:如果距离 > 5cm 就前进,< 5cm 就后退,= 5cm 就停止;