基于Arduino/Android的小车蓝牙控制系统的设计与实现*
2017-03-10张海玲
徐 鹏,梁 曼,魏 萍,张海玲
(1.浙江国际海运职业技术学院 船舶工程学院,浙江 舟山 316021;2.浙江工业大学 特种装备制造与先进加工技术教育部重点实验室,浙江 杭州 310014)
基于Arduino/Android的小车蓝牙控制系统的设计与实现*
徐 鹏1,梁 曼2,魏 萍1,张海玲1
(1.浙江国际海运职业技术学院 船舶工程学院,浙江 舟山 316021;2.浙江工业大学 特种装备制造与先进加工技术教育部重点实验室,浙江 杭州 310014)
以Arduino单片机的硬件平台为核心控制器,结合Eclipse开发环境和Arduino IDE编程语言完成小车的主控程序,通过Android手机蓝牙客户端与蓝牙模块服务端的通信实现小车的智能策略控制。小车整体采用前桥驱动、后轮转向的布局方式,两轮各用一个直流电机配合齿轮减速机构实现运作。实验表明:该控制系统实现了基于Android手机的蓝牙控制小车的运行功能,实现小车的前进、后退和转弯等多种运动形态。该控制系统结构简单、操作方便,为新型智能控制系统的设计提供了参考依据。
Arduino;Android;蓝牙;智能小车
Arduino作为新兴的开源电子设计平台,注重程序的逻辑结构,忽略底层函数的具体设计,大大降低了编程难度,因此常用作机器人的主控芯片[1-2]。此外,Arduino中的Atmega328-AU处理芯片具有强大的数据处理功能,处理速度和各项性能均优于传统的51芯片,本设计基于Android操作系统的开源性和可操作性,利用无线技术控制小车运行[3-4]。蓝牙作为一种抗干扰能力强、功耗低的无线互连技术,比其他无线控制技术,如红外、射频等应用范围更广,在局域范围控制中具有一定的优势[5-6]。因此,本文以Android手机作为终端,通过蓝牙串口传输指令,实现小车的智能策略控制[7-8]。
1 系统设计方案
图1 控制流程框图
以Arduino单片机为核心,通过Android手机中的蓝牙串口助手发送指令至蓝牙模块进行存储分析,实现小车的前进、后退、左旋、右旋、左转、右转、停止等功能。首先在硬件通电的瞬间实现硬件的初始化,包括HC-06蓝牙模块的设置连接及电机通电待命状态。初始化完成后,通过Android手机中的蓝牙串口助手进行指令的发送,Arduino处理器实时对HC-06蓝牙模块端口进行数据读取和分析,收到信号立即进行处理,再通过L296N电机驱动模块实现小车的运行功能,控制流程如图1所示。
2 系统硬件电路设计
整个硬件系统分为3个子模块:Arduino主控模块、H桥控制的电机驱动模块和HC-06蓝牙模块。主控模块采用以Atmega328-AU处理芯片为内核的芯片,是整个系统的智能控制部分,进行信息数据的分析和处理;电机驱动模块主要采用L298N驱动模式,实现对电机的控制;蓝牙模块负责接收相应的指令控制驱动电机模块转动,从而实现无线控制功能。
2.1 Arduino硬件开发板
Arduino单片机是一块基于开放源代码的USB接口板,微处理器采用Atmega328-AU,性价比高,同时具有类似Java、C语言的IDE开发环境硬件库,可根据外围硬件进行库的二次开发,方便与各种电子组件的连接[9-10]。外围引脚包括数字I/O(D0-D13)、模拟I/O(A0-A5)、7个PWM,并且支持外部供电与USB供电自动切换。
2.2 电机驱动模块
L298N电机驱动模块主要包括由8个二极管组成的两组电机控制接口端(P1,P2),其内部是4通道逻辑驱动电路,用于接收来自Arduino芯片的驱动控制信息和对两个电机的控制信息。电路中8个二极管的作用是为产生的反向电流提供泄放路径,避免电流过大烧毁驱动芯片。小车的左右轮两组电机分别与电机控制接口端相连接,构成小车的运动控制系统。电机控制系统中采用线圈式电机,防止电机从一种运行状态切换到另一种运行状态时形成的反向电流烧毁电机。电机驱动模块电路设计如图2所示。
图2 电机驱动模块电路图
2.3 HC-06蓝牙模块
蓝牙模块用于连接Android手机和小车,实现数据的传输。蓝牙模块分为主机模块和从机模块,主机能够与从机配对通信,从机与从机之间或主机与主机之间不能通信,在本项目中,蓝牙模块主要功能是接收从手机端发送过来的指令,实现单一方向的通信,因此选择从机HC-06模块[11-12]。蓝牙数据传输流程如图3所示。
图3 蓝牙数据传输流程图
首先将蓝牙模块连接到PC上,完成与手机的配对,再将蓝牙模块连接到Arduino控制板的蓝牙模块接口。连接方式:蓝牙模块的VCC接Arduino的3.3 V;GND接Arduino的GND;蓝牙模块的接收端RXD接Arduino的发送端TX,因为Arduino主控器只发送命令无需接收信号,所以蓝牙模块的发送端TXD和Arduino的接收端RX无需连接,再根据相应的IDE程序完成Android手机与Arduino控制器的连接,硬件连接如图4所示。
3 系统软件设计
小车控制系统的软件设计包括上位机和下位机软件的编写和测试。在上位机软件设计中,选用Eclipse作为开发工具,设计了客户端软件,用Java语言开发客户端的控制程序。为简洁、快速地实现程序功能,本程序没有对软件界面做美化设计。在程序操作过程中,首先连接智能小车和HC-06蓝牙模块,点击界面中的“查找设备”,程序就会列出周围已开启的蓝牙设备,如图5(a)所示,选择属于小车的蓝牙设备即可自动连接上,控制小车运行的9个按钮和图形显示如图5(b)所示。
下位机软件设计,即Arduino主控模块上串口通信程序的设计,采用模块化结构,由主程序﹑左转子程序、右转子程序﹑前进子程序、后退子程序等构成。Arduino单片机的串行口通过访问特殊功能寄存器SBUF实现接收缓冲器和发送缓冲器的访问,并且可以同时接收和发送数据。串行口的控制主要包括对状态控制寄存器SCON、控制寄存器PCON和串行数据寄存器SBUF的设置。Arduino对于常用的串行口已有完整的集成库,管脚进行配置只需调用相应的子函数,如pinMode(pin,mode),pin为用户欲配置的管脚编号,mode为配置模式(INPUT表示配置为输入管脚,OUTPUT表示配置为输出管脚)。基于Arduino开发环境下的部分IDE程序代码如下。
图4 蓝牙模块的硬件连接图
图5 蓝牙客户端与硬件模块连接界面
void forward( );//小车前进
void back( ); //小车后退
void turnLeft( ); //小车左转
void turnRight( ); //小车右转
void car_up( ); //小车加速
void car_down( ); //小车减速
void turnLeftOrigin( ); //小车左旋
void turnRightOrigin( ); //小车右旋
void _stop();//小车停止
void setup();
{pinMode(IN1,OUTPUT);
pinMode(IN2,OUTPUT);
pinMode(IN3,OUTPUT);
pinMode(IN4,OUTPUT);
Serial.begin(9600);}
void loop()
{…..}
4 控制系统测试
4.1 驱动电机测试
小车的系统设计要求Android手机能正确控制小车的转向、前进、后退和停止等功能。为检测系统能否达到设计要求,对系统进行功能和性能测试。本文中用Arduino单片机的4、5、6、7引脚的高低电平来控制小车的启停和转向。ENA和ENB是电机1和电机2的使能引脚,IN1和IN2引脚控制电机1,IN3和IN4引脚控制电机2。以前驱左轮电机1为例,真值表如表1所示。
表1 直流电机1控制真值表
4.2 蓝牙通信距离的测试
蓝牙作为一种抗干扰能力强、功耗低的无线技术使用较为普遍,但同时蓝牙模块的低功率和高频率限制了其应用范围,故对该系统的通信质量进行测试,测试地点选择教学楼内和空旷的平地,经测试确定无线蓝牙能在约9 m的范围内有效控制。
5 结论
本设计以Arduino单片机为核心控制,通过HC-06蓝牙模块实现小车和主控制器的通信,完成小车多种运动形态,实现小车智能策略控制。实验表明,本控制系统能够实现小车前进、停止、左旋、右旋等功能,达到预期设计效果。但蓝牙控制范围有限,为扩大其应用范围,考虑引进蜂窝的网路架构或者通过增大发射功率等措施来扩大覆盖半径。
[1] 纪欣然.基于Arduino开发环境的智能寻光小车设计[J].现代电子技术,2012,35(15):161-163.
[2] 朱丹峰,葛主冉,林晓雷.基于Android平台的无线遥控智能小车[J].电子器件,2013,36(3):408-412.
[3] 王洪斌,李程,王跃灵,等.基于Arduino和蓝牙技术的六足机器人控制系统设计[J].黑龙江大学自然科学学报,2015,32(4):533-537.
[4] 李建高,李树明. 基于蓝牙与智能手机的远程信息采集与控制系统[J]. 微型机与应用,2012, 31(17):92-94.
[5] 纪欣然.基于Arduino开发环境的智能寻光小车设计[J].现代电子技术,2012,35(15):161-163.
[6] 卞云松.基于Arduino单片机的避障小车机器人[J].自动化技术与应用,2014,33(1):16-19.
[7] 戈惠梅,徐晓慧,顾志华,等.基于Arduino的智能小车避障系统的设计[J].现代电子技术,2014,37(11):118-120.
[8] 赵新颖,罗坤.基于80C51控制的智能电动小车系统的设计与实现[J].微型机与应用,2011,30(22):85-87.
[9] 江燕良.基于Android智能终端的远程控制系统[J].电子技术应用,2012,38(8):129-132.[10] 刘晋,苏臣,金禹含,等.基于PID算法在喷绘机小车控制系统的应用[J].微型机与应用,2015,34(8):97-100.
[11] 朱恒军,张玉龙,靳展.基于ZigBee的室内空气环境监控系统设计[J].电子技术应用,2015,41(2):86-92.
[12] 马建仓,罗亚军,赵玉亭.蓝牙核心技术及运用[M].北京:科学出版社,2003.
西门子全集成数字化之旅全新起航
西门子全新升级的全集成数字化之旅日前在北京正式启动。在此前自动化创新之旅的基础上,西门子全集成数字化之旅将西门子最先进的数字化理念,如“数字化双胞胎”和基于云的开放式物联网操作系统MindSphere融入其中,致力于向中国工业客户全面展示实现数字化转型升级和践行“中国制造2025”战略切实可行的案例和示范解决方案。全集成数字化之旅实体展示卡车将在未来半年内深入到全国21座城市,向3 500多名客户进行零距离展示。
“数字化正在工业领域掀起深刻变革,而西门子是中国工业企业把握变革机遇的最佳合作伙伴。”西门子大中华区首席执行官赫尔曼(Lothar Herrmann)表示,“借助跨越全生命周期的数字化企业解决方案,以及在软硬件、服务乃至商业模式上的持续创新,西门子将帮助客户着眼于未来,更好地适应市场变化。”
西门子2015年启动全集成自动化之旅,目前总行程已超过10万公里,将西门子最先进的全集成自动化技术、产品、解决方案以及服务理念带给超过5000名中国的工业客户。此次升级的西门子全集成数字化之旅在自动化软硬件解决方案的基础上将虚拟调试以及“数字化双胞胎”的理念集成于TIA博途体验中心,让客户能够身临其境地体验“产品的数字化双胞胎”、“设备的数字化双胞胎”和“生产工艺流程的数字化双胞胎”为客户的生产所带来的价值。全集成数字化之旅生动演示了跨越产品与生产的全生命周期价值链的集成,彰显了数字化带来的高生产力与效率。
全集成数字化之旅另一大亮点是西门子推出的基于云的开放式物联网操作系统MindSphere。它是一个可扩展基础设施,能够采集生产数据,并将这些数据用于价值增值分析从而为客户带来收益。作为自动化和驱动设备领域的市场领导者,西门子能够利用其在工业领域巨大的装机量和在连接生产设备、智能数据采集方面的优势更好地为客户提供基于大数据的服务,从而为工业客户带来更多可持续价值。
(西门子公司供稿)
Design and implementation of car Bluetooth control system based on Arduino/Android
Xu Peng1,Liang Man2,Wei Ping1,Zhang Hailing1
(1.Ship Engineering Institute,Zhejiang International Maritime College,Zhoushan 316021,China;2.Key Laboratory of Ministry of Education,Zhejiang University of Technology,Hangzhou 310014,China)
In this paper, the main control program of electric car has been achieved by taking the hardware platform of Arduino single-chip microcomputer as the core controller, and combining with Eclipse development environment as well as Arduino IDE programming language.The communication between Android phone Bluetooth client terminal and Bluetooth implements determines the strategic control of the car. The intelligent car is designed to be of front axle driving and rear wheel steering, with two DC machines and gear reduction mechanisms on each wheel working together to achieve the motion of the car. The experiment indicates that the above control system can control the motion of the car by means of Android phone Bluetooth, such as forwarding, backwarding, turning and so on. The control system is simple in its structure and convenient in operation, hence providing a reference for the new intelligent control.
Arduino;Android;Bluetooth;intelligent car
TN242.6
A
10.19358/j.issn.1674- 7720.2017.04.029
徐鹏,梁曼,魏萍,等.基于Arduino/Android蓝牙控制小车系统的设计与实现[J].微型机与应用,2017,36(4):96-98,102.
0 引言
浙江省高等教育课堂教学改革项目(kg2015939);浙江国际海运职业技术学院2016访问工程师校企项目
2016-09-20)
徐鹏(1988-),通信作者,男,硕士,主要研究方向:机电一体化及自动控制理论。E-mail:xupengzjut@163.com。
梁曼(1991-),女,博士研究生,主要研究方向:机电装备设计和制造业信息化。
魏萍(1977-),女,硕士,讲师,主要研究方向:机电一体化和船舶电气。