基于MC9S12XS128单片机的智能小车设计与实现
2011-06-09谷春苗吕静波赵晓龙肖鹏飞
纪 秀,谷春苗,吕静波,赵晓龙,肖鹏飞
(1.长春工程学院电气与信息工程学院;2.长春工业大学电气与电子工程学院,长春130012;3.长春高新区长东北核心区管理委员会,长春130016)
0 引言
随着汽车工业的迅速发展,关于汽车的研究也越来越受人关注[1]。几乎每届全国电子大赛和省内电子大赛都有智能小车控制方面的题目,因此各高校也都很重视该题目的研究,由此可见开展智能小车及其相关领域的研究具有重要的意义[2-3]。2011年全国大学生电子设计大赛中与往届不同的是智能小车由一辆小车的功能实现到两辆小车的竞技试题,具有可观赏性的同时,增加了竞赛的工作量和技术难度。本次设计根据题目要求,确定如下方案:在现有玩具电动车的基础上,加装光电传感器、红外线传感器、超声波传感器及无线nRF905模块,实现对电动车的速度、位置、运行状况的实时测量,并将测量数据传送至单片机进行处理,然后由单片机根据所检测的各种数据实现对电动车的智能控制。实现智能小车在赛道内自动循迹、无线通讯、防追尾控制等功能,最终实现循环超车功能。
本设计选用飞思卡尔MC9S12XS128单片机。该单片机是一款16位单片机,具有I/0接口更丰富、处理速度更快等特点,它的易用性和多功能性受到了广大使用者的好评,它是新一代单片机的代表,其强大的功能、较低的功耗等均符合本次设计的要求。
1 智能小车系统的整体实现功能
根据题目的基本要求,设计任务主要完成电动车在规定赛道内按规定路径稳定行驶,并能具有两车通讯实现互相超车的运动状态,同时对行程中的有关信息进行处理。为完成相应功能,系统可以划分为以下几个基本模块:电机驱动模块、寻迹线探测模块、测距离模块、稳压模块、通讯模块。
本题设计利用红外对管来检测赛道的边界黑线,通过寻迹实现小车前进方向的引导,并控制电动小车的自动调整按照轨迹运动,采用基于nRF905的无线通讯模块实现小车之间的实时通信,通过PWM调速使小车快慢速行驶,使用超声波传感器自动检测两车直接的距离防止两车发生追尾。
图1 系统结构图
2 智能小车控制系统设计
智能小车控制系统包含以下功能模块。
2.1 直流调速模块
由于PWM(Pulse Width Modulation)调速系统的开关频率较高,仅靠电枢电感的滤波作用就可以获得脉动很小的直流电流,电枢电流容易连续,系统的低速运行平稳,调速范围较宽,可达1∶10 000左右。由于电流波形比V-M系统好,在相同的平均电流下,电动机的损耗和发热都比较小。同时由于开关频率高,若与快速响应的电机相配合,系统可以获得很宽的频带,因此快速响应性能好,动态抗扰能力强[4-5]。
因此,在本次设计中,小车采用了H型单极型可逆PWM变换器进行调速。脉宽调速系统的主电路采用脉宽调制式变换器,脉宽调速也可通过单片机控制继电器的闭合来实现,实现了小车正向和逆向行驶。
2.2 光电检测模块
本设计中将4个红外对管分别装在小车两侧,小车通过两侧光电检测来寻迹并按照轨迹运动的,以及通过光电检测来对黑线技术而共同控制小车的运动。小车的一个红外对管检测黑线,而另一个检测到白色时就证明已经检测到黑线并全速前进,如果检测到的全为黑线或者白线就控制舵机调整角度使小车尽快回到轨迹。在小车的中间安装2个对管来对赛道黑线计数,从而很好地控制车的运动。
其硬件电路如图2所示:
图2 红外对管硬件电路图
2.3 红外测距模块
在设计中,为了防止两车相撞而安装了2个红外测距装置。当后车将要撞到前车时后车将减速行驶,而当后车检测不到前车时将全速追赶,从而很好地控制了两车之间的距离。
2.4 电源模块
电源模块采用3940与LD1117稳压模块对电源进行稳压,可以很好地为单片机及直流电机供电。其优点是输出电压稳定,电机在调速过程中不会对单片机系统产生影响。其电源稳压模块硬件电路如图3所示。
图3 电源稳压模块硬件电路
2.5 无线通信
小车之间要实现循环超车,必须要有通信模块。nRF905无线通信模块可以实现两车之间通信,当前车检测到超车区标志线时立刻减速行驶,同时向后车发送信号,后车接到超车信号时进行超车,当超车完毕后再向后车发信,后车接收到信号后认为前车已经超车完毕,并恢复原始速度继续行驶。其通信模块如图4所示。
图4 无线通信模块
2.6 整车组装及硬件调试
经过对智能小车各个模块的设计及调试,最终完成整车硬件调试工作。各项硬件测试指标达到预期设计要求。智能小车硬件实物图如图5。
图5 通过调试的智能小车硬件实物图
3 智能小车控制策略
(1)普通行车区域
甲车速度为V1,乙车速度V2,Ⅰ、Ⅱ转弯提示线之间路程为Z=0.283m,甲车到达Ⅱ转弯提示线时距离通过Ⅰ转弯提示线的时间为t1,乙车经过Ⅰ转弯提示线的时间为t2。故两车距离为:
将上述数据带入式(1),可求出x,就可求出乙车落后于甲车的距离,故可调整乙车速度,让乙车尽快跟进。当通过红外测距传感器检测到两车距离小于安全距离时,则可在加快甲车速度的同时下调乙车速度,保证两车距离始终保持在安全距离。
(2)超车区域
当甲车进入超车区域向外边界循迹时,向乙车发送信号,乙车接到信号后,全速前进并继续循迹赛道内侧,当甲车计数到达6根或以上时,表示进入超车区,向前减速速度行进,直到检测到赛道外沿执行右循迹程序,实现超车前的避让。而乙车识别超车后,全速进行左循迹前进,并无线通讯告知甲车减速等待超车,当乙车识别到超车区结束后的转弯标志的,表示超车完成,并通过无线通讯给甲车一个全速前进的信息尽量节省时间。当红外检测两车距离小于15cm时,后车减速避免撞车。并且进入超车区,通过乙车循迹完成超车并进入普通行车道后向甲车发出完成超车指令,这时乙车减速运行,甲车加速运行,直至两车接近安全距离边缘,完成整个超车过程。
(3)角色互换
当检测到起始线时标记清零,并通过无线通讯进行两车通信,甲乙两车实现角色互换,重新执行(1)。
4 智能小车控制系统软件设计
通过对智能小车的程序设计实现其平稳控制、可靠检测、准确超车的功能。计算两车准确的距离,从而确定两车的相对位置。
(1)主程序
主程序流程图如图6所示。
图6 主程序流程图
(2)寻迹子程序设计
寻迹流程图如图7所示。
图7 循迹子程序流程图
5 结语
本系统以飞思卡尔MC9S12XS128单片机为核心部件,利用红外检测技术、红外线测距、通信等配合实现在指定赛道内甲乙两车单独行驶,甲乙两车交互超车等规定内容,并且能够在规定的时间内完成任务。在系统设计过程中,力求硬件线路简单,充分发挥软件编程方便的特点来满足系统设计的要求。经过试验验证本智能小车运行平稳、实时性好,完成任务准确。
[1]黄智伟.全国大学生电子设计竞赛训练教程[M].北京:电子工业出版社,2006:204-213.
[2]高吉祥.全国大学生电子设计竞赛训练教程[M].北京:电子工业出版社,2007:176-190.
[3]张银中,吴定会,罗桂发,等.基于MC9S12DG128B的智能小车控制系统的设计[J].伺服控制,2010(6):51-53.
[4]肖成,罗坚.刘锰.基于S3C2440的嵌入式智能小车控制系统设计[J].信息与电脑,2011(5):60-61.
[5]求是科技.单片机[M].北京:人民邮电出版社,2004:91-93.
[6]李华.MCS-51系列单片机实用接口技术[M].北京:北京航空航天大学出版社,2002:135-137.