问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

智能车竞赛:从零开始的职业化路径

创作时间:
作者:
@小白创作中心

智能车竞赛:从零开始的职业化路径

引用
CSDN
12
来源
1.
https://blog.csdn.net/zhuoqingjoking97298/article/details/143673441
2.
https://blog.csdn.net/2401_85258012/article/details/141315656
3.
https://blog.csdn.net/qq_41954556/article/details/122664107
4.
https://blog.csdn.net/HrqShell/article/details/132932217
5.
https://blog.csdn.net/zhuoqingjoking97298/article/details/134331321#987000
6.
https://blog.csdn.net/zhuoqingjoking97298/article/details/134331321
7.
https://blog.csdn.net/weixin_45020839/article/details/131376715
8.
https://github.com/EddyCliff/STM32-Intelligent-Car
9.
https://m.journal.qq.com/read/1049448020/7
10.
https://blog.csdn.net/LEEANG121/article/details/107219818
11.
https://blog.csdn.net/qq_41834692/article/details/129220908
12.
https://journals.indexcopernicus.com/api/file/viewByFileId/1822003

智能车竞赛30天速成计划(STM32版)


第一阶段:硬件快速搭建(第1-7天)

1. 核心硬件选型(参考2

  • 主控板:STM32F4系列(推荐F407VET6,自带FPU加速运算)
  • 电机驱动:TB6612FNG模块(适合直流有刷电机)或自制MOS管驱动板(参考2无刷驱动方案)
  • 传感器
    • 基础组:OV7725摄像头(30fps)+ 电磁电感(10mH工字电感)
    • 进阶组:激光雷达(TOF050F)+ 六轴IMU(MPU6050)

2. 电路焊接要点

  • 电源模块:使用3S航模电池(11.1V)→ 通过LM2596降压至5V(主控)→ AMS1117-3.3V(传感器)
  • 抗干扰设计:电机电源与信号电源完全隔离,PWM信号线加磁环(参考2防噪方案)

3. 车模组装

  • 按照官方指定车模手册安装(如C型车模前轮外倾角调至2°)
  • 重心控制:电池置于车体中部,离地高度<5cm

第二阶段:基础功能实现(第8-15天)

1. 电机控制(参考34

// PWM初始化(TIM3_CH1输出)
void PWM_Init(uint16_t arr, uint16_t psc) {
    TIM_TimeBaseInitTypeDef TIM_BaseStruct;
    TIM_OCInitTypeDef TIM_OCStruct;
    
    RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE);
    TIM_BaseStruct.TIM_Period = arr;  // 自动重装载值
    TIM_BaseStruct.TIM_Prescaler = psc;  // 预分频
    TIM_BaseStruct.TIM_ClockDivision = 0;
    TIM_BaseStruct.TIM_CounterMode = TIM_CounterMode_Up;
    TIM_TimeBaseInit(TIM3, &TIM_BaseStruct);
    
    TIM_OCStruct.TIM_OCMode = TIM_OCMode_PWM1;
    TIM_OCStruct.TIM_OutputState = TIM_OutputState_Enable;
    TIM_OCStruct.TIM_Pulse = 0;  // 初始占空比0%
    TIM_OCStruct.TIM_OCPolarity = TIM_OCPolarity_High;
    TIM_OC1Init(TIM3, &TIM_OCStruct);
    
    TIM_Cmd(TIM3, ENABLE);
    TIM_CtrlPWMOutputs(TIM3, ENABLE);
}

// 电机正转(占空比70%)
TIM_SetCompare1(TIM3, 700);  

2. 基础循迹实现

  • 电磁组
    使用5个电感阵列,AD采样值归一化处理
    float sensor = {0.2, 0.8, 1.0, 0.6, 0.3}; // 模拟电感值
    float position = (sensor*(-2) + sensor*(-1) + sensor*0 + sensor*1 + sensor*2) / (sensor+sensor+sensor+sensor+sensor);
    
  • 摄像头组
    使用动态阈值二值化(参考OpenMV算法):
    # 在STM32上移植的简化版
    for(int i=0; i<60; i++){
        if(img[i] > (avg + 15)) bin_img[i] = 1;
        else bin_img[i] = 0;
    }
    

第三阶段:算法优化(第16-25天)

1. 控制算法升级

  • PID参数整定
    先调D(抑制震荡),再调P(响应速度),最后I(消除静差)
    推荐初始值:Kp=2.0, Ki=0.01, Kd=0.5
  • 路径预测
    使用五点差分法计算曲率:
    curvature = (y[i-2] - 8*y[i-1] + 8*y[i+1] - y[i+2]) / (12*dx);
    

2. 速度控制策略

赛道段
期望速度
控制方法
直线
3.0m/s
开环加速+PD稳向
弯道
1.5m/s
闭环PID+速度前馈
坡道
2.0m/s
陀螺仪补偿+扭矩限制

第四阶段:调试与实战(第26-30天)

1. 快速调试技巧

  • 无线调试
    使用HC-05蓝牙模块传输关键数据(如电感值、舵机角度)
    printf("P:%.2f,D:%.2f,S:%d\n", pid.P, pid.D, speed); // 通过串口发送
    
  • 紧急修复
    准备"救命固件"——阉割版纯直道加速程序(应对突发故障)

2. 赛场生存指南

  • 赛前2小时
    用热熔胶固定所有接插件,电机轴点螺丝胶
  • 突发情况处理
    • 摄像头死机:硬件看门狗复位(IWDG_ReloadCounter();)
    • 电机失控:在PWM输出端并联4148二极管防反向电流

关键资源包

  1. 代码仓库
    GitHub搜索"SmartCar-F4"获取完整工程(含环岛处理代码)
  2. 参数模板
    电磁组:Kp=1.8, Ki=0.008, Kd=0.3, 前瞻距离=25cm
  3. 耗材清单
    • 备用轮胎×4(不同硬度)
    • 0.5mm厚不锈钢舵机臂
    • 3M VHB双面胶(比502更抗震)

竞赛日倒计时

  • 第29天:完成3小时耐久测试(连续跑50圈无故障)
  • 第30天:降低速度保完赛(目标名次>50%队伍即可晋级)

通过该计划,可在30天内实现车速从0到2.5m/s的突破,记得每天至少烧录10次程序,调车到凌晨是常态!

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号