基于蓝牙技术的小车智能控制系统设计
2015-05-08简毅飞
唐 溢,简毅飞,唐 骞
(1.电子科技大学 成都学院,成都 611731;2.福建师范大学 协和学院,福州 350117)
基于蓝牙技术的小车智能控制系统设计
唐 溢1,简毅飞1,唐 骞2
(1.电子科技大学 成都学院,成都 611731;2.福建师范大学 协和学院,福州 350117)
基于Cortex-M3内核处理的硬件平台设计实现小车智能控制,通过蓝牙设备实现小车的智能行驶。其系统硬件主要由蓝牙模块、电机驱动模块和Cortex-M3处理器芯片模块构成;软件系统由SMT32控制处理程序和手机端控制界面程序组成。实验测试表明,该设计较好地实现了手机蓝牙控制小车的智能行驶功能。
蓝牙通信;STM32芯片;无线控制
随着科技的发展,智能手机已经全方位进入了日常生活。由于安卓操作系统的实际性和可操作性,使其迅速成为智能手机的主流操作系统。安卓的最大优点是开源,对于安卓软件的应用开发没有限制。无线遥控实现方法包括蓝牙、红外、射频等,其中蓝牙技术具有一定优势。目前,蓝牙技术实现无线遥控越来越广泛[1-3]。本设计以手机作为终端,通过蓝牙通信传输指令,实现小车的无线智能控制。由于蓝牙控制系统的便利性,本设计并不局限于无线遥控智能小车,更可以运用于手机无线控制系统终端,例如控制电脑、家用电器甚至探测、排爆机器人等,具有非常现实的推广意义。
1 系统设计原理
本设计通过手机的蓝牙设备对小车进行行驶控制。在手机中利用Android平台的控制软件实现小车的停止、左旋、右旋、前进、左转、后退、右转等功能。硬件电路主要由电源模块、主控模块、电机驱动模块和蓝牙模块构成,如图1所示。
图1 系统框图
主控模块采用以Cortex-M3为内核的STM32F103VE芯片,利用蓝牙模块实现与手机的无线通信,负责接收相应的指令控制驱动模块电机转动,从而实现对小车的无线遥控。电源模块主要提供控制模块所需的5~12 V电压。蓝牙模块采用HC-06模块进行通信,只有四个并排的引脚,分别为VCC、GND、TXD、RXD。由于本系统的蓝牙模块只负责发送指令,无须接收指令,因此RXD引脚放空。驱动电机模块采用L298N进行小车的驱动行驶控制。电压模块提供系统所需的5 V和12 V直流电压,利用7805稳压芯片将12 V直流电压转换为5 V电压。由于STM32外围硬件电路设计非常成熟,且非本系统主要工作,故不详述。
2 电机驱动模块设计
电机驱动电路主要包括L298N驱动芯片和由8个二极管组成的两组电机控制接口端Header2。L298N主要用于接收来自STM32芯片的驱动控制信息(ENA,ENB,IN1~IN4)以及输出对两个电机的控制信息(OUT1~OUT4)。两组电机控制接口端Header2分别与左右轮的电机相连接,将驱动控制(ENA,ENB,IN1~IN4)直接与STM32的GPIO管脚相连接,构成控制系统。由于采用线圈式电机,当电机从运行状态突然转换到停止状态和从顺时针状态突然转换到逆时针状态时,会形成很大的反向电流,在电路中加入二极管的作用就是在产生反向电流的时候起到泄流作用,以保护芯片的安全,其电机驱动模块电路设计如图2所示。
图2 电机驱动模块电路图
3 软件设计
3.1 小车控制系统设计
小车系统控制程序主要是在STM32处理器的控制下,对蓝牙模块发送的数据信息进行处理,从而控制电机转动,以控制小车实现前进、后退、左转、右转、旋转、加速、减速等功能。在这个过程中,STM32处理器首先进行硬件的初始化,包括初始化STM32处理器的管脚使用到的各个端口的方向以及各个变量等。STM32处理器实时对蓝牙模块端口进行数据读取。如果端口的数据读出,则对读出的相应数据进行处理,若读出的数据为1、2、3、4、5、6、7,则分别对应小车的停止、左旋、右旋、前进、左转、后退、右转。小车硬件系统控制程序设计的流程图如图3所示。
3.2 手机终端控制系统设计
手机控制端基于Android 2.3.3系统,所用的开发工具是Eclipse集成开发环境。Eclipse是著名的跨平台的自由集成开发环境(IDE),最初主要用于Java语言开发,目前亦有人通过插件使其作为其他计算机语言的开发工具,比如C++、Python和Android。在此开发环境下开发软件非常的方便。
图3 小车硬件控制程序流程图
重力感应主要利用手机自带的重力感应器。手机的重力感应原理是利用压电效应实现的,简单来说,是测量内部一片重物(重物和压电片做成一体)重力正交两个方向的分力大小,来判定水平方向。
在设计控制界面之前,必须在Eclipse集成开发环境下,创建一个Android应用工程[4]。创建工程的Android版本为2.3.3,工程名为:BluetoothWirelessCar,则会自动创建一个MainActivity。在MainActivity添加手机控制端界面的相关控件,如TextView文本控件和Button按钮控件,并采用相对布局进行界面的布局。该控制界面采用4个TextView控件显示小车的“冲锋值”、小车运行“状态”;7个Button控件分别为加速按钮、减速按钮、停止按钮、前进按钮、后退按钮、左转按钮、右旋按钮。手机控制端程序涉及菜单选项,分别为“打开重力感应”“关闭重力感应”“连接智能小车”,其界面效果如图4所示。
图4 手机控制界面效果图
在程序操作过程中,必须先连接智能小车的蓝牙设备,否则无法操作。如果出现无连接操作,点击图4所示的控制界面任意某个按钮或者菜单项的前两个选项,程序都会出现提示对话框:“请连接智能小车”,再点击“连接智能小车”菜单选项,会弹出连接智能小车的Activity, 如图5所示。点击界面中的“查找设备”,程序就会列出周围已开启的蓝牙设备,选择属于小车的蓝牙设备即可。通过控制界面或者手机的重力感应来操控小车运行或行驶状态,其程序流程如图6所示。
图5 查询设备界面图
图6 手机控制系统流程图
4 结束语
本设计基于Android手机的蓝牙模块,通过应用程序的按钮模式或者重力感应模式,完成无线控制小车实现停止、左旋、右旋、前进、左转、后退、右转、加速、减速等功能,达到智能控制的目的。实验表明,本控制系统能够有效控制小车的行驶状态,达到预期设计效果。后续的小车控制设计可以考虑增添小车避障或者蓝牙相互通信等应用功能。
[1]谈敏,刘高平,陈红良.基于手机蓝牙接口的小车遥控系统[J].浙江万里学院学报,2012,25(4):77-80.
[2]朱丹峰,葛主冉,林晓雷.基于Android平台的无线遥控智能小车[J].电子器件,2013,36(3):408-412.
[3]周瑛,杨盛国,黄凌云.基于蓝牙技术遥控小车的设计与实现[J].福建师大福清分校学报,2012(5):18-22.
[4] 吴文平.基于视觉反馈的智能小车控制系统研究[D].成都:电子科技大学,2012:39-47.
Design of Intelligent Control System of Vehicle Based on Bluetooth
TANG Yi1, JIAN Yifei1, TANG Qian2
(1. College of Chengdu, University of Electronic Science and Technology of China, Chengdu 611731, China;2. College of Concord,Fujian Normal University, Fuzhou 350117, China )
Based on the hardware platform of Cortex-M3 processor, the intelligent control system of vehicle is designed in the paper. It achieved intelligent driving of vehicle by the Bluetooth of mobile phones. The hardware system consists of Bluetooth module, motor driver module, Cortex-M3 chip and mobile phone. The software system includes the control program on the STM32 and the interface program of the mobile phone. The test shows that vehicle has been intelligently controlled by Bluetooth of mobile phones.
bluetooth communication; STM32 chip; wireless control
2014-09-09;修改日期: 2014-12-15
唐 溢(1987-),女,硕士,助教,研究方向:电子信息与技术。
TP
Adoi:10.3969/j.issn.1672-4550.2015.04.011