樊一航,史钰博,陈 垚,吴 凡,黄 帅
(西安石油大学电子工程学院 陕西 西安 710065)
红外循迹智能小车主要由单片机模块、传感器模块、电机驱动模块以及电源模块组成。该小车拥有自主循迹功能和避障功能。本研究我们采用的主控芯片为STC89C52单片机,该设计的传感器模块分为避障模块与循迹模块,循迹模块均采用基于红外光学反射原理的光电对管和集成放大器实现,能够识别黑白两种颜色的路面,避障模块由红外避障模块和超声波测距模块组成,能够测量小车与前方障碍物的距离[1],并传输给控制模块。本设计的动力单元由电机驱动模块L293B驱动芯片以及4个带有减速齿轮组的直流电机构成,供电单元采用两块3.7V直流电池串联,将这些单元集成在一起,实现了小车的自动避障和自动循迹的功能。
智能小车的控制单元作为小车运行的核心部分,其作用为控制小车的运动。本越障小车采用的MCU是STC89C52单片机,见图1。控制单元设计包括单片机的启振电路和功能选择电路。单片机启动运行时,需要用按键进行功能选择,以实现小车的功能切换,电路原理图见图2。单片机晶振使用外接晶体和电容组成的并联谐振回路。为了使控制更加精确便捷,我们选用的晶振频率为12.000 MHz。
因为单片机的输出信号电压偏低,且负载能力不足以用来驱动直流电动机,因此采用L293B驱动芯片完成电机的驱动工作。L293B驱动芯片是一款性能卓越的直流电机驱动芯片,它可以同时驱动4个直流电机。在4~6 V的电压下,每个输出口均可输出1A左右的电流。并且L293B芯片还具有过热自动关断的功能和单独的逻辑供应功能,以及高噪声免疫力[2]。L293B芯片可以将单片机输出的信号进行功率的放大,以此来驱动4个电机正常工作。电路图见图1。
图1 驱动部分电路图
小车采用了4位共阳极数码管显示,它有4个位选,由于本实验只需要显示小车停止行驶的时间,因而值需要选通一位位选线,当各段阴极上的电平为“0”时,该段点亮,电平为“1”时,该段熄灭。
DHT11确保产品具有极高的可靠性与卓越的长期稳定性。如果探测到黑线,红外对管接收端接收到黑白线反射回来的红外光,其输出经过LM393电压比较器后立即发生高低电平的转换,此信号经过放大之后送到单片机进行处理,随后将结果发送到电机的驱动单元,完成路径的校正[3]。
在运动过程中,车体不可避免地偏离运动轨迹,为了使车体在车体偏离后仍可自动调整方向,重新回到运动轨迹上,我们采用了3个集成的红外对管,这样便可以保证始终有两个对管始终可以检测到运动轨迹。电路图见图2。
图2 红外循迹模块电路图
传感器对环境光线有着很强的适应能力,具有一个红外发射管和一个红外接收管。其原理为发射管先发射出红外线,当红外线的探测范围内发现障碍物时,随后由接收管接受反射回来的红外线,经过集成放大器电路处理后,此时信号指示灯会亮起,并且数字信号输出端会输出一个低电平信号,MCU得到一个避障的信号。此外,该模块可以利用电位器旋转按钮调节探测灵敏度。调节范围为2~30cm,工作电压为3.3~5 V。
超声波模块将采购现有的HC-SR04超声波测距模块,该模块可以给我们提供2~400 cm的传输距离和时间的计算功能,并进行精确的计算,测量距离的精确度可以达到3mm左右。此单元包含了控制电路、超声波发射和接收三大部分。此模块的工作原理为:模块的测距方法是使用TRIG端子触发,发出的高电平电信号至少10 us;TRIG自动发送8个频率40 kHz的方波,遇到障碍物以后,自动检测有无返回的信号,当检测到有信号返回时,超声波的另一个端ECHO会有一个高电平输出,从超过声波发出到声波返回至ECHO口的时间即为高电平持续的时间。其中,VCC电源接口连接进入单片机5 V接口供5 V电源,GND接入整个电路的接地连线,并与单片机接地模块连接,TRIG触发控制电信号输入,ECHO回响电信号输出等四支线[4]。
测试距离=[高电平时间*声速(340M/S)]/2。
本设计部分为电源模块,使用的是LM7805稳压芯片(5V稳压)。使用此芯片搭建电路有以下几个优点:实用且性能良好,完全可以支持本智能越障小车中控部分单片机输入输出电路的供电需求,以及电机驱动部分包括L298B芯片的供电需求。此芯片共有输入端IN(最大12 V),输出端口OUT(5 V)以及接地端GND。当然,接地端可以作为整个越障小车的控制电路的接地部分连入电源5 V电源接口。在正常工作的情况下可以输出1.5 A左右的电流,其自身的散热能力足以支持其输出大于1.5 A的电流。LM7805稳压芯片的输入电压范围为9~15 V左右,输出端口可以保持5 V的稳定输出电压,其输出电压波动范围不超过±0.2 V,最大程度上保证了单片机最小系统的供电稳定情况以及达到了保护电路不过载的效果。根据电机驱动模块的电压需求,我们选择了12 V的电源作为小车动力源;既能保证电流电压的稳定度,又可以达到保护整个电路的目的。
经过小组成员的反复实验及讨论验证,我们决定采用四轮驱动汽车模型,即4个轮子都用转速比和力矩基本相同的直流减速电机进行驱动。这样,当两边直流电机向相反方向进行转动,并且当转速基本相同时,就可以实现智能越障小车的原地自转,就可以拥有更大的灵活度,由此可以轻松实现小车坐标不变的90度以及180度的原地转弯。
小车越障主要需要两个部分配合完成,其一是由舵机和机械支架组成杠杆模块,需要在小车遇到障碍物后将机械支架翻转到车下方,架空小车的前端部分,此时小车仍处在行进中,后轮的驱动可使小车爬上障碍物,此时收起支架,完成小车的越障操作。其二,小车在前轮悬空状态下需要后轮的驱动力足够大,所以需要合理配置电机驱动部分,保证小车可以翻越障碍物[5]。
一般小型舵机接线有3根,分别为电源线、控制线和地线,电源线和地线直接和小车电机驱动部分连接,控制线则接入单片机的控制管脚上,控制线的输入是一个宽度可调节的周期性方波信号。当方波脉冲宽度改变时,舵机转动的角度也随之变化,角度变化与脉宽成正比。因此,采用PWM脉宽调制最为合适。
舵机:DS3230(30 kg),工作电压4.8~8.4 V。
图3 所选择舵机实物图
机械支架:长大约800 mm,可将小车前轮抬起200 mm左右。
红外模块:TCRT5000。
小车底盘:亚克力智能小车底盘(长:260 mm,宽:140 mm)。
车轮:直径约65 mm,重约40 g。
电机:直流减速电机(减速比1:48)。
电机驱动芯片:L293D。
软件部分流程图见图4。
图4 软件设计流程图
需要配合小车前端的红外测距模块,遇到障碍物后,在机械支架作用范围放下支架,帮助小车进行越障操作;支架转动的角度需要靠与其相连的舵机进行控制,利用PWM调速的方式对舵机转动角度进行控制,确保小车不会发生翻转现象。如果红外模块一直检测到障碍物,说明未成功翻过障碍物,此时小车进入避障程序,向右后方行驶,避开障碍物。程序流程图见图5。
图5 越障程序流程图
本文设计了基于52单片机控制的智能小车的控制电路、驱动电路、传感器电路以及越障方案。越障小车通过对地面黑色引导线的识别,进而将其转化为控制电路的输入信号,最后再由核心控制电路控制电机的转停从而实现循迹。此外还增设了越障小车的越障功能,能够有效防止小车不必要的损坏。整个系统稳定性高,红外反射光电传感器布局合理、运行稳定。