基于蓝牙控制的路径规划小车

2014-08-07 13:21陈远超朱信忠赵建民徐慧英
微型电脑应用 2014年3期
关键词:玩具车右转左转

陈远超,朱信忠,赵建民,徐慧英

基于蓝牙控制的路径规划小车

陈远超,朱信忠,赵建民,徐慧英

蓝牙技术是一种适用于近距离的无线通信技术。通过对进行单片机编程,建立蓝牙模块与 PC 上位机之间的通信,PC 上位机的指令经由蓝牙通讯模块,将数据发送至玩具车上的单片机进行处理,从而实现对玩具车进行控制。以 PC 上位机为控制平台,能够让玩具车按照软件设计的轨迹运动。当然亦可对玩具车进行前进、后退、左转、右转、停止的控制。

蓝牙通讯;PC上位机;单片机

0 引言

蓝牙是一种低成本、支持设备短距离通信的无线电技术,随着蓝牙技术的普遍使用,越来越多的产品融入了蓝牙模块。目前大多数手机、笔记本电脑都自带蓝牙功能,即使PC 端没有集成蓝牙装置,也可通过 USB 口外接蓝牙适配器来支持蓝牙功能。

玩具车是玩具市场中不可或缺的,最常见的是遥控玩具车,利用自带的遥控器来控制玩具车。在玩具车上添加蓝牙模块,丰富了玩具车的控制形式,增添娱乐性。常见的是由智能手机作为控制端,通过相应的手机软件来操控玩具车。从而玩具车的遥控器不再局限于单一的型号,只要手机支持蓝牙功能并且能够安装控制端软件。但是手机遥控端却不能进行路径规划,只能控制玩具车进行简单的运动。针对这一问题,PC 上位机的优势在于能够设计行驶路径,玩具车的可玩性将进一步提升。

单片机是典型的嵌入式微控制器,也是玩具车进行数据处理的核心。玩具车通过蓝牙接收到的数据,只有经过单片机的处理才能转换为玩具车的相应动作。

1 总体结构

以 HC-06 蓝牙模块作为媒介,采用单片机型号为STC12C5A60S2,两个电机分别驱动两个前轮,还有两个码盘以及两个槽型光电传感器,其中码盘与驱动前轮的转轴连接,搭配一个万向轮作为后轮,车体的结构模型如图1 所示:

图1 车体结构模型

采用 L298N 驱动电路来驱动电机,通过控制单片机 I/O口的高低电平即可控制电机的正反转以及停止的操作。为了提高运动的稳定性,要求控制玩具车的速度。STC12C5A60S2 单片机集成了两路可编程计数器阵列(PCA)模块,可用于脉宽调制(PWM)输出。因此,电机的转速经由PWM控制,继而控制车轮的转速。此外,一块 lcd12864 液晶显示屏可以显示上位机预设的轨迹。系统结构框图如图2所示:

图2 系统结构框图

工作流程为:PC 上位机通过蓝牙与车载蓝牙进行通讯,将预设轨迹的数据发送至车载单片机,而且实时发送控制命令到车载单片机,单片机根据指令控制电机模块,实现对小车的控制。

2 PC 上位机的相关操作

2.1 PC 上位机轨迹绘制软件

Visual Basic 拥有图形用户界面(GUI)可以比较方便的编写一个PC上位机的轨迹绘制软件。打开轨迹绘制软件,如图3所示:

图3 轨迹绘制软件

主窗口设置了绘制和退出两个按钮,点击绘制进入轨迹绘制界面,在该界面下,设置了 Initialize(初始化)、Horizontal(水平线)、Vertical(垂直线)、Cancel(取消水平或垂直,恢复自由绘制)、End(结束)。同时,还设计了对当前鼠标所在位置坐标的实时显示。在绘制轨迹之前,为了适应lcd12864 液晶的显示,需要点击 Initialize(初始化)对图片框的坐标进行初始化,此时的坐标范围是(0,0)代表屏幕的左上角——(127,63)代表屏幕的右下角。之后,可以按照自己的意愿绘制轨迹,单击鼠标会生成一个坐标点,采用坐标点之间连线的方法形成路径,其中 Horizontal(水平线)、Vertical(垂直线)用于绘制与水平或垂直坐标轴平行的直线,这里对坐标点进行取整以方便 lcd12864 液晶的显示。完成轨迹绘制,点击 End 按钮,会出现一个消息框,说明已经生成了路径的图片以及数据的文本。

2.2 PC 上位机与车载单片机的通信

PC 上位机完成了路径设计后,需要将数据通过蓝牙发送给车载单片机进行后续的处理。打开PC上位机的蓝牙适配器选择添加设备,加入 HC-06 蓝牙模块。接着,如图4所示:

