1. 硬件系统搭建:从零组装爬坡小车
第一次参加电子设计竞赛时,面对MSP432P401R主控板和一堆零配件确实有点懵。经过多次调试,我总结出这套硬件组合方案:核心采用TI的MSP432P401R LaunchPad开发板,这款Cortex-M4F内核的控制器性价比超高,主频48MHz完全能满足实时控制需求。电机驱动选用经典的TB6612模块,比L298N发热量小很多,配合7.3V航模电池能稳定驱动两个霍尔编码电机。
视觉部分我放弃了传统的红外对管方案,改用OpenMV H7 Plus摄像头模块。实测发现对于电赛常见的黑白虚线,红外传感器在强光环境下误判率高达30%,而OpenMV在相同场景下能达到95%以上的识别准确率。为了减轻主控负担,我将图像处理完全放在OpenMV端完成,通过串口只传输处理后的坐标数据。
转向机构是很多人容易忽视的关键点。我最初用SG90塑料齿轮舵机,在连续工作2小时后就会出现齿轮滑牙。后来换成MG996R金属齿轮舵机,虽然贵了3倍价格,但比赛全程零故障。这里有个小技巧:舵机安装时要使用3D打印的转向连杆机构,比直接用胶水固定稳定得多。我们用SketchUp设计了可调角度的云台支架,通过Cura切片后打印,完美适配不同赛道曲率。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. OpenMV视觉巡线算法深度优化
在OpenMV IDE里写巡线代码时,我发现几个影响性能的关键参数。首先是ROI(感兴趣区域)设置,经过反复测试,(0,90,320,60)这个矩形区域最合理——既避开了远处干扰物,又保留了足够的预判距离。色块识别时一定要设置x_stride和y_stride参数,我们设为(10,5)可以在保证识别精度的前提下,将处理耗时从15ms降到8ms。
色块阈值设定有个实用技巧:不要在IDE里手动调,而是用OpenMV的阈值助手工具。具体操作是:按住Alt键点击阈值选择器,拖动选取赛道黑线的明暗范围,系统会自动生成thresholds元组。我们最终采用的阈值是[(25, 0, -20, 50, -20, 20)],这个LAB色彩空间参数对光照变化最不敏感。
数据处理我对比了两种方案:PID连续控制和区域离散控制。PID方法需要精心调参,但响应更平滑。核心代码如下:
python复制# PID控制示例
Kp = 0.8; Ki = 0.1; Kd = 0.0
