高英英
(西安信息职业大学,陕西 西安 710125)
智能小车在当今社会上发展得很快,从智能玩具到其他各行业上都有了实质性的发展成果[1,2]。智能遥控小车是20世纪提出的一种新型小车,它可以开发幼儿的智力,提高小朋友的反应能力与左右手协调能力,在很大程度上可以代替人们的工作,由无线遥控操作在军事侦察、反恐以及防污染等其他高风险环境中,且具有低成本、体积小以及强大的生存能力等特点,因此应用前景广阔[3-5]。由于各个企业的生产技术都在不断提高进步,人们对自动化和智能化等的要求也在不断深化,单片机的应用领域也越来越广泛,无论是在生活中还是在生产上,单片机都是随处可见。自20世纪70年代单片机出现以来,就广泛地应用于工业自动控制化、智能仪表仪器、机电一体化设备、通信设备以及汽车电子等各个领域[6,7]。STC89C52是单片机领域的主流商品,其应用非常广泛,所以有必要去学习和应用,既满足了实际产品开发的需要,也适应了社会智能化和自动化的趋势[8,9]。通过无线蓝牙串口在手机端以触摸屏按键的形式控制,具有简单、直观、方便以及易操作等特点[10]。如今,人们对智能化的需求与依赖越来越大,随着无人汽车、无人超市以及5G网络等智能领域的发展,智能信息化已逐渐走进人们的生活[11]。本文所设计小车的功能塑造性较强,不局限在单一场景,日后通过不断扩展和改进,可用于日常生活。
本系统可以实现小车的循迹、避障、跟随及蓝牙遥控的功能,主要是由单片机控制模块、电机驱动模块、红外避障模块、红外循迹模块、蓝牙模块以及电源模块组成,具体如图1所示。
图1 小车的系统总功能框架图
通过对周围信号环境的检测,传感器生成信号,通过LM393比较电路输出高电平或者低电平给单片机引脚。单片机通过程序设计对引脚电平变化做出设计好的电路反应,传输信号波形给电机驱动电路进行调节小车的运行情况。功能设计如图2 所示。
图2 功能设计框图
通过串口将手机终端与小车的蓝牙配对,单片机接收到手机端按键命令传输的波形信号,按预设的程序设计对引脚电平做出电路反应,小车的电机驱动电路按指令运行。蓝牙遥控设计如图3所示。
图3 蓝牙遥控设计框图
本文设计了智能小车系统,系统分为小车和手机串口应用程序遥控终端两部分,具有自动避障、循迹、跟随及蓝牙遥控的功能。设计选用了52系列单片机作为控制端进行控制,机械平台则是采用了常见的电机模型车,利用所学的电机控制技术和传感器技术的相关知识,实现小车的前进后退、转向驾驶、检测、避障、跟踪以及蓝牙遥控等功能。
本系统采用STC89C52单片机为控制核心,在5 V供电下支持80 MHz晶振,且内部有512B的RAM数据储存器,片内含8K空间可反复擦写1 000次的Flash只读储存器,1K的EEPROM、8个中断源、4个优先级、3个定时器以及32位I/O口线,另外自带看门狗定时器、双数据指针、全双工串行口、片内晶振及时钟电路等。单片机最小系统与电机驱动模块、红外避障模块、红外循迹模块以及蓝牙模块组合成硬件系统,通过红外传感实现小车智能循迹、避障、跟随及蓝牙无线遥控等功能,并通过STC89C52单片机整合处理全车各类信息,使系统正常工作。
L298电机1脚是使能脚,前端控制,输出高电平有效;2脚是控制接口;2、3脚接左电机输出端;4、5脚接地;7脚控制左电机信号;8脚驱动电机,电压输出到电机决定电机的速度,13、14脚接右电机。电机驱动模块原理图如图4所示,其中双驱动ENA调速,4个二极管抗干扰,保护电路左边接口接左电机,右边接口接右电机,协调运行。
图4 电机驱动模块原理图
小车避障模块采用红外传感器,红外发射V1通过限流电阻加与电压,发出红外光,红外接收头V3接收红外光,其阻值降低,电压降低,输出低电平。通过电位器W1改变参考电压、灵敏度以及芯片的比较电压,右边电路与左边电路相对称。若前方有障碍物则D3亮,信号由P34传到单片机。避障模块原理如图5所示。
图5 避障模块原理图
循迹电路与避障电路相似,V2,V4为循迹探头,循迹功能由循迹探头实现,黑色灯为接收,白色灯为发射。当左边红外黑色传感器接收到红外信号时,证明地上没有黑线,接收不到红外信号时,则地上有黑线,小车由此来左右判别黑线的位置,从而做出反应,沿着黑线走。循迹模块原理如图6所示。
图6 循迹模块原理图
蓝牙模块采用HC-05安装于小车端,通过蓝牙串口与手机端连接,从而实时接收遥控发送的新指令。HC-05是主从一体的蓝牙模块,输入电压为3.6~6 V。运用蓝牙V2.0协议标准和CSR主流蓝牙芯片,用户可根据需要设置特定波特率,性能稳定,在开阔环境且无干扰情况下传输距离可达10 m以上。蓝牙的TXD和RXD是相对其本身来说的,即蓝牙的TXD要接外部设备(如单片机)的RXD,蓝牙的RXD要接外部设备的TXD。
本次设计的程序编写和编译是采用的Keil Software公司开发的Keil 4,该软件包含了C51编译器和链接器等一系列集成工具,使用起来比较方便。程序下载软件采用的是宏晶科技提供的stc-isp-15xxv6.86C,大部分STC系列的51单片机都采用该软件下载程序。
main主程序中主要对定时器0进行了初始化,定时器0中断用于产生PWM,驱动电机正反转,还初始化了串口,波特率为9 600 b/s,串口用于和蓝牙通信,使得能够用手机控制小车。接着进入了主循环,该小车共有4种工作模式,分别是循迹、避障、跟随及蓝牙控制,主循环中先判断有没有按下模式切换按键,如果按下了该按键则切换工作模式,最后进入各个模式的子函数。主程序流程如图7所示。
图7 主程序流程图
主函数在调用循迹子程序时,子程序先判断检测黑线的两个红外,当两个红外仅有一边检测到黑线时,就往黑线那边转弯,当两个红外都检测到黑线时停车,否则就前进。循迹子程序流程如图8所示。
图8 循迹子程序流程图
避障子程序跟循迹的判断逻辑相同,某一侧的红外检测到物体时视为障碍物,小车会往另一个方向走,从而达到避障的目的。避障子程序流程如图9所示。
图9 避障子程序流程图
跟随子程序跟循迹的判断逻辑相同,只不过这时检测的红外是用于检测物体的红外,跟前面的检测黑线的红外不是同一个。跟随子程序流程如图10所示。
图10 跟随子程序
蓝牙控制子程序是根据小车的状态来控制小车,而小车的状态又是根据接收到的蓝牙指令来设置的,当用手机蓝牙向小车的蓝牙发送指令时,串口就会产生中断,接收蓝牙发来的指令,并根据这些指令去设置小车的状态,蓝牙控制子程序就会根据这些状态来调用相应的函数。另外用手机蓝牙向小车发送指令是采用一个名为SPP的蓝牙调试助手,该App允许用户编辑按键和按下按键时发送的指令,非常适合蓝牙小车的调试与制作。蓝牙控制子程序流程如图11所示。
图11 蓝牙控制子程序
本设计将手机端App输出的串口数据通过蓝牙无线模块传输相给小车上的主控芯片上,计算并判断X,Y的角度值,输出相应占空比的方波发送给电机驱动模块,从而达到对小车进行前进、后退、左转以及右转的无线遥控功能。主控芯片将接收到的红外传感模块的电平信号进行处理和分析,判断小车左右侧有无障碍物和黑线,从而输出相应占空比的方波发送给电机驱动模块以实现小车的智能避障、跟随及循迹功能。
接通电源,切换至循迹模式,数码管显示“1”,小车执行循迹功能。在地面事先贴好黑胶布轨迹,黑胶布既有直线的,又有转左转右的,此外有小角度的转向也有大角度的转向。调节电位器至适中,观察小车循迹,调节小车速度达到最好循迹效果。测试结果如表1。分析可知,小车在黑线轨迹宽度区间为10~25 mm时能正常循迹行驶,在轨道弯道大于90°时能正常拐弯。
表1 循迹功能测试表
切换至红外避障模式,数码管显示“2”,小车执行避障功能。用手挡在红外传感器前面,观察电机变化是不是程序设计的结果。调节电位器至红外检测适中距离,将小车放地上,接通电源,在小车前进的时候用挡板挡在避障传感器前面,测试小车反应,调节小车速度到适中档位。经观察,小车在距离障碍物约80 mm时,对应的红外检测二极管会发亮,但由于小车行驶惯性,避障的距离会相应减小。
切换至跟随模式,数码管显示“3”,小车执行跟随功能。经观察,当物体在距离小车约50 mm以内时,其对应的红外检测二极管就会发亮,小车会跟着物体行驶。
蓝牙遥控模式,数码管显示“4”,小车执行蓝牙遥控功能。打开手机端蓝牙串口进入连接状态,设置手机端控制键盘,然后在手机终端对小车进行前后左右各方位的遥控,计算小车最远遥控距离,观察小车的反应,修改速度,也可以根据需要添加或减少控制功能。通过手机端向小车蓝牙发送指令,在开阔且无干扰的环境下其传输距离可达10 m,即当小车在10 m以内的范围均可受手机端控制行驶。
小车的避障功能使小车在行驶过程中不发生碰撞,跟随功能让小车根据牵引者的指导行驶,蓝牙遥控功能则可以随意操控小车的行驶状态。但由于使用的是红外传感器,所以在调试过程中也要考虑光对各功能的影响。小车的模型实物如图12所示。
图12 小车模型实物
本文设计的多功能小车以STC89C52为控制核心,以四轮模型车为机械平台,通过传感器、串口连接以及电机控制等实现了跟踪、循迹、避障及蓝牙遥控功能。小车分为硬件和软件两个部分,硬件部分主要有红外模块、蓝牙模块、驱动模块以及电源,软件部分则是通过程序控制单片机实现小车的功能。智能小车自动识别路线、障碍物并智能避障和蓝牙遥控的研究是基于自动引导机器人系统,用以实现小车自动识别周围环境,并做出相应的控制系统反应,是智能小车研究领域的重要组成部分,初步实现了多学科领域的综合研究。