图4 串口通信

使用 STC-ISP 的串口助手完成 PC 上位机与单片机之间的数据传输,选择相应的串口后点击打开串口,此时 HC-06蓝牙模块的指示灯由闪烁状态变为长亮状态,说明连接成功。STC12C5A60S2 单片机具有两个采用 UART(Universal Asychronous Receiver/Transmitter)工作方式的全双工串行通信接口(串口 1 和串口 2)。每个串行口由 2 个数据缓冲器、一个移位寄存器、一个串行控制寄存器和一个波特率发生器等组成。每个串行口的数据缓冲器由2个互相独立的接收、发送缓冲器构成,可以同时发送和接收数据。在这里,使用串行口 1接收数据并将已经接收到的数据反馈给 PC 上位机。将由轨迹绘制软件生成的文本数据复制到多字符串发送区,点击相应的发送编号,数据就会以字符串的形式传输到车载单片机,因为要把坐标数据存入到数组 track[]中,所以设定“,”作为一个完整数据的标志。在接收缓冲区能够知道单片机是否已经接收到了相应的数据或者指令,即产生的数组 track[]={10,50,35,26,68,26,68,46,87,55}。在控制命令上,设定数字6是轨迹在液晶屏上显示的命令,数字7为玩具车按照轨迹进行运动的命令。在小车的实时控制方面,设定数字 1-5 分别是前进、后退、左转、右转、停止的命令。

3 运动的实现

3.1 液晶显示

lcd12864 液晶屏 X 方向共有 8 个字(每个字有 16 个字节),Y 方向共有 32 行分为上下两个屏,亦共有 64 行。该型号液晶屏显示状态无外乎显示或者不显示一个点这两种状态。因此显示单个坐标点是不成问题的,再通过Bresenham 画线算法显示任意的两个坐标点之间的直线。

所谓的 Bresenham 画线算法:假设我们需要由 (x0, y0)这一点,绘画一直线至右下角的另一点(x1, y1),x,y 分别代表其水平及垂直坐标,并且 x1 - x0 > y1 - y0。采用坐标系为x坐标值沿x轴向右增长,y坐标值沿y轴向下增长。

因此x及y之值分别向右及向下增加,而两点之水平距离为 x1-x0 且垂直距离为 y1-y0。由此得之,该线的斜率必定介乎于 1 至 0 之间。此算法是为了找出在 x0 与 x1 之间,第x行相对应的第y列,从而得出一像素点,使得该像素点的位置最接近原本的线。根据对称性,可推导至全象限内的线段。

至此,只要 PC 上位机发出液晶显示指令(数字 6),就能够将之前PC上位机软件绘制的轨迹图形在液晶屏幕上显示出来,显示结果如图5所示:

图5 液晶屏显示轨迹

3.2 路径规划的实现

移动机器人路径规划技术是智能移动机器人研究的核心内容之一,移动机器人路径规划主要解决 3 个问题: 1)使机器人能从初始点运动到目标点; 2)用一定的算法使机器人能绕开障碍物, 并且经过某些必须经过的点完成相应的作业任务; 3)在完成以上任务的前提下, 尽量优化机器人运行轨迹。

本文仅对玩具车按照预先设计的轨迹运动提出解决方案,即只讨论玩具车如何能从初始点运动到目标点。玩具车的车体由两个驱动前轮以及一个万向后轮组成。对驱动轮的轮毂周长与两轮的间距进行测量,测量结果为轮毂周长20.5cm,两轮间距 13cm。玩具车的转弯采取单一驱动电机工作的方式,根据圆的周长公式可以计算出转过 90度时通过的路程,亦以两轮间距为半径转过圈,所以单轮转过一周,玩具车能够转过90 度。那么依照这种关系,简化路径规划的复杂度,设定以小车为中心的一周 8个方向的运动分别是前进、左转 45度、左转 90 度、左转 135 度、后退、右转 135 度、右转 90度、右转45度。

要控制车轮的旋转圈数,需要借助槽型光电传感器和码盘,码盘的码道上按一定规律排列的空心和实心部分,实心部分对光电传感器会有遮挡,因此当车轮转动时会产生周期性的电信号,再把这个电信号转变成计数脉冲,此过程通过单片机的外部中断实现,选用的码盘有 10个空心部分,也就是说当计数为 10的时候车轮正好转过一周,以此类推,45 度、90 度、135 度的计数分别是 5、10、15。

选定X轴的正方向为参考正方向,如图6所示:

图6 参考方向示意图

