智能车控制方案
0赞智能车控制方案
1、关于传感器的摆放
传感器的摆放直接影响到智能车(Smart Car)对路径的判断,初步决定这样摆放。
1.1主检测传感器的排列方法——非等距直线型
由于传感器的数量被限制在16个之内,而必须需要一个车速传感器,所以能检测路径的传感器只可以使用15个。初步设想如下:取11个光电对管,作直线型排列,相临的两个间距为2cm,大约为100mil(2.54mm)的8倍,比较方便在面包板上焊接。11个光电对管一共占据20cm的空间。以上11个传感器作为主检测电路。在控制算法中,要保持黑色路径不越过这个距离。如图1。
图1 主检测传感器排列
1.2辅检测传感器的排列方法
初步设想为在11个主传感器两边加两个保护对管,由于车宽有限,这个方法未必合适。第二种方法如下:设想在小车四个轮子附近安排4个对管,这样可以起到对小车控制的辅助作用,而传感器数量也不会超过限制。
图2 辅检测传感器排列
1.3传感器电路板的制作
由于时间紧迫,故不另做PCB而使用面包板裁剪出来。形状不重要,一般为矩形。注意每个对管除了相应的供电电路及电阻外,必须另加1个电位器用于调节其敏感度。
1.4输入量的类型
在模拟量和数字开关量之间,我们选用模拟量。一是因为这样会简化硬件电路,二是因为我们可以使用软件设置门限值,这样便于调整传感器与地之间的角度和距离,而开关量显然不具备这些优点,还需要调节电位器,不好把握。
2关于软件的编写
2.1传感器输入量的检测
传感器输入的模拟量需要利用软件进行转换后才可以使用,该软件初步设想如下:
1、确定一个门限值,把输入的模拟量转换为数字量并保存为1个UINT类型的变量中。比如11个传感器输入的模拟量分别为:
98 |
589 |
564 |
100 |
102 |
180 |
99 |
78 |
80 |
89 |
98 |
而门限值为200,则用每个数减门限值,如果结果大于0,对应位为1;小于0,对应位为0。所以结果如下:
0 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
这样便把模拟量转换成了数字量。
得到的数字量必须进行进一步转换以利于控制。转换方法如下。(假设检测到路径置1)
因为路径宽度为3.5cm所以11个主传感器中总会有1-2个“压”到路径上,我们假设当最中间的6号传感器单独压到路径上时,检测变量=0。如果路径右移,压到6和7号两个传感器时,检测变量=1。再右移,只压到7号传感器时,检测变量=2。以次类推,最终右移至单独压11号传感器时,检测变量=10。向左移类似,检测变量为负,范围是-1到-10。此变量控制需要可按比例适当放大。这样我们得到可以直接利用的变量。
2.2辅传感器的检测
按照门限值计算出的数字量,保存为一个字节即可(只用4位)。
2.3电机控制策略
可以采用传统的PID控制,输入量为当前路径位置(I),当前路径转角(P),当前路径曲度(D)。输出量为PWM值。
2.4舵机控制策略
可以采用模糊控制,使用9S12单片机的模糊指令。模糊规则输入为当前位置和当前转角。输出量为PWM值。
2.5辅传感器控制软件
采用if…else…的形式加以保护。