徐鹏1梁曼2,魏萍1张海玲1
(1.浙江国际海运职业技术学院 船舶工程学院,浙江 舟山 316021;2.浙江工业大学 特种装备制造与先进加工技术教育部重点实验室浙江 杭州 310014)
IDE编程语言完成小车的主控程序,通过手机客户端与hc蓝牙app模块服务端的通信实现小车的智能策略控制小车整体采用前桥驱动、后轮转向的布局方式,两轮各用一个直流电机配合齿轮减速机构实现运作实验表明:该控制系统实现了基于Android手机的hc蓝牙app控制小车的运行功能,实现小車的前进、后退和转弯等多种运动形态该控制系统结构简单、操作方便,为新型智能控制系统的设计提供了参考依据
关键词:Arduino;Android;hc蓝牙app;智能小车
引用格式:徐鹏,梁曼魏萍,等.基于Arduino/Androidhc蓝牙app控制小车系统的设计与实现[J].微型机与应用2017,36(4):96-98,102.
*基金项目:浙江省高等教育课堂教学改革项目(kg2015939);浙江国际海运职业技术学院2016访问工程师校企项目Arduino作为新兴的开源电子设计平台,注重程序的逻辑结構忽略底层函数的具体设计,大大降低了编程难度因此常用作机器人的主控芯片[1?2]。此外Arduino中的Atmega328?AU处理芯片具有强大的数据处理功能,处理速度和各项性能均优于传统的51芯片本设计基于Android操作系统的开源性和可操作性,利用无线技术控制小车运行[3?4]hc蓝牙app作为┅种抗干扰能力强、功耗低的无线互连技术,比其他无线控制技术如红外、射频等应用范围更广,在局域范围控制中具有一定的优势[5?6]因此,本文以Android手机作为终端通过hc蓝牙app串口传输指令,实现小车的智能策略控制[7?8]
以Arduino单片机为核心,通过Android手机中的hc蓝牙app串口助手发送指令至hc蓝牙app模块进行存储分析实现小车的前进、后退、左旋、右旋、左转、右转、停止等功能。首先在硬件通电的瞬间实現硬件的初始化包括HC?06hc蓝牙app模块的设置连接及电机通电待命状态。初始化完成后通过Android手机中的hc蓝牙app串口助手进行指令的发送,Arduino处理器實时对HC?06hc蓝牙app模块端口进行数据读取和分析收到信号立即进行处理,再通过L296N电机驱动模块实现小车的运行功能控制流程如图1所示。
整个硬件系统分为3个子模块:Arduino主控模块、H桥控制的电机驱动模块和HC?06hc蓝牙app模块主控模块采用以Atmega328?AU处理芯片为内核的芯片,是整个系统嘚智能控制部分进行信息数据的分析和处理;电机驱动模块主要采用L298N驱动模式,实现对电机的控制;hc蓝牙app模块负责接收相应的指令控制驅动电机模块转动从而实现无线控制功能。
Arduino单片机是一块基于开放源代码的USB接口板微处理器采用Atmega328?AU,性价比高同时具有类似Java、C語言的IDE开发环境硬件库,可根据外围硬件进行库的二次开发方便与各种电子组件的连接[9?10]。外围引脚包括数字I/O(D0-D13)、模拟I/O(A0-A5)、7个PWM并且支持外部供电与USB供电自动切换。
2.2电机驱动模块
L298N电机驱动模块主要包括由8个二极管组成的两组电机控制接口端(P1P2),其内蔀是4通道逻辑驱动电路用于接收来自Arduino芯片的驱动控制信息和对两个电机的控制信息。电路中8个二极管的作用是为产生的反向电流提供泄放路径避免电流过大烧毁驱动芯片。小车的左右轮两组电机分别与电机控制接口端相连接构成小车的运动控制系统。电机控制系统中采用线圈式电机防止电机从一种运行状态切换到另一种运行状态时形成的反向电流烧毁电机。电机驱动模块电路设计如图2所示
hc蓝牙app模块用于连接Android手机和小车,实现数据的传输hc蓝牙app模块分为主机模块和从机模块,主机能够与从机配对通信从机与从机之间或主机与主机之间不能通信,在本项目中hc蓝牙app模块主要功能是接收从手机端发送过来的指令,实现单一方向的通信因此选择从机HC-06模块[11?12]。hc藍牙app数据传输流程如图3所示
首先将hc蓝牙app模块连接到PC上,完成与手机的配对再将hc蓝牙app模块连接到Arduino控制板的hc蓝牙app模块接口。连接方式:hc蓝牙app模块的VCC接Arduino的3.3
V;GND接Arduino的GND;hc蓝牙app模块的接收端RXD接Arduino的发送端TX因为Arduino主控器只发送命令无需接收信号,所以hc蓝牙app模块的发送端TXD和Arduino的接收端RX无需連接再根据相应的IDE程序完成Android手机与Arduino控制器的连接,硬件连接如图4所示
小车控制系统的软件设计包括上位机和下位机软件的编写和測试。在上位机软件设计中选用Eclipse作为开发工具,设计了客户端软件用Java语言开发客户端的控制程序。为简洁、快速地实现程序功能本程序没有对软件界面做美化设计。在程序操作过程中首先连接和HC?06hc蓝牙app模块,点击界面中的“查找设备”程序就会列出周围已开启的hc藍牙app设备,如图5(a)所示选择属于小车的hc蓝牙app设备即可自动连接上,控制小车运行的9个按钮和图形显示如图5(b)所示
下位机软件設计,即Arduino主控模块上串口通信程序的设计采用模块化结构,由主程序﹑左转子程序、右转子程序﹑前进子程序、后退子程序等构成Arduino单爿机的串行口通过访问特殊功能寄存器SBUF实现接收缓冲器和发送缓冲器的访问,并且可以同时接收和发送数据串行口的控制主要包括对状態控制寄存器SCON、控制寄存器PCON和串行数据寄存器SBUF的设置。Arduino对于常用的串行口已有完整的集成库管脚进行配置只需调用相应的子函数,如pinMode(pinmode),pin为用户欲配置的管脚编号mode为配置模式(INPUT表示配置为输入管脚,OUTPUT表示配置为输出管脚)基于Arduino开发环境下的部分IDE程序代码如下。图4hc藍牙app模块的硬件连接图图5hc蓝牙app客户端与硬件模块连接界面
4.1驱动电机测试
小车的系统设计要求Android手机能正确控制小车的转向、前进、後退和停止等功能为检测系统能否达到设计要求,对系统进行功能和性能测试本文中用Arduino单片机的4、5、6、7引脚的高低电平来控制小车的啟停和转向。ENA和ENB是电机1和电机2的使能引脚IN1和IN2引脚控制电机1,IN3和IN4引脚控制电机2以前驱左轮电机1为例,真值表如表1所示
4.2hc蓝牙app通信距離的测试
hc蓝牙app作为一种抗干扰能力强、功耗低的无线技术使用较为普遍,但同时hc蓝牙app模块的低功率和高频率限制了其应用范围故对該系统的通信质量进行测试,测试地点选择教学楼内和空旷的平地经测试确定无线hc蓝牙app能在约9 m的范围内有效控制。
本设计以Arduino单片机為核心控制通过HC?06hc蓝牙app模块实现小车和主控制器的通信,完成小车多种运动形态实现小车智能策略控制。实验表明本控制系统能够實现小车前进、停止、左旋、右旋等功能,达到预期设计效果但hc蓝牙app控制范围有限,为扩大其应用范围考虑引进蜂窝的网路架构或者通过增大发射功率等措施来扩大覆盖半径。
[1] 纪欣然.基于Arduino开发环境的智能寻光小车设计[J].现代电子技术2012,35(15):161-163.
[2] 朱丼峰葛主冉,林晓雷.基于Android平台的无线遥控智能小车[J].电子器件2013,36(3):408-412.
[3] 王洪斌李程,王跃灵等.基于Arduino和hc蓝牙app技術的六足机器人控制系统设计[J].黑龙江大学自然科学学报,201532(4):533-537.
[4] 李建高,李树明. 基于hc蓝牙app与智能手机的远程信息采集与控制系统[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].现代电子技术,201437(11):118-120.
[8] 赵新颖,罗坤.基于80C51控制的智能电动小车系统的设计与实现[J].微型机与应用2011,30(22):85-87.
[9] 江燕良.基于Android智能终端的远程控制系统[J].电子技术应用,201238(8):129-132