Movement 底盘移动
Movement 类积木把两个驱动马达当成一个底盘控制,是 FLL 机器人场地行进的主力积木。
先设置移动马达
任何 Movement 积木生效前,必须先声明哪两个马达是驱动轮:
wordblocks
当程序启动时
设置移动马达 [A+E] ← 左轮 A,右轮 E
设置移动速度 [50] %
设置 1 圈移动距离 [17.5] cm ← 可选:标定轮周长后可用 cm 移动- 端口顺序有讲究:第一个是左轮,第二个是右轮。接反了机器人会前后颠倒。
- 两个驱动马达必须同型号(同为大马达或同为中马达),否则转速特性不一致。
- "1 圈移动距离"= 轮子周长(直径 x 3.14159),这是直驱情形;驱动轮若经过齿轮组,还要按齿轮比换算。标定后,"移动 20 cm"才准确。
每个程序开头都放这三块
养成习惯:FLL 每个任务程序的开头都是同样的初始化段。之后学了 My Blocks 可以封装成一块。
直行与后退
wordblocks
移动 [前进] [2] 圈
移动 [后退] [20] cm
移动 [前进] [360] 度
移动 [前进] [1] 秒单位可选圈/度/cm/秒。用圈或 cm,不要用秒:电量变化会让"按时间跑"的距离飘移,编码器计数不受电量影响(打滑造成的误差仍然存在,所以速度也别贪快)。
转向 Steering
Movement 的转向参数是一个 -100 到 100 的数:
| steering 值 | 效果 |
|---|---|
| 0 | 直行 |
| 100 | 原地右转(两轮反向) |
| -100 | 原地左转 |
| 50 | 右轮不动,绕右轮转(枢轴转) |
| 1~30 | 大弧线右偏 |
wordblocks
移动 [转向 100] [180] 度 ← 原地右转(度数是轮子转的度数,不是机身角度!)
移动 [转向 30] [3] 圈 ← 走一条右弧线轮子度数 ≠ 机身角度
"转向 100 移动 180 度"里的 180 度是轮子转的度数。机身实际转多少度取决于轮距和轮径,需要实测标定,或者直接用陀螺仪转弯——后者才是 FLL 的正解。
持续移动(不阻塞)
wordblocks
开始移动 [前进]
等待到 <颜色传感器 [C] 颜色 = [黑色]>
停止移动"开始移动"不阻塞,配合传感器条件停止,是"走到黑线停"这类动作的标准写法。
速度怎么选
- 跑长直线:70-100%,省时间。
- 精细动作(对准模型、推杆):20-40%。
- 速度太快会打滑,打滑 = 编码器不准 = 位置丢失。地毯和比赛垫上都要实测。
练习
- 标定你的轮周长:让机器人"移动 10 圈",量实际距离,算出每圈 cm 数填进设置。
- 用 steering 50 让机器人绕右轮画一个 90 度圆弧。
- 写"前进直到距离传感器 < 10 cm 停止"(学完距离传感器再来做)。
下一课:事件 Events。