智能车辆导航系统

2018-05-14 09:57张媛,汤舜彬
现代职业教育·职业培训 2018年2期
关键词:循迹字符串口

张媛,汤舜彬

[摘 要] 研究了一种基于AGV理论的智能车辆导航系统,即陆地自主行驶车辆。这个系统选择红外循迹作为该系统的导引方式,能让小车沿着预定路径行驶,遇障停止以及判断不同路径长短,从而进行规划。这种自动导引的方式的导航系统小车可以广泛应用于工厂车间的搬运工作中,大大减轻了车间搬运工作量。

[关 键 词] STC12C5A60S2 单片机芯片;HC-05蓝牙模块;L293D驱动模块;循迹 HJ-IR2

[中图分类号] U471 [文献标志码] A [文章编号] 2096-0603(2018)06-0151-01

一、硬件设计

(一)STC12C5A60S2模块

该芯片为插针式、单时钟、1T机器周期,程序指令执行速度快,功耗低,抗干扰极强的新生代8051单片机,其程序指令代码完全兼容传统8051芯片。

(二)驱动模块

驱动部分采用双路L293D直流电机驱动模块,可通过程序控制小车前后左右四个方向的控制。在该项设计中使用了四驱智能小车核心集成板,这个开发板自带了双路L293D直流电机驱动,而且还集成了51最小系统,全新集成LM2596S开关电源稳压芯片,支持6-12V宽电压输入,经过稳压后输出多路5V给传感器和单片机使用。

(三)循迹模块

该智能小车系统红外导引使用的是2个HJ-IR2不怕光红外循迹传感器模块。当检测到浅色地面时,红外管发出的红外信号被红外接收管接收回来,经集成的芯片放大、比较后,点亮模块上的信号输出LED指示灯,同时可以输出一个低平信号,其电平变化可以作为单片机的信号输入检测,通过程序控制外部各种驱动模块之用,其中检测到黑线则不反射红外信号。

(四)光电传感模块

该系统采用E18-D80NK探测距离可调光电传感器模块。检测到物体距离小于某个范围时为低电平输出。其中检测距离可以根据要求进行调节,调节方式为通过尾部的电位器旋钮进行调节。

(五)蓝牙模块

HC-05是主从一体化的嵌入式串口通信模块,具有两种工作模式,分别为命令响应工作和自动连接工作。在自动连接工作模式下又分为主、从机和回环三个角色。当属于命令工作模式时能执行AT指令,例如,蓝牙模块与PC机相连时,用户可通过串口调试助手向模块发送各种AT指令进行相应配置,如设置蓝牙为从机模式,设置蓝牙的波特率、蓝牙启动密码、任意地址链接模式等。其中模块工作状态的转换可通过控制模块外部引脚输入电平来实现。

二、软件设计

(一)系统数据流向

数据流向是单向部分:对光电避障模块和红外循迹模块,单片机只需监测输出引脚电平变化数据即可。避障模块检测到低电平时即前方有障碍物,循迹模块检测到黑线时会给输出端口一个高电平。

根据上述两个模块输出端口电平变化,单片机对L293D输入引脚根据信息输出不同的电平,以此来实现相应方向控制。

数据流向双向部分:蓝牙模块与单片机还有手机的通信,属于全双工通信。蓝牙是作为一个信息传递的中介:蓝牙模块的引脚与单片机串口相连,实现双向通信。蓝牙与手机APP配对,实现无线通信。

(二)程序流程

程序一开始让小车处于停止状态,此时对中断允许寄存器和中断控制寄存器进行设置,开启总中断和串口1中断,选择定时器1,16位数据模式,并且设定好初值TH1和TL1,使定时器1每1ms触发一次,直到1000ms时将计时变量runtime值显示到APP上。串口中斷开启后一旦检测到串口发来的数据,单片机自动触发串口中断。

程序设置完中断有关的寄存器后,执行while(1)循环,进入串口数据读取判断部分,串口读取的数据赋给串口变量com,通过if结构对串口com值进行相应判断。

如果串口com读取的数据为字符“1”(也可转为ASCII码值,字符“1”的ASCII码为0×31),小车开始循迹,进入下一判断,通过循迹模块的输出引脚的变化,即通过铺设的黑线路径选择相应的前进方向。程序中Left_moto_go,Left_moto_Stop,Right_moto_go,Right_moto_Stop这四个定义的程序分别代表小车的左右四电机的运转情况,通过分别使用这四个程序指令,完成小车的方向操作。如果读取串口的com变量为字符“2”(ASCII码为0×32),则小车停止。同时在定时器中断进行计时里也有对串口读取数据值的判断,这个判断在读取到字符“2”时,停止计时,此时手机APP停止接收时间数据。

定时器1的中断函数经过初值设置,每1ms进行一次。此时引入静态变量cnt,经过调用随着中断次数的增加cnt本身值也随之增加,直到cnt为1000ms,cnt清0,执行串口数据判断,若端口数据变量com读取的数据为字符“1”,时间变量runtime数值加1(runtime初值为0),并将runtime的数值通过蓝牙送给APP界面显示,直到com读取数据为字符“2”时(即APP按下停止键),runtime清0,此时停止显示时间。

这样就实现了每1s计时一次并显示的功能,循迹检测不到黑线时小车停止,说明路线已经走完,此时强行给串口变量com赋值字符“2”,停止计时。智能车辆导航系统正是通过这个显示的时间来判断路径的远近。

由此计时可总结为:(1)路径时间长短为启动键按下到停止键按下后这一时间间隔。(2)路径长短为循迹开始到路径结束后的计时。

猜你喜欢
循迹字符串口
基于MSP430单片机的智能导盲小车设计
Python实现图片转字符画
正则表达式快速入门
图片轻松变身ASCⅡ艺术画
MCS—51单片机中的多串口通讯技术的应用
基于“STC80C51单片机”的智能小车系统的设计
基于K60的智能循迹小车系统实现
视频监视系统中字符叠加技术的应用
全国计算机等级考试机房准备工作探讨
微机串口的测试诊断