度是小车的关键小车要能够在保证不冲出赛道的情况下尽量提高速度这就需要小车具有非常灵敏的加减速功能除去小车轮胎摩擦力和倾角外等一些硬件方面的因素外加减速功能主要是通过控制部分的相应功能实现单片机可通过输出PWM波到驱动模块使电机转动当然可以改变占空比来控制电机转动的快慢从而控制速度的大小加减速控制的时机和速度的大小可以通过相应的算法进行判断。
最后是执行部分一是舵机模块这部分不需要驱动电路只需将单片机的PWM波输入到舵机相应的引脚就可以舵机内部有自己的基准波形他和输入的PWM波的占空比等相比较从而决定正转还是反转以及转动的角度。电机模块有电机的驱动电路和电机本身一般电机只要通电就可以转动起来但要控制其转动的快慢就需要驱动电路实现电机转速的控制同时驱动电路还可以提供相应的电压。
程序设计
一、位置获取方式
由电感采集的感应电动势信号通过信号板输入单片机的ADC模数转换模块的各个端口单片机将其转化为数字信号后可将其作为此刻的电动势值每个传感器每次采集100次数据然后计算这100次采集的数据中最大值和最小值之差作为电压值。由于各个电感固定的位置不同所测量到的电压范围也会有所不同这些数据便不能直接进行比较或计算为了能够很好地处理数据我们通过归一化将各个电感的数据统一到同一个范围之内这样便可以进行比较计算了同时归一化还可以消除因赛道电流变化产生的误差实时地反映赛道的真实状况因为归一化采用的是相对值不易受绝对数据变动而产生的影响。
归一化的公式为
最终值当前值最小值
最大值最小值
设定范围
f这部分的程序为
voidsig
al_collecti
gvoid传感器信号采集函数
ui
t8i
fori0i100i每个传感器采集100次数据
se
sor0iLPLD_ADC_GetADC1AD10
se
sor1iLPLD_ADC_GetADC1AD8
se
sor2iLPLD_ADC_GetADC1AD9
se
sor3iLPLD_ADC_GetADC0AD12
se
sor4iLPLD_ADC_GetADC0AD13
se
sor5iLPLD_ADC_GetADC1AD11
se
sor6iLPLD_ADC_GetADC1AD12
se
sor7iLPLD_ADC_GetADC1AD13
se
sor8iLPLD_ADC_GetADC0AD14
se
sor9iLPLD_ADC_GetADC0AD15
fori0i10i
peakiCalcMaxToMi
se
sori传感器信号采集峰值计算
u
ityi300peakimaxi归一化公式
ui
t16CalcMaxToMi
ui
t16data100峰值计算函数
ui
t16Max0
fui
t16Mi
0
ui
t16i0
Maxdata0
Mi
data0
fori0i100i
ifdataiMaxMaxdatai选取数组中最大值
ifdataiMi
Mi
datai选取数组中最小值
retur
MaxMi
获得了电压值后我们便可以进行小车中心轴距离导r