摘 要:以光敏传感模块、单片机系统模块和电机驱动模块等硬件模块组成的机器人,实现智能循迹机器人在规定的道路上的行驶。循迹机器人能够根据传感器给出的信号探测运动轨迹的变化,给出轨道变化信息,决定前进方向,同时该循迹机器人具有前进、左转弯、右转弯等功能。
关键词:电机驱动;硬件模块;智能循迹;光敏传感;轨道
0 引言
智能循迹机器人是指可以按照预先设定的轨迹在某种特定的环境里自动运行,而不需要人为干涉的机器,是一个运用计算机、传感、信息、通信、导航、人工智能及自动控制等技术来实现环境感知、规划决策和自动行驶为一体的高新技术综合体,可广泛应用于科学勘探、工业控制、家用电器、自动驾驶、智能导航和抢险救灾等领域[1,2]。
1 系统总体要求
基于传感器和单片机的控制技术,设计和实现了一种智能循迹机器人解决方案。设计以光敏传感模块、单片机系统模块和电机驱动模块等硬件模块组成的机器人,实现机器人在规定的道路上的行驶[3]。
1)传感器能够探测运动轨迹的变化,给出轨道变化信息。
2)机器人根据传感器给出的信息,决定前进方向。
3)机器人要能够具有前进、左转弯、右转弯功能。
2 总体设计方案分析
本系统以单片机为核心,整体可分为传感器检测模块、最小系统模块、电机驱动模块、电源模块。传感器主要就是光敏传感模块,单片机控制模块、电机驱动模块是整个系统的智能控制模块。本系统的独特之处在于没有人为干预的情况下能够沿着预定轨道前行,并且能够在行驶偏离黑线时,智能的修正自己的行驶方向。
智能循迹机器人的整体结构由光敏传感模块、微控制器模块、电机驱动模块、转向灯控制模块、显示器模块、RS232 串口下载模块和声光报警模块构成,系统总体构成框图如图1 所示。
智能循迹机器人规定的行走路线用光敏传感电路来探测,微控制器根据光敏传感电路探测的信号并对其进行信号处理,给出相应的控制指令,L298N 是直流电动机的驱动模块,当L298N 直流电机驱动模块接收到微控制器给出的控制指令后驱动直流电机正转或反转,实现智能循迹机器人的前进、后退、左转和右转等功能[5,6],数码管显示器实时将驱动直流电动机正转或反转的代码显示出来,用于查看智能循迹机器人的工作状态,转向灯电路模块则根据直流电动机的工作状态点亮发光二极管给出相应的指示,RS232 串口下载模块则用来下载微控制器的程序,用来和上位机通讯。
3 硬件电路设计
3.1 光敏传感模块
光敏传感电路由光敏电阻、发光二极管、反相器和反向施密特触发器构成,如图2 所示,图2 中只画出其中一路光敏传感电路。
通过光敏电阻接收经路面反射的发光二极管发出的光线,当接收到的反射光线较弱时,光敏电阻所呈现出来的状态是高阻状态,通过电阻分压可以得到高电平信号输出,当接收到的反射光线较强时,光敏电阻所呈现出来的状态是低阻状态,通过电阻分压可以得到低电平信号输出。因此,光敏传感器输出的高低电平可用于反映反射光线的强弱。施密特触发器的主要作用是放大、整形及消除噪声,由于施密特触发器具有电压滞后特性,当输入电压降到电平时,此时触发器并不翻转,而是要等到输入电压继续下降,当输入电压小于等于负向阀值电压电平时,触发器翻转,给出高电平。当输入电压上升到大于等于正向阀值电压电平时,触发器产生翻转,此时触发器给出低电平。因此,使用施密特触发器比使用电压比较器用于消除噪声的效果更好。
由贴在白色平面上的黑色胶带构成了智能循迹机器人行走的具体路径,由于在白色路面贴上黑色引导线,光敏电阻接收到白色路面反射的光线的强度与在黑色引导线接收到反射的光线强度不同,根据在光敏电阻两端所产生的电压不同来判断智能循迹机器人行走的走向。
智能循迹机器人光敏电阻的摆放采用如图3 所示的阶梯型排布,这样的排列有利于检测路径的变化情况,做出相应的处理。由5 个光敏电阻所采集到的数据构成一个字节的高五位,该数据首先通过施密特触发器进行放大整形,经过放大整形后的信号又通过反相器反相后给单片机。由于单片机同时要给出转向灯信号、显示器的断码及传感器模块的数据输入。因此,在这里选用74HC245 总线收发器作数据分流,由单片机的P34 引脚作数据选通端。
3.2 微控制器模块
微控制器作为智能循迹机器人的核心控制器件,主要作用是根据软件算法对光敏传感电路所采集的信号进行处理,同时给出外围电路模块的控制信号,给直流电机驱动模块L298N 发送控制信号。当智能循迹机器人在发生突发事件时,微控制器还同时进行监控和处理,保证整个控制系统的正常工作。在这里微控制器选用STC89C52RC 单片机,由于STC89C52RC 单片机介绍的文章较多,在这里不做详细敷述。微控制器模块如图4 所示。
3.3 电机驱动模块
电机驱动模块由74HC14D 和L298N 构成,如图5 所示。L298N 是SGS 公司的产品,有4 个驱动电路,是一种二相和四相电机的专用驱动器,器件内部有两个双全桥的H 型驱动电路,不仅可以接收标准TTL 逻辑电平信号,而且可驱动46V 且2A 以下的电动机。L298 可驱动2 个直流电动机,out1、out2、out3、out4 可以任意两个输出口之间分别接单片机的引脚,用来控制直流电动机的正转和反转,ENA、ENB 是L298N 的控制使能端,用来控制直流电动机的停转,还可以输入PWM 信号来控制电动机的转速。L298N 的逻辑功能见表1 所示。
由于电动机在转动时,会产生很大的电磁干扰,对电源的干扰很大。若只用一组电源的话,会对单片机的供电稳定性造成干扰。所以应当对单片机和电动机分别供电。单片机和控制电路用5V 电源供电,直流电动机则由9V 电源供电。用光耦将控制部分和电动机驱动部分隔开,用于消除5V 电源供电的稳定性。
3.4 转向灯模块
数据锁存器74HC573 用于做转向灯模块的驱动芯片,单片机通过P0 口将控制代码发送给数据锁存器74HC573,数据锁存器74HC573 通过单片机的P12 引脚来进行选通,电路图如图6 所示。
3.5 显示器模块
4 个共阳极数码管构成显示器,单片机P2 口的低4 位用于显示器的位码输出,用三极管驱动,单片机的P0 口给出显示器的段码输出,电路图如图7 所示。
3.6 串口模块
串口模块通过MAX232 将程序数据下载到单片机,用于完成与上位机的通讯。
4 软件设计
4.1 功能及算法分析
传感器传送的路径识别信号由单片机控制系统接收,当单片机控制系统接收到路径识别信号后,通过软件程序计算可以得到智能循迹机器人具体的方向偏移量和速度,控制智能循迹机器人具体的行走状态。单片机根据光敏电阻给出的电平信号并对其进行编码,将智能循迹机器人的行走状态分为5 种情况,具体代码如表2 所示。由单片机的P0 口给出转向灯的控制电信号,输入到数据锁存器74HC573 的第2 到第9 引脚,由其输出的高4 位用于控制转向灯,单片机P2 口的高4 位引脚输出控制电机的电平信号,通过施密特触发器对信号进行放大、整形、消除噪声后输出给直流电动机驱动芯片L298N,用来控制电机的转动。数码管显示器则实时显示智能循迹机器人的运行状态,当智能循迹机器人右转时,显示“-- 彐”, 当智能循迹机器人左转时,显示“E--”,当智能循迹机器人停止前进时,显示“0000” ,当智能循迹机器人全速前进时,显示“1111”,当智能循迹机器人后退时,显示“----”。具体代码及状态如表2 所示。
4.2 系统程序设计流程图
智能循迹机器人控制系统程序由主程序、延时子程序、电机控制程序、光敏传感器扫描程序和电机调速程序构成,程序流程图如图8 所示。
智能循迹机器人控制系统的软件使用C51 进行编程,首先智能循迹机器人控制系统进入初始化状态,配置好各寄存器的初始状态,然后智能循迹机器人控制系统进入传感器信号扫描状态,智能循迹机器人控制系统将光敏传感器给出的状态信息转换成相应的控制代码,得到智能循迹机器人具体行走的路径,同时单片机将路径信息进行判断处理,再将相应的信号发给电机驱动模块纠正小车的运行状态,从而达到自动循迹的功能[8]。
5 结语
文章从智能循迹机器人控制系统的总体要求、方案分析、硬件设计以及软件设计4 个方面详细介绍了智能循迹机器人的总体设计方案。经过测试,该控制系统能够做到准确、实时地控制智能循迹机器人的运行状态,该系统具备良好的抗干扰能力,能够有效的为智能循迹机器人的决策系统提供较为准确的输入,可以为科学勘探、工业控制、家用电器、自动驾驶、智能导航和抢险救灾等领域提供更加丰富的解决方案。