基于Andriod重力感应控制的小车设计与研究
2014-07-24陈锦儒彭昕昀
陈锦儒 彭昕昀
摘要:该次项目主要研究的内容是在上位机的Andriod平台上编写JAVA应用程序,通过利用自身的蓝牙模块发送重力感应系统检测到的方向数据。下位机的蓝牙模块把上位机传输过来的信号通过异步通信的方式与单片机互传数据,从而遥控小车的运动情况,实现控制了小车的前进、后退、左转、右转、停止等运动状态。整个系统的设计主要分成两部分,分别是上位机的Andriod平台的程序开发以及下位机与蓝牙的通信设计,难点在Andriod平台上读取重力感应系统的数据。整个项目主要是在获取重力感应系统的方向数据后通过蓝牙模块进行数据传输而实现遥控功能,需要一个在Andriod平台上稳定可靠的JAVA应用程序保证系统的可行性。
关键词:Andriod;小车;控制;蓝牙;通信
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2014)15-3636-04
Based on the Android Accelerometer Control Car Design and Research
CHEN Jin-ru, PENG Xin-yun
(School of Physics and Mechanical & Electrical Engineering ,Shaoguan College, Shaoguan 512005, China )
Abstract: This project mainly studies on the PC of the Android platform is the content of the writing JAVA applications, by using its own bluetooth module sending accelerometer system to detect the direction of the data. Bluetooth module to PC machine under transmission of signal with single-chip microcomputer by means of asynchronous communication data, and remote control car movement situation, realize the control of the car forward, backward, turn left, turn right, stop motion etc. The design of the whole system mainly divided into two parts, respectively is upper machine under the Android platform application development and a machine and the bluetooth communication design, the difficulty on the android platform read data of gravity sensing system. The whole project is mainly after obtain the direction of the accelerometer system data via bluetooth module for data transmission and remote control function, need a stable and reliable on the Android platform of the JAVA application ensure the feasibility of the system.
Key words: Andriod ; the car; control; bluetooth; communication
随着现今网络化的发展,智能小车也逐渐的被网络化,不再只有傳感器,控制器和执行器三部分。网络化的智能小车,不再是只能用于参加全国电子设计大赛的智能小车,更不是只有一种特定的模式运用于特定环境的智能小车,而是,通过网络的控制,可以在不同的恶劣环境下运作,完成人类无法完成的事情,将不同环境下的探测数据,发送给人类进行分析。
本设计通过使用手机蓝牙的功能来控制的智能小车,其目的在于从根本上了解智能小车的工作原理,亲身体会蓝牙的工作原理与应用。蓝牙主要应用于短距离的无线数据传输,然而,蓝牙模块可以与PC机中的或手机中的蓝牙设备相连接,也可以实现两个蓝牙模块之间的数据传输交换,取代短距离的线缆连接,直接代替数据传输线。
1 系统的总体方案设计
本系统是采用单片机STC89C52RC作为主控制器,进行主要的信息处理,采用蓝牙模块接收来自手机的数据发送到主控器进行数据分析处理,主控器发送数据到L298N控制电机的正反转,进而控制小车的前后,左右运动,其组成模块见图1所示。
2 硬件系统设计
2.1 主控系统电路的设计
根据STC单片机的官方使用手册,STC单片机不需要外接的程序存储空间,需要将单片机的EA引脚置高,否则会导致单片机无法正常工作。单片机的最小控制电路如图2所示:
2.2 小车控制系统的驱动电路设计
图3为L298N电机驱动电路,内部集成了两个高电压,大电流的H桥,抗干扰能力强,具有过压与过流保护。采用低电压逻辑电平控制,PWM脉宽平滑调速。
2.3 蓝牙信号传输硬件系统设计
BLK-MD-BC04-B蓝牙模块支持UART、USB、SPI、PCM、SPDIF等接口,支持主从一体的蓝牙模块,主从设置可由软硬件控制,图4为蓝牙串口电路。
3 软件系统的设计
整个系统设计是等待接收来自蓝牙模块的数据,并分析判断数据而发出相对应的信号到L298N电机驱动,控制电机的正反转,继而控制智能小车的前、后、左、右运动。系统软件框图如图5所示。
3.1 蓝牙连接流程框图
手机端程序通过读取本机的蓝牙设备模块,并获得权限后,对周围可见的蓝牙设备进行搜索。当选择好对应的蓝牙设备名称后,程序就会尝试与用户所选的蓝牙设备以串口通信服务进行连接,连接成功后等待用户选择控制方式进行控制。蓝牙连接流程图如下图6所示:
3.2 蓝牙控制流程框图
手机蓝牙设备与设计中的蓝牙模块成功连接后,手机马上进入重力感应控制的界面,在此界面中,通过对手机的前、后、左、右翻转,改变重力传感器的方向进而将手机x,y轴上的位置变化,根据相应的x,y轴上的位置,在建立的蓝牙连接设备中发送相应的动作信号到设计中的蓝牙设备。其控制流程如下图7所示:
4 系统的调试
系统的调试是主要包括两个部分,分别是硬件的调试与软件的调试,调试的过程一般是固定的,必须先调试硬件再调试软件。只能在保证硬件正常工作的前提下调试软件,因為在设计过程中,硬件系统与软件系统都可能会存在缺陷,如果不能保证硬件的可靠性,软件系统的调试将无从谈起。
4.1 硬件系统的调试
整个系统是由小车模型、主控制器单片机、稳压模块、串口通信模块、电机驱动模块和蓝牙模块组成,需要逐一测试各个模块。
4.1.1 主控系统的调试
单片机的系统的硬件调试包括了单片机电路与串口通信电路。连接好电路,打开电源开关上电,观察电源指示灯是否正常,在保证正常的情况下,连接程序下载线,测试能否下载程序,如果能下载,证明单片机系统正常。
4.1.2 蓝牙信号传输模块的调试
将蓝牙模块连接到通信串口模块上,参考BLK-MD-BC04-B_AT指令集,发送相关指令并观察串口调试助手是否有对应指令发送回来,确认蓝牙模块的可用性能。
4.2 软件系统的调试
整个软件系统分成两个部分,上位机程序设计与下位机程序设计。上位机程序主要是在Andriod平台上编写JAVA应用程序,而下位机主要是蓝牙的通信以及运动控制。上位机方面,主要是运行编写好的程序MainActivity文件,搜索蓝牙设备按钮,进行蓝牙设备的配对连接。下位机方面,利用驱动程序控制小车电机正常的正转、反转停止运动。在电机驱动程序的基础上,编写串口通信程序实现控制系统。
5 结束语
从整个设计的过程来看前期的充分的准备显得非常的重要,经过前期充分的准备,和对嵌入式系统开发的学习,避免了很多在后续的设计中可能出现的问题。
其中上位机方面主要的问题出现在Andriod端的软件设计上,需要对Andriod的开发环境十分的熟悉,以及在Andriod平台上,调用其他函数的一些技巧性问题。而下位机方面必须要严格按照通信协议进行设计,在控制电机方面需要简练的命令代码,避免在传输数据的过程中会出现数据丢失而导致控制失误。
参考文献:
[1] 张鑫.单片机原理及应用[M].北京:电子工业出版社,2005.
[2] 陈雪林.基于蓝牙的手机文件传输软件[J].计算机系统应用,2011(3).
[3] 王金芳,张太镒.基于蓝牙的文件传输技术[J].军事通信技术,2003(4).
[4] 董涛,刘进英.基于单片机的智能小车的设计与制作[J].计算机测量与控制,2009(2).