Session 345 minutes
第3课:分支结构(如果-那么-否则)与碰撞检测
Learning objective: 让机器人做出聪明的决定:碰到墙就后退,碰到能量就加分。
Theory & practice
🧠 第3课:逻辑思维——如果、那么、否则
🎯 学习目标
完成本课后,你将能够:
- 理解编程中条件的“真”和“假”。
- 区分
如果 ... 那么和如果 ... 那么 ... 否则。 - 用传感器让角色或机器人做出判断。
- 把条件和循环结合,编写聪明的程序。
1. 聪明的机器人会做决定
聪明的机器人不会只朝一个方向走,它需要观察周围环境并选择合适的行动。
例如:
- 如果 前方有障碍物,那么 机器人停下。
- 如果 天黑了,那么 打开灯。
- 如果 按下右方向键,那么 角色向右移动。
- 否则——没有障碍物时,机器人继续前进。
这种思考方式叫做条件思维。
如果条件成立 → 执行动作。
2. 真条件与假条件
条件只有两种结果:
| 结果 | 含义 |
|---|---|
真 | 执行里面的积木 |
假 | 跳过,或执行 否则 分支 |
PictoBlox 中常见的条件:
text
碰到 [墙壁]?
按下 [右方向键] 键?
距离小于 15 厘米?
分数大于 10?
颜色红色碰到蓝色?条件积木通常是六边形,放在 如果 积木的空格里。
3. 如果 ... 那么 积木
这个积木只在条件为真时执行动作。
text
如果 <碰到 [墙壁]?> 那么
播放声音 [警报]
移动 -10 步如果角色没有碰到墙壁,里面的积木就不会执行。
Mục Trọng Tâm
例子:键盘控制
text
当绿旗被点击
重复执行
如果 <按下 [右方向键] 键?> 那么
将 x 坐标增加 5重复执行 循环让程序每秒检查键盘很多次。
4. 如果 ... 那么 ... 否则 积木
这个积木让程序在两个动作中选择一个。
text
如果 <碰到 [墙壁]?> 那么
播放声音 [警报]
移动 -10 步
右转 90 度
否则
移动 5 步程序这样工作:
- 1检查角色是否碰到墙壁。
- 2如果碰到,角色发出警报、后退并转向。
- 3如果没碰到,角色继续前进。
| 条件 | 动作 |
|---|---|
| 碰到墙壁 | 警报、后退并转向 |
| 没碰到墙壁 | 继续前进 |
5. 条件与传感器结合
机器人可以用超声波传感器测量到障碍物的距离。
text
当绿旗被点击
重复执行
将 [距离] 设为 [超声波传感器数值]
如果 <距离 小于 15> 那么
停止电机
播放声音 [警报]
后退 1 秒
右转 90 度
否则
以速度 5 直行在这个程序中:
距离 < 15是条件。- 障碍物近于 15 厘米时,机器人避开它。
- 前方安全时,机器人继续前进。
⚠️ 用真实机器人测试时,请使用低速,并把机器人放在宽阔平坦的地面上。
6. 组合多个条件
有时机器人需要同时检查多个信息。
Mục Trọng Tâm
与 条件
两个条件都必须为真。
text
如果 <距离 小于 15 与 速度 大于 0> 那么
停止电机Mục Trọng Tâm
或 条件
只要其中一个条件为真。
text
如果 <碰到边缘 或 碰到红色> 那么
掉头Mục Trọng Tâm
不成立 条件
把条件的结果反过来。
text
如果 <不成立 碰到 [墙壁]> 那么
继续移动7. 练习:会找路的角色
Mục Trọng Tâm
任务
让角色:
- 1不停地向前移动。
- 2检查是否碰到墙壁。
- 3碰到墙壁时,后退并改变方向。
- 4没碰到时,继续前进。
Mục Trọng Tâm
参考程序
text
当绿旗被点击
将 [速度] 设为 [5]
重复执行
如果 <碰到 [墙壁]?> 那么
播放声音 [警报]
移动 -10 步
右转 90 度
等待 0.2 秒
否则
移动 [速度] 步试着把转动角度从 90 度 改成 45 度,观察角色的路线有什么不同。
8. 常见错误
Mục Trọng Tâm
没有把条件放进循环
如果只检查一次,机器人就不会持续观察环境。
应该这样:
text
重复执行
如果 <条件> 那么
执行动作Mục Trọng Tâm
弄错比较符号
text
距离 小于 15表示障碍物很近。
text
距离 大于 15表示前方还有空间。
Mục Trọng Tâm
机器人一直原地打转
遇到障碍物后,机器人要先后退,再转向:
text
停止电机
后退
右转🧩 挑战
制作一个有三级反应的机器人:
text
如果 <距离 小于 10> 那么
停下并后退
否则
如果 <距离 小于 25> 那么
减速
否则
正常行驶机器人将会:
- 障碍物太近时停下。
- 接近障碍物时减速。
- 前方安全时正常行驶。
✅ 记住
- 条件只有
真或假两种结果。 如果 ... 那么在条件为真时执行动作。如果 ... 那么 ... 否则在两个动作中选择一个。- 循环让机器人持续检查条件。
- 传感器为机器人提供做决定所需的信息。
- 改变方向前,机器人应先停下或后退。
Mục Trọng Tâm
快问快答
- 1编程中的条件有哪些结果?
- 2
如果 ... 那么和如果 ... 那么 ... 否则有什么不同? - 3为什么要把传感器检测放在循环里?
- 4障碍物比安全距离还近时,机器人应该怎么做?