权重法简单应用
前言:本文将使用HAL库与STM32CubeMX结合,控制线迷宫鼠。
(一)实验目的
因为本文所使用的线迷宫鼠在迷宫上的黑线上走,所以需要确定黑线的中点,以确保小车能够保持直线行走。本文确定中点的方法为权重法
(二)实验准备
1、实验所用到的工具与硬件
软件与固件包:
芯片: STM32F401RE
STM32CubeMx软件 (v6.1.0)
IDE: MDK-Keil软件(v5.27)
STM32F4xxHAL库
硬件:
线迷宫鼠小车(本文只用到了其中的五个红外传感器)
其中硬件原理图如下:
2、实验须知
(1)权重法:也可以成为加权算数平均法。即将各数值乘以相应的权数,然后加总求和得到总体值,再除以总的单位数。加权平均值的大小不仅取决于总体中各单位的数值(变量值)的大小,而且取决于各数值出现的次数(频数),由于各数值出现的次数对其在平均数中的影响起着权衡轻重的作用,因此叫做权数。个人理解:就是给根据每个数据的不同重要程度,给定相应的比重,求出的平均值。与算数平均数不相同,它带有一定的针对性。
(2)本此实验中,使用的是小车的五个红外传感器之间的距离为等距,黑线的线宽为1.8cm.
(三)实验原理
本实验使用加权平均数对5个传感器采取到的值进行求平均,权重值从左到右即传感器0~4分别为0,100,200,300,400。再用2号传感器的权重值减去加权后传感器数据的平均值,得到小车与黑线的偏差值。其中关于如何ADC采样读取传感器的值可以参考我的上一篇博文ADC采样简单应用
(四)实验步骤
(1)配置STM32cubeMX工程
使用的是PA2、PA3、PC5、PB0、PC3,对应的是IN2、IN3、IN8、IN13、IN15。由于接的外设(红外测距传感器)需要供电,所以将PB12~PB15四个引脚设置为GPIO_output