张彦丽

(厦门华天涉外职业技术学院 机电与汽车工程学院,福建 厦门 361102)

蓝牙(Bluetooth)通讯技术是一种开放的短距离无线通信技术标准,频段为2.4GHz ISM,采用跳频扩频技术,蓝牙通讯广泛应用于短距离移动设备和固定设备,可以实现灵活的网络互连,有成本低、耗能低、通讯安全可靠等诸多优点,随着蓝牙技术的发展,越来越多的产品内置集成蓝牙模块,极大提升产品功能性与使用效率。遥控小车在控制上使用蓝牙,十分便利,可以利用蓝牙控制小车增添生活乐趣,也可在一些特种环境遥控使用,保证人身安全。

随着企业生产技术的不断提高对自动化的要求也越来越高,智能车辆在工业层面上得到了更加广泛的应用。从各个角度来看,对智能车辆不断的探究并追求最大的智能化都是必要的。在智能小车的研究及相关产品开发方面,对国内在此领域技术发展与进步也非常有利。因此,需要研发出一款简便而又高效化的小车控制系统具有重要的实际意义亦有远大的科学理论价值。

1 系统总体方案设计

本设计是基于单片机的无线蓝牙遥控小车的控制系统,手机APP 可以发送指令,灵活巧妙的控制小车运动。当系统开机时,小车开启蓝牙,手机APP 启动后,蓝牙开启,手动连接蓝牙完成配对。用户可通过APP 按钮选择运行模式,手动模式用户通过APP 按钮向小车蓝牙发送操控指令改变小车运动方向,APP 能蓝牙接收和显示小车运行速度和距离。在自动模式下,能沿着红外循迹到地面黑线运动,能红外躲避障碍物,能通过光电编码器测量转速,并液晶显示、蓝牙发送运行速度和运动距离。本设计主要包括电源模块、避障模块、单片机主控模块、蓝牙通讯模块、循迹模块、电机驱动模块、显示器等模块。

2 软件系统设计

2.1 编程语言及开发环境

单片机编写程序时一般使用的语言是汇编语言和C 语言。汇编语言是接近单片机硬件的编程语言,当CPU 不同时,汇编程序也就不容易移植了,通用性较差,程序的开发周期也比较长,由汇编语言编写出来的程序虽然效率比C 语言高,但程序算法却难懂。现今,单片机编程大都采用C 语言,C 语言的编程设计思想是将任务分割为若干个相互独立却又互有关联的模块,即模块化程序思想。C 语言程序易于阅读理解,编程效率也高,同时C 语言作为一种功能性描述的语言,其程序容易移植和修改。Keil uVision4 是一款基于PC 机的单片机程序开发软件平台。在Keil 开发环境下,能够完成程序的编写、编译、以及软件调试等多种行为,该软件具备有性能强大的编辑器和调试器,可以对编写的程序进行快速的检查和修改。利用Keil 开发单片机应用程序的步骤如下:新建一个工程文件→创建C 程序文档→将程序添加到工程→编译并修改调试C 程序→生成HEX 文件→烧写到单片机内→运行程序。

2.2 主程序设计

在主程序中,系统经过一系列初始化之后,小车等待蓝牙串口连接,蓝牙串口连接完成后,等待手机APP 发出指令,分别有前进、后退、左转、右转、加速、减速、停止、循迹、避障指令,当小车接收到指令,就会根据相应指令运动,显示屏会一直显示小车速度和行驶距离。图1 为主程序的程序流程图。

图1 主程序的程序流程图

2.3 初始化程序

蓝牙遥控小车的设计,需要使用到三个定时器,分别为定时器0、定时器1 和定时器2。定时器0 是用来小车速度调整,定时器1 是用来串行通信,为串行通信设置波特率,定时器2 是用来小车实时速度显示定时。

初始化程序主要是设置SCON、TCON、TMOD、IE 的几个寄存器。设置TMOD=0X22,定时器0 和定时器1 的工作方式选择方式2,8 位的常数自动重新装载定时器,SCON=0X50,串口工作方式为1,允许串口接收和发送,串口初始化设置的内容如表1 所示。

表1 串口初始化设置

2.4 方向控制程序

本设计采用L298N 电机驱动模块。由L298N 模块各个端口的逻辑关系可知,当ENA 与ENB 为1 时,通过控制IN1、IN2、IN3、IN4 端口电平的高低来改变电机的转向。电机方向控制逻辑表如表2。

表2 电机方向控制逻辑表

2.5 循迹程序

初始化结束后,连接上手机蓝牙,接收到蓝牙发出循迹指令。小车前方有一对红外对管,放别置于黑线两侧,红外管相对于黑线有2mm 到4mm 的距离。当两对红外管都没有检测到黑线小车保持直走。当左侧检测到黑线时,左电机向后转动,右电机向前转动,直到左侧离开黑线左右电机都向前转动。同理当右侧检测到黑线时,右电机向后转动,左电机向前转动,直到右侧离开黑线左右电机都向前转动。循迹流程如图2 所示。

图2 循迹流程图

2.6 避障程序

初始化结束后,连接上手机蓝牙,接收到蓝牙发出避障指令。在小车的前面两侧放置一对红外管。当左侧的红外管检测到障碍物的时候,小车开始右转200ms。小车右侧的红外处于检测到障碍物状态,小车开始左转200ms。当小车两侧红外都没有检测到障碍物时,小车直走。当小车两侧红外都检测到障碍物时,小车后退100ms,在后右转200ms。避障的程序流程如图3所示。

图3 避障流程图