首页全部课程传感器应用第 4 课
4

走中间

利用距离传感器实现居中行驶

距离传感器差速控制比值计算条件循环

课程概述

本节课学习"走中间"子程序,让机器人利用左右两侧的距离传感器保持在道路中央行驶。这是自动驾驶的基础技能。

走中间子程序(完整版)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
// 定义子程序:走中间
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经验常数调整比值范围
偏差可调变量弯道时人为干预传感器读数
速度基础速度变量所有速度计算的基准

工作原理

当机器人偏左时,左侧距离变小、右侧距离变大,差数使右电机减速,从而向右校正。偏差变量可以在弯道时人为干预传感器的判断逻辑。注意:电机只接受整数,所以需要对浮点数进行四舍五入。

课后练习

测试一下你对本课内容的掌握程度

第 1 / 2 题

走中间使用了哪种传感器?