// 定义子程序:走中间 SUBROUTINE 走中间() // --- 1. 计算比值 (根据前方距离决定反应强度) --- 前距离 = SENSOR.距离传感器(前) 比值 = ((前距离 / 700) * 10) + 10 // --- 2. 计算差数 (根据左右距离计算速度调整量) --- 左距离 = SENSOR.距离传感器(左) 右距离 = SENSOR.距离传感器(右) 距离绝对差 = ABS((左距离 + 变量.偏差) - 右距离) 差数 = ROUND(距离绝对差 / 比值) // --- 3. 限制差数大小 --- IF (差数 > 变量.速度) THEN 差数 = 变量.速度 END IF // --- 4. 判断方向并控制电机 --- IF (左距离 > 右距离) THEN // 车偏右了,减小左轮速度向左转 MOTOR.左前轮.速度 = 变量.速度 - 差数 MOTOR.左后轮.速度 = 变量.速度 - 差数 MOTOR.右前轮.速度 = 变量.速度 MOTOR.右后轮.速度 = 变量.速度 ELSE // 车偏左或居中 MOTOR.右前轮.速度 = 变量.速度 - 差数 MOTOR.右后轮.速度 = 变量.速度 - 差数 MOTOR.左前轮.速度 = 变量.速度 MOTOR.左后轮.速度 = 变量.速度 END IF END SUBROUTINE
| 参数 | 值 | 说明 |
|---|---|---|
| 700 | 经验常数 | 除数,使走中间最稳定 |
| 10, 10 | 经验常数 | 调整比值范围 |
| 偏差 | 可调变量 | 弯道时人为干预传感器读数 |
| 速度 | 基础速度变量 | 所有速度计算的基准 |
测试一下你对本课内容的掌握程度