《电子技术应用》
您所在的位置:首页 > 通信与网络 > 业界动态 > 基于Arduino/Android的小车蓝牙控制系统的设计与实现

基于Arduino/Android的小车蓝牙控制系统的设计与实现

2017-03-05
作者:徐鹏1,梁曼2,魏萍1,张海玲1
来源:2017年微型机与应用第4期

  徐鹏1,梁曼2,魏萍1,张海玲1

  (1.浙江国际海运职业技术学院 船舶工程学院,浙江 舟山 316021;2.浙江工业大学 特种装备制造与先进加工技术教育部重点实验室,浙江 杭州 310014)

       摘要:以Arduino单片机的硬件平台为核心控制器,结合Eclipse开发环境和Arduino IDE编程语言完成小车的主控程序,通过Android手机蓝牙客户端与蓝牙模块服务端的通信实现小车的智能策略控制。小车整体采用前桥驱动、后轮转向的布局方式,两轮各用一个直流电机配合齿轮减速机构实现运作。实验表明:该控制系统实现了基于Android手机的蓝牙控制小车的运行功能,实现小车的前进、后退和转弯等多种运动形态。该控制系统结构简单、操作方便,为新型智能控制系统的设计提供了参考依据。

  关键词:Arduino;Android;蓝牙;智能小车

  中图分类号:TN242.6文献标识码:ADOI: 10.19358/j.issn.1674-7720.2017.04.029

  引用格式:徐鹏,梁曼,魏萍,等.基于Arduino/Android蓝牙控制小车系统的设计与实现[J].微型机与应用,2017,36(4):96-98,102.

0引言

  *基金项目:浙江省高等教育课堂教学改革项目(kg2015939);浙江国际海运职业技术学院2016访问工程师校企项目Arduino作为新兴的开源电子设计平台,注重程序的逻辑结构,忽略底层函数的具体设计,大大降低了编程难度,因此常用作机器人的主控芯片[12]。此外,Arduino中的Atmega328AU处理芯片具有强大的数据处理功能,处理速度和各项性能均优于传统的51芯片,本设计基于Android操作系统的开源性和可操作性,利用无线技术控制小车运行[34]。蓝牙作为一种抗干扰能力强、功耗低的无线互连技术,比其他无线控制技术,如红外、射频等应用范围更广,在局域范围控制中具有一定的优势[56]。因此,本文以Android手机作为终端,通过蓝牙串口传输指令,实现小车的智能策略控制[78]。

1系统设计方案

001.jpg

  以Arduino单片机为核心,通过Android手机中的蓝牙串口助手发送指令至蓝牙模块进行存储分析,实现小车的前进、后退、左旋、右旋、左转、右转、停止等功能。首先在硬件通电的瞬间实现硬件的初始化,包括HC06蓝牙模块的设置连接及电机通电待命状态。初始化完成后,通过Android手机中的蓝牙串口助手进行指令的发送,Arduino处理器实时对HC06蓝牙模块端口进行数据读取和分析,收到信号立即进行处理,再通过L296N电机驱动模块实现小车的运行功能,控制流程如图1所示。

2系统硬件电路设计

  整个硬件系统分为3个子模块:Arduino主控模块、H桥控制的电机驱动模块和HC06蓝牙模块。主控模块采用以Atmega328AU处理芯片为内核的芯片,是整个系统的智能控制部分,进行信息数据的分析和处理;电机驱动模块主要采用L298N驱动模式,实现对电机的控制;蓝牙模块负责接收相应的指令控制驱动电机模块转动,从而实现无线控制功能。

  2.1Arduino硬件开发板

  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所示。

002.jpg

  2.3HC-06蓝牙模块

  蓝牙模块用于连接Android手机和小车,实现数据的传输。蓝牙模块分为主机模块和从机模块,主机能够与从机配对通信,从机与从机之间或主机与主机之间不能通信,在本项目中,蓝牙模块主要功能是接收从手机端发送过来的指令,实现单一方向的通信,因此选择从机HC-06模块[1112]。蓝牙数据传输流程如图3所示。

003.jpg

  首先将蓝牙模块连接到PC上,完成与手机的配对,再将蓝牙模块连接到Arduino控制板的蓝牙模块接口。连接方式:蓝牙模块的VCC接Arduino的3.3 V;GND接Arduino的GND;蓝牙模块的接收端RXD接Arduino的发送端TX,因为Arduino主控器只发送命令无需接收信号,所以蓝牙模块的发送端TXD和Arduino的接收端RX无需连接,再根据相应的IDE程序完成Android手机与Arduino控制器的连接,硬件连接如图4所示。

004.jpg

3系统软件设计

  小车控制系统的软件设计包括上位机和下位机软件的编写和测试。在上位机软件设计中,选用Eclipse作为开发工具,设计了客户端软件,用Java语言开发客户端的控制程序。为简洁、快速地实现程序功能,本程序没有对软件界面做美化设计。在程序操作过程中,首先连接智能小车和HC06蓝牙模块,点击界面中的“查找设备”,程序就会列出周围已开启的蓝牙设备,如图5(a)所示,选择属于小车的蓝牙设备即可自动连接上,控制小车运行的9个按钮和图形显示如图5(b)所示。

005.jpg

  下位机软件设计,即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所示。

006.jpg

  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


本站内容除特别声明的原创文章之外,转载内容只为传递更多信息,并不代表本网站赞同其观点。转载的所有的文章、图片、音/视频文件等资料的版权归版权所有权人所有。本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如涉及作品内容、版权和其它问题,请及时通过电子邮件或电话通知我们,以便迅速采取适当措施,避免给双方造成不必要的经济损失。联系电话:010-82306118;邮箱:aet@chinaaet.com。