方志阳+储太
(中国民航大学电子信息与自动化学院 天津 300300)
摘 要:智能引导小车在生活中所能扮演的角色越来越多,所起到的作用也越来越大,当人们在一个陌生环境如图书馆,博物馆或旅游景点,想到达自己想去的目的地往往需要话费一番力气,而自主规划路径的小车正好能为这些人提供方便。本文论述的智能引导小车以STC89C52单片机为核心,通过栅格法进行自主路径规划,并由红外传感器辅助行进,以及通过射频卡来识别目的地,综合运用了蓝牙通信、自主路径规划、语音合成、射频卡识别等技术,使小车能实现自主路径规划,并提供引导的目的。
关键词:自主路径规划;避障;射频卡识别
基金项目:中国民航大学大学生创新创业训练计划优秀培育项目
项目号:IEKCAUC2015018
1 引言
现如今,智能小车的相关研究不断深入,使得小车在加相应传感器后完成某一特定功能成为可能,可实现循迹、避障、跟随等功能。因此智能小车开始逐步走向实际生活,并且各个方面为人们提供服务。
本文设计实现的智能小车以STC89C52单片机最小系统作为主要控制核心,首先叙述单片机最小系统、目的地输入模块等智能小车的硬件,然后介绍引导小车时的自主路径规划、避障以及目的地输入与检测等软件的设计与实现。
2 智能引导小车的硬件设计与实现
智能小车的硬件是整个小车控制系统能否顺利运行的基础。其硬件主要由单片机最小系统作为控制器,用蓝牙传输输入目的地,用直流电机、光栅以及光电传感器来实现顺利行进,主要硬件模块包括:单片机最小系统、目的地输入模块、小车驱动模块、避障模块、射频卡模块、语音模块。
2.1 单片机最小系统
STC89C52是STC公司生产的一种低功耗、高性能微控制器,具有8K字节系统可编程存储器,使用经典的MCS-51内核,但具有传统51单片机不具备的功能。
2.2 目的地输入模块
采用蓝牙输入作为输入的方式,所使用的为CSR-BC417蓝牙芯片,工作电压为3.3V,电流配对时为20-30mA,配对后为8mA。可支持UART和PIO接口的数据传输蓝牙模块,最高传输速率为3Mbps。
2.3 小车驱动模块
小车采用四个直流电机,工作电压为6V,电流为80-100mA。采用两路PWM控制芯片为小车的电机供电,两路PWM控制可以十分方便地控制电机的正反转。
2.4 避障模块
避障采用红外光电传感器HJ-IR2和比较器来实现,检测到障碍物时输出低电平,平时高电平。
2.5 射频卡模块
该模块由MF-S50射频卡和MF-RC522读写卡模块构成。为非接触式IC卡,具有8KB的EEPROM,每张卡都有唯一的序列号。
2.6 语音模块
采用了SX6288A为主要核心的语音合成模块,其使用异步串口方式进行通信,通过接收待合成的文本数据实现文本到语音的转换。
智能小车利用目的地接收模块接收手机发送的目的地,用单片机最小系统进行分析、规划路径,驱动模块为小车提供动力,避障模块为行进提供辅助作用,射频卡模块则为小车进行位置判断提供作用,语音模块实现的是讲解或语音提示作用。
2.7 光栅模块
采用了HJ-IR6光栅芯片、两个光感器以及两个栅轮构成,当车轮转动时,通过光栅对小车车轮转速进行测定,从而实现对小车速度的监控,方便控制智能小车的速度。
3 智能引导小车的软件设计与实现
3.1 主程序设计
首先执行目的地输入程序,待目的地输入成功后,小车先对自身所在位置进行判断,然后执行路径规划程序,规划好路径后调用驱动程序,小车在行进过程中由自动调速程序对其进行自动调速,同时避障程序进行辅助,在遇到行人时停止,等待行人离开后继续前进,经射频卡程序检测为目的地时小车停止,并进行语音提示或讲解,最后返回出发点。
3.2 路径规划程序
小车利用栅格法对环境划分成网格单元,栅格的一致性和规范性使得栅格空间中邻接关系简单化,在给每个栅格赋予通行因子之后,将路径规划问题转化为寻求两个栅格节点间的最优路径。
3.2.1 栅格发路径规划算法流程
①对地图进行栅格化,给予给每个栅格赋予一个二维坐标(x,y);
②将所有栅格划分为可通行和禁止两个类别,并建立两个二维数组Ai,Bi,分别存放两类坐标;
③小车进行初始化,初始坐标为(0,0);
④将周边8个栅格的坐标与可通行数组内坐标进行比较,如果为可通行,则存入另一个数组Ci;
⑤将可通行坐标与目的地坐标间距离进行计算,然后将距离最短的坐标存入Di;
⑥再对Di中的坐标依次进行④⑤操作,依次可得出一系列坐标;
⑦将这些坐标输出到数组Ei,作为路径。
3.3 避障程序
光电传感器安装于小车前部,探测距离为20-25cm,在探测到前方有行人时小车停止,待行人走后再继续前进,避免撞上行人。当光电传感器输出低电平,對程序进行外中断,当光电传感器输出为高电平后继续执行小车的程序。
3.4 目的地输入程序
当小车与电脑或手机链接成功后,通过串口将目的地发送给小车,接受失败时返回“重新输入”语句,接收成功时返回“输入成功”语句,然后单片机将字符对应的坐标找出并赋值给目的地变量。
3.5 目的地识别程序
在不同的目的地各自安放射频卡,每张射频卡对应一个地点,首先调用子函数,将寻卡命令发给射频卡读写器,若有卡则将返回的卡的类型存入数组中。接着调用子函数防冲突指令,并将返回的卡序列号(4个字节)存入 数组中。调用选卡指令,选择已知序列号的卡进行通信,调用子函数发送块1所在扇区的密码A给射频卡,验证其是否正确。读取块1中的数据,将其存入数组中。
最后判断房间号是否匹配,具体说明如下:输入的3位房间号存放在数组中,读取的3位房间号存放在另一个数组中。首先定义一个匹配标记初始值设为0。然后将两个数组一一比较,若对应位数值相同,初始值加1,不相同则不加,如果循环比较完后值等于3,则说明匹配,即找到房间,否则不匹配,继续循环寻找房间。
4 结论
自主路径规划是智能小车应用中的一项重要技术,采用良好的自主路径规划技术可以使小车摆脱死硬的预设路径,从而更方便地为人们提供更好的智能引导,本文中所提到的自主路径规划方式并不是唯一的一种方式,在不同条件不同需求下可能会有其他更适合的路径规划方式,这是需要进一步实际检验的。