每一次判断都选择这一方向为前进的方向,所以在进行每次的运动至下一坐标位置之后,最终要转回参考正方向再进行下一次的判定。选定第一个坐标点为原点(出发点),通过比较下一坐标点与当前坐标点的差别来判断下一步的运动方向。记当前点的坐标为(X0,Y0),下一点的坐标为(X,Y)。ΔX=X-X0,ΔY=Y-Y0。如果ΔX≥1,ΔY=0则前进;如果ΔX≥1,ΔY≤-1 则左转 45 度;如果ΔX=0,ΔY≤-1 则左转 90 度;如果ΔX ≤-1,ΔY≤-1 则左转 135度;如果ΔX ≤-1,ΔY=0 则后退;如果ΔX ≤-1,ΔY≥1 则右转 135 度;如果ΔX =0,ΔY≥1 则右转 90 度;如果ΔX≥1,ΔY≥1 则右转 45 度。

至于两个坐标点之间行驶路程的长短,先用两点间的距离公式计算出前后两个坐标点之间的实际距离再通过单片机的定时器 0,设定一个时长T,即默认的行驶时间。而实际的行驶时间为 L×T,这样就可以利用改变T来达到改变比例关系的目的。

当 PC 上位机给出按照轨迹进行运动的命令(数字 7),车载单片机会对先前的数组track[]={10,50,35,26,68,26,68,46,87,55}进行提取坐标操作,得到 5 个坐标点(10,50)、(35,26)、(68,26)、(68,46)、(87,55)。根据制定的规则判断后,小车完成路径规划运动的动作是左转 45 度行驶、前进行驶、右转 90 度行驶、右转45度行驶、停止。

4 总结

本文阐述了通过PC上位机设计行驶路线,并通过蓝牙控制来实现玩具车按预设路径行驶的过程。经过测试,玩具车能够按照设定动作完成规划路径的行驶。这不仅增加了一种新的控制方式,而且使玩具车的娱乐性得到了提升。

[1]周瑛,杨盛国,黄凌云.基于蓝牙技术遥控小车的设计与实现[J]。福建师大福清分校学报,2012(5)。

[2]刘同法,肖志刚,彭继卫。C51 单片机 C 程序模板与应用工程实践[M]。北京:北京航空航天大学出版社,2010。

[3]王宝萍。玩具智能小车控制系统的设计与实现[D]。电子科技大学,2012。

[4]朱大奇,颜明重。移动机器人路径规划技术综述[J]。 控制与决策,2010(7)。

[5]张群,杨絮,张正言,陆起涌。蓝牙模块串口通信的设计与实现[J]。实验室研究与探索,2012(3)。

Path Planning Toy Car Based on Bluetooth Control

Chen Yuanchao, Zhu Xinzhong, Zhao Jianmin, Xu Huiying
(College of Mathematics, Physics and Information Engineering, Zhejiang Normal University, Jinhua 321004, China)

Bluetooth technology is one kind of suitable wireless communication technology for short distance. Through the Single-Chip Microcomputer programs, communication can be established between Bluetooth module and PC host computer. The instruction of the PC host computer Transmits to the Single-Chip Microcomputer on the toy car via A Bluetooth communication module, finally complete control of the toy car after Single-Chip Microcomputer’s processing. The PC host computer control platform lets the toy car run the trajectory which is designed by the software before. The PC host computer can also control the toy car to go forward and backward, turn left and turn right, stop.

Bluetooth Communication; PC Host Computer; Single-Chip Microcomputer

TP273

A

1007-757X(2014)02-0021-03

2014.02.20)

浙江省大学生科技创新活动计划 (新苗人才计划)(编号:2013R404047)

陈远超(1989-),男,浙江师范大学数理与信息工程学院,硕士研究生,研究方向:智能控制,金华,321004朱信忠(1975-),男,浙江师范大学数理与信息工程学院,副教授,硕士生导师,研究方向:智能控制,模式识别与数字工程,多媒体图像检索等,金华,321004赵建民(1951-),男,浙江师范大学数理与信息工程学院,教授,博士生导师,研究方向:人工智能, 模式识别等,金华,32l004徐慧英(1977-),女,浙江师范大学数理与信息工程学院,副教授,研究方向:智慧物流, 物联网通信,模式识别与图像处理等,金华,32l004

猜你喜欢
玩具车右转左转
交叉口借道左转方案的交通安全仿真研究
基于车流拥挤检测的“借道左转”自适应智能控制*
日出(外一首)
不能左转
基于车让人的右转专用相位设置条件研究
大大的玩具车
道路交叉口“借道左转”的优化控制
玩具车变跑车
学生的思维了不起
基于农村主路交叉路口优先右转汽车的碰撞预警系统初步设计