摘要:采用AT89S52单片机为主控制芯片,结合直流电机、多种传感器、红外遥控及其他外围电路,设计实现了一种沿黑色轨迹行走的智能循迹小车,同时还能自动避障,并在遥控的作用下完成小车行走的控制。实验证明整个系统设计灵巧、控制准确、工作稳定、使用效果良好。
关键词:AT89S52;智能寻迹;避障;直流电机;红外光电传感器
随着计算机、微电子、信息技术的快速发展,智能化技术的开发速度越来越快,智能度越来越高,应用范围也得到了极大的扩展。智能小车作为移动式机器人中的一个重要分支,具有环境感知、规划决策、自动行驶等功能,是智能化技术中一个典型的例子。设计者可以通过软件编程,让小车在预先设定的模式中实现行进、寻迹、避障等精确控制,无需人工干预,当有特殊需要或在出现故障的情况下还可以对小车进行远程遥控,可以应用于科学勘探等用途,具有广阔的发展前景。
1 系统总体设计框图
本设计中,智能小车是由主控制模块、电机驱动模块、循迹模块、避障模块、遥控模块、声控模块、光控模块、电源模块和其他外围电路组成,其总体硬件结构框图如图1所示。
2 系统硬件设计
2.1 主控制及电源模块
智能小车采用现在较为流行的8位单片机作为系统大脑。以8051系列家族中的AT89S52为主芯片。40脚的DIP封装使它拥有32个完全IO(GPIO-通用输入输出)端口,通过对这些端口加以信号输入电路,控制电路,执行电路共同完成智能小车的功能。电源模块用4节1.5 V的电池供电,经L7805稳压模块后,输出电压稳定在+5 V,从而向各个模块供电。
2.2 电机驱动模块
智能小车采用前轮驱动,左右前轮各用一个直流电机驱动。电机驱动芯片采用LG9110,该芯片两个输出端能直接驱动电机的正反向运动,具有较大的电流驱动能力。单片机的P0.0,P0.1,P0.2,P0.3分别连接到LG9110的两个输入端,用以驱动电机M1和电机M2,如图2所示。不同的输入信号控制电机的正转与反转,以完成机器人的前进,后退,左转,右转,遇障碍物绕行等基本动作。两个电机同时正转时,小车前进;两个电机同时反转时,小车后退;左侧电机不转,右侧电机正转,小车左转;左侧电机正转,右侧电机不转,小车右转。这些基本动作正确,实现简单。
2.3 寻迹模块
寻迹在这里是指沿黑线行走,它靠小车前端底部的两对红外发射和接收探头来完成。如图3所示,V6、V5为小车左侧的红外发射与接收管,V3、V4为小车右侧的红外发射与接收管。发射管发出红外线,当碰到黑色或不反光的物体时,红外反射量大量减少,若碰到白色或反光的物体时,红外反射量则较多,红外接收管将接收的反射光转化成电压值,由P3.5,P3.6送回到单片机,经过处理后控制信号由P0.0,P0.1,P0.2,P0.3口输出给电机驱动电路的LG9110芯片,从而达到驱动小车行走和循迹的目的。循迹时,由于红外线在白色地板和黑线上的反射系数不同,所以可以根据三极管接收红外线的强弱来决定小车的走向。当左右接收管都能接收到反射回来的红外线,则小车直线前进;当左边接收管接收不到反射回来的红外线,右边接收管能接收到时,说明小车向右偏离黑色轨道,则小车向左转动;同理右边接收管接
收不到反射回来的红外线,左边接收管能接收到时,说明小车向左偏离黑色轨道,则小车向右转动,从而实现自动循迹。本设计中红外传感器离地面垂直距离为1~1.5 cm,能在没有强烈日光干扰或在有日光灯的房间里,完全能满足探测要求,具有很好的可靠性与抗干扰能力。
2.4 避障模块
小车在运行中如果前方有障碍物,小车则开始向后后退一段时间后,向左运动,在向左运行一段时间后,再开始向前运行。在整个调向的过程中,蜂鸣器响动。这个就是避障功能。该功能是由安装在小车前方的一对红外发射管实现,原理与寻迹模块相同。
2.5 遥控模块
遥控模块由红外发射与接收两部分组成。红外发射采用常用的TC9012集成芯片,将某个按键所对应的控制指令和系统码(由0和1组成的序列),调制在38 kHz载波上,然后经放大、驱动,红外发射管将信号发射出去。接收部分采用红外一体化接收头,当接收到38 kHz红外信号后就输出低电平,没有接收到就输出高电平,电平信号由单片机的外部中断来接收。信号的下降沿触发外部中断。为了识别一个完整的键信号,必须对每一个编码脉冲的宽度进行测量,利用单片机中的定时器/计数器来测量脉冲宽度,以判别接收到的脉冲是0还是1。通过遥控模块,可将按键值显示在数码管上,并控制小车的行进方式。
2.6 声光控模块
该小车具有简单的声控功能,P0.4为机器人的声控检测端口,在运行为前进状态时,可以通过声控来控制它的运行与停止。声音的输入是通过话筒,由话筒对声音信号进行识别,如图4所示。由于电路能有效去除杂波,所以仅能对响度较大的声音进行识别(如拍手声)。像正常的说话声对本电路滤除,不会产生信息的输入。同时该小车还具有光控功能,如图5所示。当为白天或黑夜时可以通过P0.5端口中的光敏电阻来进行判断,以方便完成机器人夜间自动照明等功能。当光线较暗时,由P0.6端口输出信号控制蜂鸣器发声。
2.7 通信模块
通信模块是采用AT89S51自带的全双工串行通信口P3.0和P3.1来实现。可用电脑通过串口向小车发送数据,数据在数码管上显示,并且小车根据数据执行相应的动作,如前进、左转、右转、后退等。通信波特率为9 600,数据为8位,无校验位。
3 系统软件设计
该智能小车的软件控制部分采用C语言编程,借助C语言的强大功能来实现单片机AT89S52的控制功能。小车各个模块都可以编写相应的程序,也可以将这些分立的程序模块(一般寻迹模块除外)组合起来,完成强大的功能。主流程图如图6所示。
4 结论
本文提出了一种基于AT89S52单片机为控制核心的多功能智能小车的设计方案,该方案以红外传感器作为路径信息采集手段,以LG9110芯片来控制并驱动电机运行,实现小车在固定轨迹上自动循迹、避障。同时还具有声光控功能,能根据外界声音、光线来控制小车的动作。整个设计功能丰富,电路简单,成本低且易于实现,具有很强的操作性。