
摘要:本设计以C51为核心,采用双CPU分别进行电动车的前轮转向控制和后轮脉冲宽度调速控制,根据题目要求,前进过程中安放在车身不同位置的检测器件对小车的周围环境进行检测,包括地面埋设物(铁片)、前方障碍物和光源,完成小车在直道区、弯道区、障碍区和停车区的各项任务,并采用LCD实现埋设物个数、行车时间等的显示。其中,步进电机的转向控制是本系统设计的重点和难点。
关键词:电动车,智能,C52
一、 方案论证
1、设计要求
本系统要求电动车按照给出的行使路线,在直道区能够正确的检测出埋设铁片的个数;通过弯道区后能够到达指定的地点并停车要求的时间;在障碍区能够准确的躲避障碍物;然后在光源的引导下驶入车库。
2、各部分方案论述
(1)调速模块
采用脉冲宽度调制电路。用单片机控制信号的高低电平时间完成调速,用对两个信号的不同控制完成电机的转向和起停的控制。这种电路由于工作在管子的饱和截止状态下,效率非常高,经试验发现,此方法调速简单可行,方便可靠。
(2)转向装置选择
步进电机控制前轮。步进电机将电脉冲信号转换成相应的角位移的特种电机,步进电机的显著特点是快速启动能力,测到障碍物时能够快速转向;另外步进电机的精度高,每步可以小至0.72度,不会失步,在负荷不超过动态转矩值时,可以瞬间启动和停止。逆转时能够精确返回原始位置。外加机械机构可以把角度变成直线位移。
(3)外部传感器选择
校正车行方向即寻迹传感器:采用红外线光电反射传感器,由于车底盘较低,采用近距离(1――6mm)有效的光电传感器。使CPU根据光电信息精确调整小车的行车方向,使小车运行时达到最小的横向抖动。CPU根据信号发出前轮左转,右转和保持方向的指令,实现自动校正行车方向的目的。
检测两个障碍物传感器:采用反射式红外线光电开关。本设计采用的光电开关有效距离为1——13cm(对白色障碍物),小车前方只要有障碍,即输出一个开关量,向CPU申请中断,CPU响应中断即控制电机做出转向反应。
测车行程传感器:为使小车可以测量并显示小车中心至起点的距离,测小车的圈数换算即可得到。采用开关式光电传感器,在车轮上安装一个小磁铁即可实现测圈数,进而得到距离值,为此采用此方案。
二、系统设计与硬件电路
1、总体设计
小车前后两部分框图如下:
图Ⅱ-1 前轮CPU模块
2、各模块设计
(1)电机转速控制
本系统利用8050、8550等三极管的组合,构成基于PWM原理的驱动电路。如图所示,P0.1为正反转控制端,P1.3为起停控制端,原理如下:
①P1.3为低电平
若P0.1为高电平,与低电平或非以后变为低,则Q55基极为低,由Q51构成的反向器使Q51集电极为高。于是,Q52、Q53、Q54导通,Q55、Q56、Q57截止。其中Q52为激励极,Q53、Q54为功放极。电流流向为:电池正极→Q53→电机“+”端→电机“-”端→Q54→地,电机正转。
图Ⅱ-3 直流调速驱动电路
若P0.1为低电平,与低电平或非以后变为高,则右边三个管即Q55、Q56、Q57导通,左边三个管截止,电机反转。
②P1.3为高电平
P1.3与低电平或非以后变为低,使Q51和Q55均截止,电机停转。
该电路原理简单、容易控制、带负载能力强,我们采用PWM控制,通过软件控制脉冲宽度的大小,设置高低电平的保持时间,来完成电机转速大小的改变,这样使得工作简单方便,而且准确可靠。
(2)电机转向控制
这个设计中电机的转向主要有两个作用,一是在直道区和弯道区根据地面黑线使小车按照指定的路线行使,不偏离跑道,并到达要求的位置;二是在障碍区控制小车前轮转向使其准确地躲避障碍物,并在光源的引导下进入车库。控制原理图如下图Ⅱ-4:
具体电机我们使用了35BYJ46型号的步进电机来完成此部分内容。这是一种四相五线制的电机,驱动器采用51单片机的口P1.0――P1.3,依次触发三极管导通,构成四相四拍步进电机。步进电机的工作电流为96mA,由于电机启动电流较大,所以采用额定电流为1500mA的三极管8050驱动电机。本程序采用循环设计法,将控制模型放在内存单元中,按顺序驱动四相四拍电机。
电机接口示意图如下图Ⅱ-5:
图Ⅱ-5
其励磁顺序如表Ⅱ-1;
技术指标如表Ⅱ-2;
表Ⅱ-1
表Ⅱ-2
按照以上资料,在程序中利用P1口的前四个脚依次对两对相的正负进行控制可使电机步进转动,当信号顺序相反时电机反方向步进。每步进一步转动的角度为7.5º/85.25,在行进过程中根据检测的信号对距离、速度等数据进行计算,得电机需要转动的角度。
(3)检测
1、地面埋设物(铁片)
采用金属接近开关LM18—3008NA,工作电压6——36V,有效检测距离8mm,这种专用传感器,使用发便,对金属的检测较可靠。本设计安装此传感器在车的底部,当有接近金属时,输出低电平,送给单片机记下金属片个数,并显示出来。
2、路面黑线检测
采用红外反射式二极管和LM324N四运算放大器构成信号发射接收电路,运算放大器对信号比较后产生输出信号,电路图如图Ⅱ-6:
图Ⅱ-6
3、前方障碍物
采用专用红外光电开关G18—3A10NA,工作电压10——30V,有效检测距离10cm,当前方有障碍物时传感器内部开关闭合,输出端为低电平,此信号对单片机P3.2产生中断0,控制转向左或右。电路图如图Ⅱ-7 :
图Ⅱ-7
4、光源
使用光敏电阻检测前方20cm高白炽灯发出的光,引导小车前进。此部分研究如下:
如图Ⅱ-8所示,200W的白炽灯距离光敏电阻2m时,测得阻值大约为Rmax=10kΩ,而不在光源照射范围内的阻值在50K左右,经过计算,取R1为5.1K,为了方便可调,我们使用了一个50K的电位器。为了使管子能够饱和导通,集电极的电阻尽量取得大些。
三、软件设计
控制程序的主要任务是:
(1)判别旋转方向;(2)按顺序传送控制信号;(3)寻地面黑线
(4)检测障碍物; (5)检测光源。
各部分程序流程如下:
以上程序全部用汇编语言来编写,调试时,经过语法查错和逻辑查错,与硬件联合调试,先单独调试好每一个模块,然后再连接成一个完整的系统。经过最后的调试,总程序可以顺利执行。
四、测试
1、测试所用仪器设备:
PC机
数字式万用表:Fluke 175
示波器:Instek GOS-620
万利单片机仿真器
模拟跑道:直道长7m,弯道半径0.8m
卷尺:精度0.001m
秒表:精度0.01s
铁片:三块,厚度0.5mm,大小分别为15×15cm²,15×18 cm²,15×14 cm²
障碍物:用白纸包裹的纸盒两个,长、宽、高为25cm×10cm×10cm
2、测试内容
(1)速度测试
数据如表Ⅳ-1所示:
表Ⅳ-1
跑道长度:7m
| 次数 | 1 | 2 | 3 |
| 实测速度(m/s) | 0.19 | 0.18 | 0.20 |
测试情况如表Ⅳ-2:
表Ⅳ-2
| 路面类型 | 识别情况 |
| 白纸 | 指示灯不亮 |
| 黑线 | 指示灯亮,且小车偏离黑线哪个方向,这个方向的指示灯熄灭 |
| 灯光下的木桌 | 指示灯不亮,当小车高度达到一定时,桌面开始有光线反射,指示灯亮 |
| 贴有2cm宽黑色胶带的白纸 | 在黑线的引导下行驶,指示灯基本保持常量 |
(3)铁片检测
下表Ⅳ-3是检测路面埋设物(铁片)的实验情况:
表Ⅳ-3
| 铁片个数 | 第一片 | 第二片 | 第三片 | 第四片 |
| 显示计数 | 1 | 2 | 3 | 5 |
| 在铁片上行驶情况 | 正常 | 正常 | 正常 | 正常 |
(4)障碍物检测
下图是测试时所用场地及小车所走路线示意图。
此项是小车功能的一个难点,由于存在诸多因素,如探测距离的偏差、电源供电不稳等,很难使小车及时发现前方障碍并顺利躲避,根据此图,我们计算并调整了小车转向的度数,结合小车前进的速度,发现障碍物时,小车倒车并继续检测,直到绕过障碍。我们发现,如果使小车一进入障碍区就驶向两个障碍物之间的区域,如图中虚线所示,可保证前轮CPU较小的工作量,使小车少走弯路,减少出现错误的可能。总的来说,此部分由于控制因素太多,加上时间非常紧张,我们的小车行驶实际情况距离预想状态还有一定的差距。
(5)光源检测
小车前方光源采用200W的白炽灯,按照题目要求距地面高度20cm,实验示意图如下:
我们在小车的上面正前方安装了黑色内里的圆筒,光敏电阻在里面感受正前方向的光线,由此使小车按照光源的位置来调整方向,实验证明基本是可行的,但是,由于题目中光源在车库的旁边而不在车库内部,小车只能向光源的方向前进,无法准确的进入车库,这是我们目前尚未解决的问题。
五、误差分析及改善措施
小车转向控制采用模糊控制的思想,由于寻线,测障,测光有不同的精度要求,所以按照寻线,测障,检测光源将小车转动的角位移分为很小一步,一小步,稍大一步,这通过在多次试验中确定小车前轮的步进电机的步数而得到。虽然步数是确定的,但转向属于模糊控制,所以必定造成小车的横向抖动误差较大。基于模糊控制的算法,我们将小车运行的路线分为三部分寻线时步数较少,不至于偏离路线太大;有障碍物时,步数较大,有利于小车迅速绕障;进入光源照射区时,步数中等,直到最后到达终点。这种方法可以减小误差。经过多次实验,证实模糊控制可以较好的完成任务。
测试过程中,一个不可忽略的问题就是小车的不稳定性,这与我们的器件太多,连接复杂有一定的关系,而且我们的电源使用两套(+5V和+12V),在接通时,我们测量两个CPU的电压,为4.85V,这可能也是由于器件较多,电源容量不够所致,进而会影响电路的工作。在电源方面,我们一开始采用的是单一电源供电,这样供电比较简单,但由于电动机启动瞬间电流很大,而且PWM驱动的电动机波动较大,会造成电压不稳、有毛刺等干扰;因此我们考虑将电动机的驱动电源与单片机及其周边电路电源完全隔离,利用光电耦合器传输信号,提高了系统的稳定性。
六、结论
我们采用双CPU分别进行电动车的脉冲宽度调速控制和步进电机的转向控制,用安放在车身不同位置的检测器件检测地面埋设物(铁片)和前方障碍物,用光敏电阻检测光源,并用LCD实现埋设物个数、指定行程等的显示。但是由于小车前轮与横杆之间有一定的间隙,所以小车在行驶过程中车轮难免会有一定的晃动,但是,我们在程序中进行实时的黑线检测,使小车一离开黑线前轮便小幅转向,这样便使小车始终不离开黑线。在测障方面我们采用了两个放在车两侧的传感器,可以使小车检测的前方障碍物,从而倒车并继续检测,直到绕过障碍物。最后,我们采用光敏电阻方法使小车在光源引导下进入车库。经过四天的奋战,我们较好的完成了任务,不仅基本部分完成,而且对小车的功能进行了我们感兴趣的扩展,如安装行驶指示灯、显示行使时间等。虽然在制作过程中遇到很多困难,但经过我们的团结合作,终于完成了制作。
参考文献
(1)单片机应用技术项目教程(C语言版) 郭志勇著
(2)模拟电子技术基础 周良权、傅恩锡、李世馨著
(3)电子线路CAD实用教程(第三版) 潘永雄、沙河著
(4)C程序设计 (第四版) 谭浩强著
