一、智能车实验教学,难在哪?
带过《智能车》《自动控制》《嵌入式系统》这类课的老师大概都有同感:
- 实验设备贵,一套循迹小车几十台,耗材和维护都是压力;
- 课堂时间有限,学生大部分精力耗在「接线、调车、找 bug」,真正练算法的时间反而少;
- 算法写好了,移植到单片机时又「水土不服」——仿真里能跑,板子上跑不起来。
如果有一个打开浏览器就能用、不用装任何软件的仿真平台,把「赛道—传感器—小车—控制器」整条链路实时跑起来,还能让学生亲手写控制算法去驱动小车,是不是能省掉一大半前期折腾?
这就是我做的 LineRider · 智能小车循迹仿真平台。
二、它是什么?
LineRider 是一个纯网页端的 2D 智能小车循迹仿真平台。
小车动力学模型内置在网页里,物理以固定 100 Hz 步长推进;赛道、小车、传感器、控制器四者在页面中实时联动。你打开链接,小车就会沿着轨迹线自动跑起来。
但它最不一样的地方在于——控制算法是开放给学生自己写的。

三、核心教学理念:学生只看到「传感器读数」,看不到坐标
做仿真最怕「假仿真」:学生在网页里拿到了小车的真实 x/y 坐标,算法当然好写,可一搬到真实单片机就失效——因为真实小车根本没有上帝视角。
LineRider 的设计刻意屏蔽小车真实坐标。学生控制器拿到的输入只有两样:
sensors:一排循迹探头的读数(0~1,从左到右排列)speed:当前速度
这和真实小车能感知到的信息完全一致。所以学生写出来的算法,可以直接移植到真实单片机上跑,不存在「仿真里能跑、板子上跑不了」的断层。
四、四个亮点,值得带进课堂
1️⃣ 完整闭环仿真,参数实时调
轨迹线、小车动力学、循迹传感器模型、控制器,四者联动。
右侧调参面板可以实时改 Kp / Ki / Kd、目标速度、噪声强度、传感器模式(模拟 / 数字)。讲到「PID 参数怎么影响循迹表现」时,当场调、当场看效果,比PPT 直观得多。
2️⃣ 内置代码编辑器,学生写个函数就接管小车
页面里点「学生代码 → 打开代码编辑器」,弹出一个大编辑器。学生只需实现一个 update(input) 函数,就能接管小车,不用碰任何源码。
function update(input) {
// input.sensors : 5 路读数 0~1,sensors[0] 是车体最左
// input.speed : 当前速度 m/s
const left = (input.sensors[0] + input.sensors[1]) / 2;
const right = (input.sensors[3] + input.sensors[4]) / 2;
return { steering: clamp((left - right) * 2, -1, 1), targetSpeed: 0.6 };
}
代码自动存本地草稿,内置 4 份起步模板(空白 / bang-bang / PID / 脱线处理),零基础上手。
3️⃣ 代码沙箱,学生写死循环也卡不住页面
学生代码在独立的 Web Worker 线程里先编译、再做 9 项冒烟测试。就算写出死循环,也只会卡住那个 Worker 线程;主线程 1.5 秒超时后自动终止并重建,页面永远不会卡死、不会白屏。
这条对课堂太重要了——再也不用担心某位同学一段 bug 代码把全班演示搞崩。
4️⃣ 支持半实物:网页 ↔ 真实单片机联动
平台支持 Web Serial 模式。网页通过串口(115200 波特率、换行分隔文本协议)把传感器读数下发给真实单片机,单片机算完转向再回传,网页用虚拟小车把运动「演」出来。串口读写和仿真主循环解耦,互不影响。
这样就能做「先在仿真里把算法调通,再原样烧到板子上」的完整实验链路,仿真和实物不再是两套东西。

💡 进阶玩法:内置「网格式迷宫」赛道,小车用差速原地 90° 转弯走完 (1,1)→(6,5) 的路径,直观展示「路径规划 + 差速转向」的组合,适合做综合实验或竞赛训练。
五、哪些课能用上?
- 《智能车技术》《自动控制系统》《单片机原理》《嵌入式系统》
- 课程设计、实训周、科创项目
- 智能车竞赛(如飞思卡尔/恩智浦杯)的「算法预演」环节
- 没有硬件条件、但想让学生真正动手写控制算法的课堂
六、怎么用?
纯仿真:直接打开链接,零安装、零配置,推荐 Chrome / Edge。
半实物(联调真实单片机):在 localhost 或 HTTPS 下打开页面,连接串口即可。页面右上角「帮助」按钮里有完整使用说明和通讯协议,可以直接当学生的实验指导书。
单文件离线版:需要无网环境分发时,我也提供「一个 HTML 文件、双击即用」的版本(已内联全部资源,含 Web Worker)。
七、立即体验
🚗 在线地址:https://linerider-sim.app.workbuddy.host/
打开就能看到小车沿着轨迹线跑起来。右上角点「帮助」看文档,右侧点「学生代码」写第一个控制器——五分钟就能上手。
八、结语
做这个平台的初衷很简单:让更多学生,在没有硬件包袱的情况下,也能真正动手写控制算法、看小车跑起来。
如果你也在带相关课程,欢迎试用,也欢迎转发给需要的老师和同学。有任何建议或想加的功能,也欢迎交流。
Q.E.D.






Comments | 0 条评论