智能小车.docx
《智能小车.docx》由会员分享,可在线阅读,更多相关《智能小车.docx(9页珍藏版)》请在冰豆网上搜索。
![智能小车.docx](https://file1.bdocx.com/fileroot1/2022-11/16/bee717f8-bc97-4ee7-9c9a-173d19f10f01/bee717f8-bc97-4ee7-9c9a-173d19f10f011.gif)
智能小车
全国大学生电子设计大赛论文
智能小车
姜辉陈传真赵于飞
计算机与信息学院
电子信息工程08-2班
杨兴明
2011年9月21
智能小车
摘要:
本系统采用STC89C52单片机作为核心器件实现小车在规定赛道跑一圈,且小车超车一圈的基本功能。
利用脉宽调制(PWM)技术控制算法,动态的控制电动机的转速,很好地解决了小车的速度和转速的问题。
本设计当中多次使用反应灵敏的光电开关检测黑线,从而通过软件控制进行处理。
设计的硬件设置较为合理,该设计的目的是制作一个往返于起始线和终点线之间的电动小汽车自动控制系统。
供电系统采用电机驱动电源和控制电源相隔离的方案,提高的系统的抗干扰能力,使系统运行非常稳定。
关键字:
智能小车反射式光电开关PWM波
1.系统方案
1.1系统概要设计
本系统采用STC89C52单片机作为核心控制单元,利用检测黑线的对黑线信号的采集全都采用反射式光电传感器。
通过单片机进行控制,实现小车转弯和在行车道的行驶。
其概要系统框图如图1所示。
图1系统总体框图
1.2硬件系统方案设计与论证
1.2.1电机的选择
方案一:
采用步进电机。
步进电机电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度。
虽然利用步进电机能较为准确控制小车在转弯时的角度,但是其必须由双环形脉冲信号、功率驱动电路等组成控制系统方可使用,这样增加了程序的难度。
方案二:
采用直流电机。
直流电机调速特性好,具有调速方便,平滑,调速范围广等特点,且能承受频繁冲击负载,过载能力强。
由于在本设计中要求小车具有较好的调速性能。
本设计需要较多的控制,为了减小控制的难度,我们采用方案二。
1.2.2边界黑线检测的论证与选择
方案一:
采用红外反射式光电传感器TCRT5000。
该传感器对于黑线检测很灵敏,且电路比较简单,输出为TTL电平。
但是TCRT5000反射式光电传感器能够检测的距离仅为0.2mm-15mm。
为使传感器能够检测到黑线从而实现转向,其安装应如图2所示。
从该图可看出,这样的安装加大的小车的长度与宽度,这样使以后超车部分两车不发生碰撞有了难度。
图2TCRT传感器安装位置图
方案二:
采用反射式光电开关。
反射式光电开关作用距离较长,其输出为TTL电平。
光电开关装在小车车头两侧,如图3所示。
光电开关与小车平面呈现一定的角度,当小车车头光电开关检测到黑线时表明小车偏向边缘,此时,单片机可及时调整小车的前进方向。
图3光电开关位置图
方案三:
颜色传感器。
此方法优点是能准确区分白色和黑色,但在本设计中,只要能检测到黑线完成信号的采集即可,没有必要进行颜色的区分,所以此方案有不妥之处。
综合以上分析,我们选择方案二。
1.2.3超车模块的论证与选择
方案一:
采用超声波测距检测。
超声波测距模块内部将发出8个40KHZ周期电平由检测回波。
一旦检测到有回波信号则输出回响信号。
回响信号的脉冲宽度与所测的距离成正比。
由此通过发射信号到收到回响信号时间间隔可以计算得到距离。
距离计算公式:
Us=高电平时间*声速(340m/s)/2。
本方案中两个模块需分别安装在两辆小车右侧。
两辆小车进入超车区域时,当两辆小车分别检测到对方时,单片机对其进行处理,从而实现超车。
利用该模块检测小车时,被测物体的面积要求较大而且需要平整。
对于小车无疑是增大了其外形。
方案二:
采用光电开关,检测要超车的车得前方是否有障碍物(即要被超的车)。
但此方案有bug存在,当不在超车区超车也会误认为要超车。
虽然可以通过检测黑线的数目来判断是否到了超车区,但由于程序中已经存在大量的判断,
此举无疑增加了程序逻辑的混乱性。
方案三:
寻找最佳超车路径。
利用软件方式对小车的转向与速度进行控制,不断实验,寻找最佳路径。
该方案虽然需要较长时间的调试,但系统相对稳定,且不需要外接。
综合以上分析,我们选择方案三。
1.2.4两车同时启动方案的论证与选择
方案一:
利用无线收发模式启动。
利用由nRF24L01芯片开发而成NRF24L01模块控制两辆小车之间同时启动。
nRF24L01是单片射频收发芯片,工作于2.4~2.5GHzISM频段。
工作电压为1.9~3.6V,有多达125个频道可供选择。
可通过SPI写入数据,最高可达10Mb/s,数据传输率最快可达2Mb/s,并且有自动应答和自动再发射功能。
和上一代nRF2401相比,nRF2401数据传输率更快,数据写入速度更高,内嵌的功能更完备。
依靠该模式进行通信,能使两辆小车精确的同时启动,但是其编程复杂,且需要较大内存空间。
方案二:
人工手动按键启动。
该方案虽然不能精准的同时启动两辆小车,但是其原理简单,大大简化了程序的复杂度,并且容易实现。
本设计的小车控制处理较多,干扰较大,为了简化程序,实现功能,考虑到我们采用STC89C52单片机作为核心控制芯片,为了减小编程的压力我们采去方式二。
2.系统原理分析与设计
2.1标志线处理分析
在行车赛道中有9条标志线,对于每一条标志线必须有一定的处理方式。
对于与第一条标志线,本设计软件处理方式是条数计数加1但是不做处理。
对于第二、三、九条标志线小车直接进行大转弯。
由于超车标志线间的距离比较短,为了使小车能准确测得黑线条数,小车的速度必须有所下降。
当检测到第四条黑线是小车就进入了超车区域,为了确保小车能够正常转弯,通过不断的调试,我们对超车标志的5条黑线进行了如下设置:
第四条黑线:
黑线条数加1且小左转弯;第五、六、七条黑线:
黑线条数加一但不处理;第八条黑线:
黑线条数加1且大坐转弯。
2.2小车停车设计
小车起点终点标志线旁的虚线不仅对小车正常行驶造成干扰,而且也加大了小车停车的难度。
在进行小车转弯实验时,我们发现小车基本靠外边缘前进,因而我们在此发现的基础上想到把检测黑色标志线的光电开关安装在小车车头靠右侧边缘。
实践证明我们的想法是正确的。
2.3小车超车通信单元
在超车区中,超车道只有110CM左右,如果当乙车检测到前方有甲车时才进入超车道超车,那可能导致小车不能超车,因为甲车进入区域的位置是未知的。
综上分析,我们在小车转弯过后不检测前方是否有车,而是直接进人超车道。
当乙车超过甲车进入行车道,甲车开始行进,从而实现乙车超过甲车。
2.4程序设计分析
本设计如果要是小车准确沿跑道行驶的功能,且还需要进行超车,则需要对小车的速度与角度进行控制。
可通过调节PWM波和延迟时间进行控制。
程序主流程图如图4所示。
图4主程序流程图
3.系统测试与误差分析
3.1测试方案
由于本系统的软件设计较为复杂,且子程序较多。
故需要首先进行子程序的测试,执行相应的子程序,然后测试其完成程度,然后进行慢慢调整。
当各个功能调试成功时才进行整体测试。
该设计要求很强的逻辑性,故在调试程序时需要仔细耐心。
最后在各个单元调试成功后进行系统测试。
3.2测试条件与工具
木质赛道,电压源,万用表,秒表
3.3测试结果与分析
3.3.1测试结果
甲车沿跑道一圈的时间如表1所示。
表1甲车跑一圈所需时间
次数
1
2
3
4
5
6
7
8
时间(S)
35
37
35
39
33
36
35
33
表2乙车跑一圈所需时间
次数
1
2
3
4
5
6
7
时间(S)
40
43
39
39
45
46
44
3.3.2测试分析
测试结果表明每次小车跑完一周所用的时间都不尽相同,这就表明以下几种情况都会影响小车的平均速度和所走的距离。
(1)小车检测到的黑线次数不同即校正车身的次数不同
(2)小车的初始摆放位置的不同也会影响每次跑完一周的时间
(3)赛道的材质会影响小车的速度即时间
(3)小车的机械性能不尽相同
4.总结
这次电子设计竞赛让我们收获很多,极大的巩固了课上所学的知识,并提高了我们查找资料的能力。
在竞赛前,我们组的每个成员都很认真的准备比赛。
在准备的过程中,大家都取得了很大的进步,极大地的提高了我们的实践动手能力。
在这次比赛过程中,我们也遇到过很多的困难,首先我们选择的是控制类题目,软件压力都不小,还好平时准备充分,所以软件对我们组来说,没有多大问题。
最让我们难忘的是比赛过程中放在桌上的小车不小心掉了下来,把我们的很大东西都摔坏了,最后我们不得不重新连电路。
还好通过大家的努力,把电路连好了,总之在这次比赛过程中,我们遇到了很多问题,通过我们的努力,解决了这其中的一些问题。
同时,通过这次竞赛,我们也充分认识到了自身的不足,今后的学习中,我们会加强学习,把课上所学应用于实践。
5.参考文献
[1]刘霞等编著《电子设计与实践》电子工业出版社2009
[2]王琼编著《单片机原理与应用》合肥工业大学出版社2008
[3]雷伏容著《51单片机常用模块设计查询手册》清华大学出版社2010
[4]窦建华著《电子设计自动化》国防工业出版社2006
附件1系统总电路图
附录2元器件清单
序号
元器件名称
数量
1
小车载体
2
2
反射式光电开关
8
3
电子开关
4
3
导线
若干
4
L289驱动模块
2