Appearance
3.7 视觉巡线车
3.7.1 造型介绍
这款 AI 视觉巡线车是积木智能行驶小车,车头装有 WonderLens 视觉摄像头充当 “眼睛”,左右车轮分别搭载 360° 舵机实现差速驱动。整体积木组装简单,结构拆分清晰,方便我们接线调试。当摄像头实时捕捉黑色椭圆轨迹、读取黑线偏移位置信息后,程序自动调节双舵机转速修正车身姿态,让小车沿着轨迹自动平稳巡线行驶,是能直观感受 AI 视觉轨迹检测与闭环差速控制的智能实训小作品。

3.7.2 学习目标
学会使用 WonderLens 模块开启视觉巡线功能,掌握黑线坐标、偏移量数据读取方法。
熟练编写双 360° 舵机差速调速程序,通过调整左右舵机转速完成车身方向修正。
掌握闭环巡线逻辑编程,实现小车持续稳定沿黑色椭圆轨迹自主行驶。
搭建完整小车造型并调试巡线算法,具备简易 AI 视觉轨迹跟随类作品制作能力。
3.7.3 积木搭建
3.7.4 设备接线
将 WonderLens 视觉模块接线插入 ESP32 主控器 接口;
将左侧 360° 积木舵机接线插入 ESP32 主控器 接口,舵机 接线要插入S1的 引脚处;
将右侧 360° 积木舵机接线插入 ESP32 主控器 接口,舵机 接线要插入S2的 引脚处。
示意图:

3.7.5 程序编写
(1) 程序原理图

(2) 添加扩展库
- 在 “扩展” 中选择”传感器“添加 “WonderLens” 。

(3) 核心代码块解析
| 指令块 | 所在类别 | 功能说明 |
![]() | 对比左侧数值与自定义数值,输出大于判断的布尔结果 | |
| 创建自定义变量用于存储数据 | ||
![]() | 读取自定义变量内存储的数据 | |
![]() | 为指定自定义变量赋予自定义数值 | |
![]() | 控制指定接口的舵机按照设定速度进行转动 | |
![]() | 切换视觉摄像头对应的 AI 视觉工作模式 | |
![]() | 刷新摄像头画面并读取当前视觉模式的识别数据 | |
| 判断画面内是否存在巡线线条并返回布尔结果 | ||
| 判断画面中是否识别到指定编号的线条并返回布尔结果 | ||
![]() | 读取指定编号线条对应的选中坐标、角度、偏移等数据 |
(4) 完整程序展示
启动时,初始化 WonderLens 视觉模块接口 P1 并切换为视觉巡线功能;
在主程序中循环执行:更新并获取视觉模块识别结果,当识别到线 ID 1 时,将获取的线路角度存入变量"Angle"、线路偏移存入变量"Offest";
当 "Angle" > 30,设置舵机 S1 以 40 的速度转动、S2 以 30 的速度转动;
当 20 < "Angle" <= 30,设置舵机 S1 以 50 的速度转动、S2 以 - 30 的速度转动;
当 10 < "Angle" <= 20,设置舵机 S1 以 50 的速度转动、S2 以 - 40 的速度转动;
当 "Angle" < -30,设置舵机 S1 以 - 30 的速度转动、S2 以 - 40 的速度转动;
当 - 30 <= "Angle" < -20,设置舵机 S1 以 30 的速度转动、S2 以 - 50 的速度转动;
当 - 20 <= "Angle" < -10,设置舵机 S1 以 40 的速度转动、S2 以 - 50 的速度转动;
当 - 10 <= "Angle" <= 10,设置舵机 S1 以 50 的速度转动、S2 以 - 50 的速度转动;
每次循环等待 0.01 秒。

- 程序源文件存放于「附录文件」目录内的「程序文件」,可前往该处下载压缩包获取。
3.7.6 程序下载

3.7.7 扩展提升
拓展任务 1:RGB 灯光巡线状态预警 + 终点自动停机
项目目标:根据黑线偏移状态匹配不同灯光提示,识别终点标识后整车停止并声光提示。小车居中对准轨迹时 RGB 绿灯常亮;轨迹向左偏移则左侧彩灯闪烁预警;轨迹向右偏移则右侧彩灯闪烁预警;摄像头识别到终点标记后,小车立刻停止行驶,蜂鸣器播放提示音,RGB 彩灯全彩常亮。
实现思路:读取黑线偏移坐标,搭建多分支条件判断;正常居中、左偏、右偏分别绑定对应 RGB 灯光逻辑;新增终点特征识别判断分支,触发后关闭双舵机、启动蜂鸣器音效、点亮彩灯。
挑战点:黑线偏移数据实时稳定读取,灯光随轨迹偏移同步切换,终点识别不与巡线逻辑冲突,多外设同步运行无卡顿。
拓展任务 2:脱离轨迹延时缓停保护
项目目标:小车完全脱离黑色轨迹后不会立刻抱死车轮,保持低速微调 3 秒,倒计时结束后双舵机停机、彩灯全部熄灭,防止小车冲出赛道。
实现思路:新增计时变量,摄像头检测不到黑线时启动倒计时;倒计时内低速小幅修正方向,计时归零后停止舵机、关闭 RGB 灯光。
挑战点:计时功能不打断摄像头实时轨迹检测,调速、灯光、计时逻辑互不干扰。
拓展任务 3:除了视觉巡线车,本节课轨迹识别的思路还能改造出哪些智能小作品
轨道分拣机器人:保留视觉巡线识别代码,将双舵机行走机构替换为分拣拨片,沿轨道识别物料并分类推送。
轨迹追踪提示灯:去掉行走舵机,搭配点阵屏与 RGB 灯,追踪轨迹偏移实时显示文字预警。
通用改造思路:不用修改摄像头黑线轨迹识别核心代码,只更换输出硬件,新增对应硬件控制指令,依靠 “识别轨迹偏移量实时调整执行机构动作” 的逻辑,就能做出不同智能作品。
3.7.8 课后问答
问题 1:舵机接线时,橙色信号线必须接对应 S 口白色引脚,接错会出现什么问题?
答:S1、S2 接口白色引脚是专门传输控制信号的引脚,舵机依靠该信号控制车轮转速与转向。如果橙色信号线接到电源或接地引脚,主板无法给舵机发送控制指令,会出现两种故障:一是对应一侧车轮舵机完全不动,小车无法修正轨迹、无法正常巡线;二是舵机不停抖动、乱转,严重时会发热损坏。同时程序里控制小车差速调速、轨迹修正的代码全部失效,无法实现自动巡线功能。
问题 2:视觉模块可以正常识别黑线轨迹,但小车左右车轮完全不动,无法巡线,请给出最常见故障和排查方法。
答:1. 接线故障:左右舵机橙色信号线未分别插在 S1、S2 白色信号引脚。排查:断电后对照图纸分别核对两侧舵机三根线接线顺序。
程序故障:双舵机差速调速、轨迹修正代码没有放进 “检测到黑线轨迹” 的循环分支内。排查:打开程序,将左右舵机转速控制、延时修正指令移动到轨迹识别有效分支内。
硬件损坏:单侧 / 双侧舵机故障或 ESP32 的 S1、S2 接口损坏。排查:分别更换完好舵机接入 S1、S2 测试,依旧不动则更换主板其他舵机接口测试。
3.7.9 技术支持与产品讨论
如果您在产品使用过程中遇到困难,欢迎您通过如下方式向我们反馈:
如果您在产品体验后有更好的创意,欢迎您进入幻尔社区将您的创意分享:








