发作品签到
标准版

基于CW32开发的智能车比赛电磁组电磁三轮

工程标签

3.3k
0
0
7

简介

基于CW32开发的智能车比赛电磁组电磁三轮,通过LMV358运放电路对LC电路信号的放大,CW32单片机的ADC采集模拟信号,通过归一化,差比和,数据处理,PID等算法控制电机转动,进而控制车模循迹。

简介:基于CW32开发的智能车比赛电磁组电磁三轮,通过LMV358运放电路对LC电路信号的放大,CW32单片机的ADC采集模拟信号,通过归一化,差比和,数据处理,PID等算法控制电机转动,进而控制车模循迹。

开源协议

GPL 3.0

创建时间:2023-08-11 16:39:41更新时间:2023-08-28 10:50:25

描述

项目要求:

制作一辆能够以20kHz 的交变磁场作为路径导航信号循迹的小车

 

一、车模选取

a.三轮车模

优势:得益于轻巧的结构,三轮的速度上限比四轮高

劣势:转向与速度的控制都集中于后两个驱动轮上,相较于四轮,使得控制的难度大大增大

b.四轮车模

优势:转向与速度控制分开,相较于三轮,控制更简单

劣势:结构略显笨重,速度上限没三轮高

  注:   由于本次实验是为了熟悉CW32芯片并且实现循迹功能,并没有竞速要求,所以本项目选取的是三轮自制车模

 

二、循迹原理

这一部分对于电磁组别至关重要,LC电路就相当于智能车的眼睛。智能车比赛选择 20kHz 的交变磁场作为路径导航信号,根据麦克斯韦理论以及根据 LC 谐振电路检测小信号的原理,选取工字电感和电容搭建 LC 谐振电路进行信号采集,从而反应车体的位置。

  • 由公式可知,为了使检测到的信号的输出幅值变大,应考虑两点:
    第一,输出越大,R0 就要越大,为了配合信号源的输出频率 20KHz,电感越大,电感的阻抗越高,
    第二,谐振的频率要在 20KHz 附近,
  • 可供选择的运放芯片有很多,比如LMV358,OPA2350UA,OPA4377

我选择的芯片的LMV358

  LM358特性:
    内部频率补偿
    直流电压增益高(约100dB)

    单位增益频带宽(约1MHz)
    电源电压范围宽:单电源(3—30V)
    双电源(±1.5 一±15V)
    压摆率(0.3V/us)
    低功耗电流,适合于电池供电• 低输入偏流
    低输入失调电压和失调电流
    共模输入电压范围宽,包括接地
    差模输入电压范围宽,等于电源电压范围
    输出电压摆幅大(0 至Vcc-1.5V)

三、循迹算法

(1).归一化

所谓归一化,最简单的理解就是将你所需要的数据限制到一个很小的范围之内,方便之后的处理。而同时,归一化其实也有多种的表达方式,我这里采用的是最常见的一种:

   

  1. x为CW32的ADC采集得到的数字信号的大小,也就是未经过处理的原始数据;
  2. coe为处理后的数据的缩放范围,也就是的范围是[0,+coe];
  3. min跟max分别是赛道上采集到原始数据的最小值,最大值。

而对于归一化处理的优点,就在于:

1.可以消除特征间单位和尺度差异的影响 (电感在采集电磁信号值时,最大值和最小值之间的差距较大)

2.能提高梯度下降法求解最优解的速度(收敛所需的迭代次数更少)

(2).差比和

智能车电磁循迹差比和差算法是一种常用的循迹算法,用于智能小车在黑线上行驶时的控制。该算法通过对左右两个电磁感应模块之间的电磁信号进行差分处理,得到一个差值,用来判断小车是否偏离了黑线。具体来说,该算法包含以下步骤:

1、读取左右两个电磁感应模块的电磁信号,并且进行归一化处理。

2、对左右两个信号进行差值计算,得到一个差值。

3、根据差值的大小和方向,控制小车的左右轮速度,使小车回到黑线上。

4、循环执行上述步骤,实现小车沿着黑线行驶。

在本项目中,电感的排布为:   -  /   \  -

具体差比和的表现公式:

  1. LX、RX是左中、右中两个斜电感获取电流经硬件、软件放大处理后的输出值;
  2. L、R是左、右两个横电感的输出值,
  3. coe是一个限幅系数,
  4. a,b是加权参数(a+b=1)

四、硬件模块

1、 下载器模块

我采用的是DAP下载器,当然CW32也支持STLink下载器。

2、 稳压模块

LM2596S 降压模块:

 

工作原理: LM2596S 降压模块有两个主要的工作部分:一个是输入级, 另一个是输出级。 在输入级, LM2596S 通过电感器和电容器来过滤输入电压, 以确保其稳定性。 在输出级, LM2596S 使用 PWM 技术来控制输出电压。 它将输出电压与个微控制器中的计时器进行比较, 然后根据比较结果调整输出电压。本项目的电源是8.2V输入,5V输出给芯片,显示屏供电。

3、 电机驱动模块:

由于考虑到项目的总体经费不能太高,秉承一个节约的原则,没有采用IR2104H桥驱动,而是选择了市面上的驱动模块来实现项目。第一版我才用的是TB6612模块,但是极其容易烧坏,所以换成了L298N,廉价的L298N以及发热量低,抗干扰能力强,驱动能力强 (高电压、大电流),可靠性高 (使用大容量滤波电容,续流保护二极管可过热自断和反馈检测),工作电压高 (最高可至46V),输出电流大 (瞬间峰值电流可达3A,持续工作电流为2A),额定功率25W(电压 X 电流)等等优点深受我的喜爱。

电源引脚

  • VCC 外接直流电源引脚,电压范围在5~35V之间
  • GND GND是接地引脚,连接到电源负极
  • 5V 驱动芯片内部逻辑供电引脚,如果安装了5V跳帽,则此引脚可输出5V电压,为微控板或其他电路提供电力供给,如果拔掉5V跳帽,则需要独立外接5V电源

控制引脚

  • IN1 & IN2 电机驱动器A的输入引脚,控制电机A转动及旋转角度
    • IN1输入高电平HIGH,IN2输入低电平LOW,对应电机A正转
    • IN1输入低电平LOW,IN2输入高电平HIGH,对应电机A反转
    • IN1、IN2同时输入高电平HIGH或低电平LOW,对应电机A停止转动
    • 调速就是改变IN1、IN2高电平的占空比(需拔掉ENA处跳帽)
    •  
    • IN3 & IN4 电机驱动器B的输入引脚,控制电机B转动及旋转角度
    • IN3输入高电平HIGH,IN4输入低电平LOW,对应电机B正转
    • IN3输入低电平LOW,IN4输入高电平HIGH,对应电机B反转
    • IN3、IN4同时输入高电平HIGH或低电平LOW,对应电机B停止转动
    • 调速就是改变IN3、IN4高电平的占空比(需拔掉ENB处跳帽)

输出引脚

    • OUT1 & OUT2 电机驱动器A的输出引脚,接直流电机A或步进电机的A+和A-
    • OUT3 & OUT3 电机驱动器B的输出引脚,接直流电机B或步进电机的B+和B-

调速控制引脚

    • ENA 电机A调速开关引脚,拔掉跳帽,使用PWM对电机A调速,插上电机A高速运行
    • ENB 电机B调速开关引脚,拔掉跳帽,使用PWM对电机B调速,插上电机B高速运行

4、 运放模块:

    • LMV358电路对信号进行放大处理

 

五、控制方案

 A.三轮

1、 串级PID:

什么是串级PID?顾名思义就是两套串起来的PID,对于三轮电磁车项目来说,外环是电磁信号的误差环,内环是角速度环,最终的执行器是电机,电机输出产生了速度和位置;那么为什么要用两个PID呢?我们电机左右摆动就有一个角速度的参数。假如只有一个误差环,那么车模以一个什么角速度去运行呢?而我们误差环算出来的值可以看作是对角速度的一个期望,对角速度闭环,这样使得车子的控制效果得到明显提高。所以说串级PID外环的输出是内环的输入。串级PID框图如下:

1、 并级PID:

什么是并级PID?顾名思义就是两套并起来的PID,对三轮电磁车项目来说,并级PID是将两套PID分开来进行计算,外环是电磁信号的误差环,内环是角速度环,角速度环算出的值就是最终执行的差速,速度环算出的值是基础的速度,在基础的速度上加减作用与电机就可以实现差速。并级PID框图如下:

Note:内环与外环的周期是一个相当重要的参数,内环的周期必须比外环小,最好成倍数的关系。两套算法各有优劣,可自行选择。

  B.四轮

四轮的控制就相对来说比较简单了,转向由舵机控制,速度由电机控制。当然,要最求高速度的化舵机的转向肯定是不够的,电机后轮也得来分担转向的压力,比较著名的模型有阿克曼模型,在这里不做具体展开了,本节只讨论控制问题。

1、 转向环(PD):

这里的转向环就是三轮的电磁误差环,得益于舵机的高速反应以及精准控制,误差环能够很好的控制四轮的方向。

2、 速度环(PI):

输入期望速度,速度环算出占空比直接输入电机

 

 

 

 

 

 

 

 

设计图

未生成预览图,请在编辑器重新保存一次

BOM

暂无BOM

附件

序号文件名称下载次数
1
演示视频.mp4
14
2
Elect_car_V1.zip
174
克隆工程
添加到专辑
0
0
分享
侵权投诉

工程成员

评论

全部评论(1
按时间排序|按热度排序
粉丝0|获赞0
相关工程
暂无相关工程

底部导航