蓝牙小车

2024-08-12

蓝牙小车(共3篇)

蓝牙小车 篇1

1 引言

随着物联网的兴起, Android手机以其独有的开放性优势正在为人们提供更多优质便捷的技术成果。本文研究的是基于蓝牙控制的智能小车设计, 借助于手机平台和蓝牙技术, 设计和实现了一种无线智能小车。

本设计是以51单片机为核心, 以手机蓝牙作为客户端, 小车上的蓝牙模块HC-06作为服务端, 双方通过串口进行通信, 单片机驱动直流电机控制小车行动, 完成了通过手机上的蓝牙功能来控制小车行走的软、硬件设计。通过设置手机界面来设置前进、后退、左转、右转和自动避障等功能, 完成小车的前进、后退、左转、右转和自动避障等基本运动功能。实验结果表明, 小车可以接收手机遥控信号并灵活地进行前行、倒退、左转、右转和停止等功能。也为其他小车设计提出了一种新的思路, 并且让智能家居的生活成为现实更加进了一大步。

2 系统结构框图

设计以手机控制平台、蓝牙通讯模块、电机驱动模块、液晶显示模块和超声波模块等硬件模块组成的智能小车, 总的系统框图如图1所示。单片机控制电机驱动来控制电机的正反转以实现小车的前进、后退、左转、右转。HC-06为蓝牙接收模块, 通过与手机端的蓝牙进行连接配对, 从而接收从手机端发送过来的动作指令。接收到的指令再传给单片机, 单片机通过分析传递过来的指令不同, 而跳转到不同的子程序来控制电机驱动, 从而实现小车的前进、后退、左转、右转等不同的动作之后再让小车显示距离, 自动避障和转向。小车采用4wd驱动, 以提高整车运动的平稳性。电源提供给单片机5V直流电, L298需要从外部接两个电压, 一个是给电机的, 另一个给LL229988芯片的。

3 硬件电路设计

硬件电路设计包括:主控模块的选择及其最小系统、LCD1602液晶显示模块、电机驱动电路模块、超声波电路、蓝牙模块电路等主要电路设计和与蓝牙APP的结合使用。如图2所示。

3.1 主控模块的选择

系统采用STC89C52RC单片机作为系统的主控制芯片, 完成收发蓝牙信号、小车方向的控制、液晶显示等相关功能。STC89C52RC系列单片机具有8k字节Flash, 512字节RAM, 32位I/O口线, 看门狗定时器, 内置4KBEEPROM, MAX810复位电路, 3个16位定时器/计数器, 4个外部中断, 一个7向量4级中断结构 (兼容传统51的5向量2级中断结构) , 全双工串行口。另外STC89C52可降至0Hz静态逻辑操作, 支持2种软件可选择节电模式。空闲模式下, CPU停止工作, 允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下, RAM内容被保存, 振荡器被冻结, 单片机一切工作停止, 直到下一个中断或硬件复位为止。最高运作频率35MHz, 6T/12T可选。

单片机最小系统如图2所示, 包括了单片机、复位电路、时钟电路。单片机可以通过手动按键复位, 按下复位键S1后使单片机进入上电的初始状态。系统时钟电路选用了11.0596MHz的晶振, 一个机器周期的时间约为1μs。

3.2 LCD1602显示模块与主控芯片的设计

系统选用LCD1602液晶显示器, 方便直观显示更多的参数, 显示器显示波形类型、幅度、频率。单片机P0口作为数据端口, 液晶显示接单片机的P0.0-P0.7端口, 其中EN是下降沿触发的片选信号, R/W是读写信号, RS是寄存器选择信号。

3.3 电机驱动电路模块设计

电机驱动电路模块内含两个H桥的高电压大电流全桥式驱动器, 可以用来驱动直流电动机和步进电动机、继电器线圈等感性负载;采用标准逻辑电平信号控制;具有两个使能控制端, 在不受输入信号影响的情况下允许或禁止器件工作有一个逻辑电源输入端, 使内部逻辑电路部分在低电压下工作;可以外接检测电阻, 将变化量反馈给控制电路。使用L298N芯片驱动电机, 该芯片可以驱动一台两相步进电机或四相步进电机, 也可以驱动两台直流电机。

3.4 超声波电路模块设计

超声波电路一个控制口发一个10US以上的高电平, 就可以在接收口等待高电平输出。一有输出就可以开定时器计时, 当此口变为低电平时就可以读定时器的值, 此时就为此次测距的时间, 方可算出距离。如此不断地周期测量, 就可以得到移动测量的值。

3.5 蓝牙模块电路设计

蓝牙模块电路通过接收手机发过来的不同的信息向MCU发送不同的信息内容, 使小车进行不同的动作。

4 智能小车手机蓝牙串口软件

本设计所采用的蓝牙app软件是由微软官方网站发布的SPP蓝牙串口作为通信工具。它可以连接任何支持串行端口模式的蓝牙设备 (如手机) 。SPP蓝牙串口软件支持蓝牙SPP的客户端模式;可以设置为ASCII或HEX显示模式;可设置终端或聊天视图;可以连接到蓝牙MCU;可以连接到蓝牙调制解调器 (大多数手机支持) 。控制界面如图3所示, 手机界面分别有前进、后退、左转, 右转按钮。操作界面类似于聊天界面, 当发送字符或者指令的时候, 小车上的蓝牙如果成功收到指令则会返回一个相同的指令或者字符。

5 软件编程

系统主要运用Keil和UV4两个程序软件进行程序编译和仿真。软件设计的主要有主控制、串口通信、中断、驱动、定时、显示等6个部分组成。

5.1 主程序流程图

主程序流程图如图4所示。接上电源后, 程序开始初始化设置, 蓝牙一直在检测是否收到指令, 如果接收到了指令, 则会根据接收的指令进行前进、后退、左转、右转和切换到无人操作模式等动作, 否则会一直在循环检测。当进入了无人操作模式后, 蓝牙模块停止工作, 小车则会利用超声波模块进行自动避障和开始在液晶上显示距离。当显示距离大于设定的距离时, 小车会后退左转, 否则小车则会继续前进, 直到遇到了黑线后, 跳出程序, 实现停车。

5.2 蓝牙流程图

蓝牙子程序流程图如图5所示。开始时, 蓝牙先初始化, 然后一直检测是否接收到指令。如果接收到指令则根据指令对前进、后退、左转、右转和切换至无人模式进行选择。

6 实验测试及结果分析

小车整体效果图如图6所示, 对小车进行如下测试:

(1) 在平坦开阔的场地, 给小车供上11V左右的电源, 当蓝牙接收到前进、后退等指令时均能正常行驶。

(2) 在平坦开阔的场地, 小车进入自动避障功能时, 在小车前方设置障碍物, 均能够绕开, 碰到黑线可以正常停车。

(3) 由于受程序延时问题、外界环境因素和模块本身工艺的影响, 超声波模块测得的距离有3cm至6cm的误差, 但不影响小车的整体功能。

(4) 两个l298n模块由两个电源供电, 但是电压不会完全相等, 所以小车在行驶过程中左边车轮和右边车轮速度有一点点差异, 经试验会产生5至8度的偏移角, 小于10度, 不影响小车的整体功能。

7 总结

本文阐述一种可通过手机蓝牙遥控或者无人驾驶小车的软、硬件设计。单片机编程控制电机的正反转来实现小车前进、后退、左转、右转, 而电机的正反转则由电机驱动L298N输出端的逻辑电平来控制。手机控制时手机蓝牙作为客户端, 小车上的蓝牙模块HC-06作为服务端, 双方通过串口进行通信;无人驾驶时则根据超声波所测得的距离进行控制。实验结果表明, 小车可以接收手机遥控信号并灵活地前行、倒退、左转、右转和切换至无人驾驶的功能, 达到了预期的目的, 很好地完成了最开始预期的效果, 并且为其他智能生活提供了很有价值意义的范例。

参考文献

[1]赵海兰.基于单片机的红外遥控智能小车的设计[J].电子世界, 2013 (3) :45-47.

[2]黄杰, 秦补枝.基于模糊控制的智能车辆设计[J].中国科技信息, 2010 (20) :148-149.

[3]姚培, 张李坚, 周晶香.基于单片机控制的智能循迹避障小车[J].现代制造, 2010 (12) :192-193.

[4]赵振德.多功能遥控智能小车的制作[J].电子制作, 2011 (4) :12-16.

[5]李瀚霖, 王嘉楠, 边天剑.智能小车研究与设计[J].科技致富向导, 2011 (18) :122-122.

[6]张毅刚, 彭喜元, 彭宇.单片机原理及应用[M].北京:高等教育出版社, 2010.

[7]张鑫.单片机原理及应用 (第2版) [M].北京:电子工业出版社, 2013.

[8]陈桂友.增强型8051单片机实用开发技术[M].北京:北京航空航天大学出版社, 2010.

[9]李晓林, 牛昱光, 阎高伟.单片机原理与接口技术 (第2版) [M].北京:电子工业出版社, 2011.

基于蓝牙小车的控制系统 篇2

1 主要芯片介绍及蓝牙技术应用现状

1.1 STC89C52

STC89C52是STC公司生产的一种低功耗、高性能CMOS 8位微控制器, 具有8 k B在系统可编程Flash存储器。使用经典的MCS-51内核, 8 k B Flash, 512 bit RAM, 32位I/O口线, 看门狗定时器, 内置4 k B EEPROM, MAX810复位电路, 3个16位定时器/计数器, 4个外部中断, 一个7向量4级中断结构, 全双工串行口。另外STC89X52可降至0 Hz静态逻辑操作, 支持2种软件可选择节电模式。空闲模式下, CPU停止工作, 允许RAM、定时器/计数器、串口和中断继续工作。

1.2 L298N

L298N是ST公司生产的一种高电压、大电流电机驱动芯片。采用15脚封装, 主要特点是:工作电压高, 最高可达46 V;输出电流大, 瞬间峰值电流可达3 A, 持续工作电流为2 A;额定功率25 W。内含两个H桥的高电压大电流全桥式驱动器, 可用于驱动直流电动机和步进电动机、继电器线圈等感性负载;采用标准逻辑电平信号控制;具有两个使能控制端, 在不受输入信号影响的情况下允许或禁止器件工作有一个逻辑电源输入端, 使内部逻辑电路部分在低电压下工作;可外接检测电阻, 将变化量反馈给控制电路。使用L298N芯片驱动电机, 该芯片可驱动一台两相步进电机或四相步进电机, 也可驱动两台直流电机。

1.3 蓝牙技术的应用现状

蓝牙技术为一种通用的短距离无线连接协议, 其在各个领域均有广泛应用[3]。作为一种无线数据与语音通信的开放性全球规范, 以低成本的近距离无线连接为基础, 为固定与移动设备通信环境建立一个特别连接。手机之间通过蓝牙实现共享已成为常理, 将手机变为遥控器为人们的生活带来便利。遥控小车在国防、工业、科研等领域也应用广泛。例如消防遥控小车、探测小车等。

2 系统硬件设计

2.1 硬件设计总体框架

系统包括单片机控制模块、蓝牙从机接收模块、手机端控制部分、电机驱动模块和电源模块等部分组成。小车采用STC89C52单片机进行控制, 开始由手机通过蓝牙向小车发送指令, 当小车接收到相关指令后, 通过单片机控制小车开始运动;系统的前后左右行进均由单片机控制实现;在小车进驶过程中, 采用双极式H型PWM脉宽调制技术, 以提高系统的静动态性能;系统的无线遥控用手机蓝牙作为客户端, 小车上的蓝牙HC05作为服务端, 其可靠性能高。具体步骤如下:

(1) 利用安卓系统手机的蓝牙功能, 与配备在小车上的蓝牙模块建立无线通信。

(2) 自行设计驱动电路并配备蓝牙模块, 实现手机蓝牙控制小车的进退与转向运动。做到操作准确、响应迅速, 实现无线控制小车运动的设计要求。

(3) 启动手机主控软件, 操作手机搜索蓝牙模块, 搜索到后用手机向单片机发送一个确认连接指令, 单片机接收到指令后进行自检并返回给手机一个应答信号, 手机再确认连接, 通讯建立, 就可通过手机向小车发出进退与转向命令。

(4) 单片机对接收到的指令进行处理, 而后启动相应电机动作实现命令内容。

2.2 单片机控制模块

STC89C52单片机作为系统的主控MCU芯片, 其最小系统是没有外围器件及外设接口扩展的单片机系统, 是单片机应用系统的设计基础, 其主要包括STC89C52单片机、晶振电路和复位电路。

晶振电路:STC89C52单片机有一个用于构成内部振荡器的反相放大器, XTAL1和XTAL2分别是放大器的输入和输出端。石英晶体和陶瓷谐振器均可用来一起构成自激振荡器。若从外部时钟源驱动器件, XTAL2可不接, 而从XTAL1接入。由于外部时钟信号经二分频触发后作为外部时钟电路输入, 所以对外部时钟信号的占空比并无其他要求, 而最长低电平持续时间和最少高电平持续时间等仍需符合要求。

复位电路:C51系列单片机的复位方式有手动复位和上电自动复位两种。系统设计包含了以上两种方式。STC89C52的最小系统电路参阅文献[4]。

2.3 电机驱动模块

使用直流两用驱动器可驱动两台直流电机, 其分别为M1和M2。引脚A, B可用于输入PWM脉宽调制信号对电机进行调速控制。对于实现电机正反转, 输入信号端IN1接高电平输入端IN2接低电平, 电机M1正转。控制另一台电机的方式相同, 输入信号端IN3接高电平, 输入端IN4接低电平, 电机M2正转。PWM信号端A控制M1调速, PWM信号端B控制M2调速[5]。

2.4 无线接收通信模块

设计采用辅助模块, 出于成本的考虑, 选用的无线电有效控制距离较短, 但不限制本设计功能的实现, 距离的远近用户完全可根据需要更换模块。本设计采用常见的蓝牙无线模块, 利用手机蓝牙作为客户端, 以HC05作为小车上的蓝牙服务端。

HC-05蓝牙模块主要性能参数:频率为2.4 GHz ISM band;调制方式GFSK;发射功率等级为class2;灵敏度≤-80 d Bm;通信速率2 Mbit·s-1;供电电源3.3 V;工作温度-20~+55℃;协议为标准HCI端口;HC-05蓝牙模块部分电路参照产品功能书。

2.5 7805稳压模块

7805是三端正电源稳压芯片, 其封装形式为T0-220, 并有一系列固定的电压输出, 故应用广泛。每种类型由于内部电流的限制, 以及过热保护和安全工作区的保护。若能提供足够的散热片, 就可提供>1.5 A的输出电流。其虽是按照固定电压值设计的, 但当接入适当的外部器件后, 便能获得各种不同的电压和电流, 本系统采用其典型电路。

3 软件设计

3.1 BLE核心协议

蓝牙技术的核心协议分为4部分: (1) 基带协议 (Baseband) 。基带和链路控制层确保网络内部蓝牙设备单元间由射频构成的物理连接。 (2) 连接管理协议 (LMP) 。负责蓝牙网络内各设备之间的连接建立。 (3) 逻辑链路控制和适配协议 (L2CAP) 。是一个为高层传输层和应用层协议屏蔽基带协议的适配协议, 其为高层应用传输提供了更加有效及更利于实现的数据分组格式。 (4) 服务发现协议 (SDP) 。发现服务在蓝牙技术框架中起着重要作用, 其是所有用户模式的基础, 为实现网络中蓝牙设备之间相互查询及访问提供的服务。在蓝牙系统中, 客户只有通过服务发现协议, 才能获得设备信息、服务信息及服务特征, 从而在设备单元之间建立不同的SDP层连接[8]。

3.2 HCI协议

HCI协议即主机控制接口协议, 是蓝牙标准接口, 适用于蓝牙通讯模块的硬件部分。此定义描述了位于HCI驱动程序和主机控制器固件之间的接口。HCI固件通过访问基带命令、硬件状态寄存器、控制寄存器以及时间寄存器来实现对蓝牙硬件的HCI指令。

系统采用UART方式在蓝牙设备和主控制器之间传输数据。UART传输层的目标为可在同一PCB电路板的两UART之间的串行接口上使用蓝牙HCI协议。UART传输层假定UART通信不存在线路故障, UART传输层采用RS232的接口参数配置。其中, RTS/CTS流控制用于防止临时UART缓冲区溢出, UART信号线采取置空调制解调器模式, 该传输层同时具备纠错功能。主控制器需从蓝牙主机接收一个RESET指令以执行抚慰, 从而实现重新同步。

3.3 软件设计

基于蓝牙的小车控制系统软件设计包括上位机和下位机软件的编写。在单片机控制系统中, 大体上可分为数据处理、过程控制两个基本类型。数据处理包括数据采集、数字滤波、标度变换等。过程控制程序主要是使单片机按一定的方法进行计算, 然后再进行输出, 以便控制生产。

上位机软件设计中, 选用了Eclipse[5]作为开发工具, 用Java语言开发手机端的控制程序, 并设计了客户端软件, 其中蓝牙模块接收数据程序流程如图2所示。

下位机软件设计[6]即串口通信程序设计, 采用模块化结构, 由主程序﹑前进子程序、后退子程序﹑左转子程序、右转子程序构成。STC89C52的串行口是一个全双工的异步串行通信口, 可同时进行接收数据和发送数据, 通过访问特殊功能寄存器SBUF, 来访问接收缓冲器和发送缓冲器。对串行口的控制主要包括对状态控制寄存器SCON、控制寄存器PCON、和串行数据寄存器SBUF的设置。单片机主函数程序流程如图3所示。

4 系统测试

基于蓝牙的小车系统设计要求是手机能正确控制小车的转向、前进、后退、左转、右转和停止功能。因此为检测系统能否达到设计要求, 对系统进行功能与性能测试。

4.1 小车的组装与调试

检查手工板的焊接, 电路有9.6 V和5 V两个电源, 按原理检查各电源情况, 并用LED灯显示输出控制电路的电源通断情况, 在手机端用编好的程序控制板子的通信。

组装小车, 检查小车的机械部分, 测试小车机械是否通畅, 防止因机械产生的故障。

组装手工板, 电源和小车, 因以上几部分之间并未兼容, 所以有些连接需自行制作。

连接排线, 检查各部件, 各模块, 和上位机端进行通信, 检测是否可正常通信。

4.2 调试过程中出现的问题及解决方案

(1) 手机蓝牙与车载蓝牙不能正常通信。原因:蓝牙模块与单片机的I/O接线错误, 单片机晶振选择错误。解决方法:将蓝牙模块的RXD引脚与单片机的引脚P3.0相连, TXD引脚与单片机的引脚P3.1相连, 将单片机的12 MHz晶振更换为11.059 2 MHz。

(2) 手机与小车能正常通信, 但不能按发出的指令执行相应的操作。原因:由于电机两端的电流变化较大, 导致电源变化较大, 以致单片机不能正常工作。解决方法:可在电机两端各加一个104瓷片电容, 以滤除高频杂波, 减少对电源的影响, 使单片机能正常工作。

(3) 给整个系统通电后, 小车的左轮就会在没有收到指令的情况下自转动。原因:用示波器和万用表检测后, 发现单片机控制小车的一个I/O口损坏。解决方案:更换一个单片机, 同时在下次上电时注意对电源的操作, 以免再次烧坏单片机的引脚。

4.3 蓝牙通信距离的测试

由于蓝牙的通信距离有限, 故对该系统的通信质量进行测试, 测试地点选择在有障碍物的教学楼内或在空旷的操场上, 经测试判定手机能在约10 m的范围内有效控制小车。

5 结束语

设计采用STC89C52单片机为控制核心, 通过手机蓝牙发射和车载蓝牙接受的控制信号, 对信号进行快速处理, 以指挥小车运动。整个小车系统由手机蓝牙发射部分、车载蓝牙接受模块、单片机处理模块、L298N电机驱动模块等部分组成。并根据特定作业任务要求发送操作与控制指令信息, 以控制蓝牙小车的运行和停止。

设计存在的不足之处在于, 蓝牙传输的距离有限, 如系统对传输有距离要求, 可改用nRF905无线模块, 该模块发射速率为50 kbit·s-1, 外置433 MHz天线, 空旷通信距离约在300 m, 并在室内3~6层均可实现可靠通信。不足之处在于功能过于单一, 并未设计小车更多的转向动作, 例如可让小车遇到前方的障碍物时自动避开, 这可增加温度采集模块, 对小车周围温湿度进行采集, 若是应用在大型场地, 还可增加卫星定位功能, 与Google地图相连, 用数据库进行数据处理。

摘要:以单片机为核心控制器件, 设计了一种蓝牙遥控小车系统。针对小车的信息采集、驱动及调速等问题, 采用Eclipse开发环境辅助Arduino编程, 并通过串口仿真实现手机蓝牙客户端与车上蓝牙模块服务端的通信。单片机驱动L298N控制小车运动, 用双极式H型可逆PWM变换器进行调速, 小车安装高清摄像头无线返回实时信息。系统电路结构简单、可靠性高、软硬件完备, 且可按照预先设定的模式在规定环境内自动运作。

关键词:蓝牙遥控,Eclipse开发环境,Arduino编程,L298N,PWM调速

参考文献

[1]黄建能, 杨光杰.无线遥控小车[J].现代电子技术, 2012 (23) :126-128.

[2]付强, 任风华.基于手机蓝牙的遥控小车的设计[J].现代计算机, 2011 (31) :77-80.

[3]马建仓, 罗亚军, 赵玉亭.蓝牙核心技术及运用[M].北京:科学出版社, 2003.

[4]聂茹.基于STC89C52单片机的无线遥控小车的设计与实现[J].自动化技术与应用, 2012 (11) :91-95.

[5]张天鹏, 徐磊.L298N控制直流电机正反转[J].工业设计, 2011 (3) :98-99.

[6]刘斌.Java me使用详解-用Eclipse进行移动开发[M].北京:电子工业出版社, 2007.

[7]Bluetooth SIG.Specification of the bluetooth system[DB/OL]. (2008-04-22) [2013-04-11]WWW.bluetooth.com.

蓝牙小车 篇3

随着检测技术、无线传感网及移动互联网技术的相互渗透,产生了多种技术相融合的网络化测控系统,将无线传感网与智能小车以及Android智能终端相结合,对传感数据的感知、数据传输、数据处理、数据存储和数据显示进行有效整合,这在工业生产、环境监控、智能交通、智能家居和公共卫生等多个领域有着广泛应用。同时,作为一款开源系统,Android不仅在移动互联网领域占据了大半市场,在物联网和嵌入式领域也得到了广泛应用[1,2]。

本文针对检测数据与移动互联网相结合的需求,融合利用无线传感网、Android智能系统和单片机嵌入式技术,利用蓝牙通讯,设计了一种多用途的智能测控小车。

1 系统设计

系统结构如图1 所示。系统由无线传感网测控节点、测控小车和Android测控终端3 部分组成,其中无线传感节点负责对环境状态进行数据采集,数据由无线传感网络进行传输; 测控小车由Android终端进行控制,对无线传感网节点数据进行汇聚,在测控小车上挂载无线传感网网关节点,通过串口与无线传感网交换数据; 测控小车与Android终端之间使用蓝牙方式通讯。

2 无线传感节点

采用无线传感器网技术,主要是针对短距离、低功耗和低速的数据传输。传感节点负责采集在不同方位布点的节点信息,包括节点温度、湿度和光照等状态信息,数据节点之间通过特定无线传输芯片进行连接和转发。无线传感网络具有自组织和自维护特征,即当某些节点发生问题时,不会影响网络其他传感器节点的数据传输,可以在不增加单个节点成本同时进行大规模的布设[3]。

采用基于CC2530 的Zigbee协议组建无线传感网络[4],利用各网络节点采集节点温度、湿度等状态,数据经由路由节点传送到网关节点,将网关与测控小车控制器相连,通过串口与单片机进行通讯。

3 测控小车

测控小车在Android控制端的控制下完成无线传感网数据的汇聚和传输功能,具有循迹、避障、测距、测温、电机驱动和串口通讯等功能,最终通过蓝牙方式将传感数据上传至Android控制终端。

3. 1 模块设计

测控小车包括: 电源驱动、循迹、超声波测距、红外避障、测温、显示、WSN网关节点和蓝牙串口等模块,如图2 所示。其中,主控芯片采用STC公司生产的单时钟周期的单片机IAP15F2K61S2,具有高速、低功耗和超强抗干扰功能强的特点,其内部集成3 路PWM、2 路串口和8 路高速10 位A / D转换,非常适于在电机控制和强干扰场合应用[5]。

3. 2 双串口应用

双串口控制流程如图3 所示。

利用IAP15F2K61S2 的双串口特点,实现测控小车同时与传感节点和Android控制端进行通信的功能,串口2 的默认端口是Rx D2 /P1. 2( 可通过寄存器设置到P4. 2) 和Tx D2 /P1. 3( 可通过寄存器设置到P4. 3)[6]。程序控制使用中断方式,当串口1收到无线传感网网关节点的数据后,对数据进行校验,若通过校验,则将数据存入缓冲区; 主程序定时读取缓冲区数据,按照约定的协议格式封装成数据帧,通过串口2 向Android上位端发送数据帧。反之,当Android端向测控小车发送指令时,IAP15F2K61S2 执行类似的反方向操作。

3. 3 蓝牙通讯

测控小车与Android控制端采用蓝牙方式进行数据通讯,由于IAP15F2K61S2 单片机本身没有蓝牙通讯的功能,这里采用第3 方的蓝牙串口模块将单片机的串行口扩展到蓝牙无线信道[7]。

根据设计需求,选择济南华茂科技的蓝牙数传模块HM - 10,HM - 10 支持蓝牙4. 0,具有低功耗的特点,其串口收发没有字节限制,在空旷环境下与iphone4S可以实现100 m的远距通讯。HM - 10 采用TI CC2540 芯片,配置256K空间,支持AT指令,用户可以根据需要更改角色( 主、从模式) 以及串口波特率、设备名和配对密码等参数,使用灵活[8]。

HM - 10 模块具有丰富的外设接口,除了UART_TX、UART _ RX接口外,还有USB和PIO接口,这里选择UART接口,IAP15F2K61S2 的串口2 与HM - 10的UART接口交叉相连,这样无需了解蓝牙底层协议,测控小车即可与Android终端通讯了。

3. 4 通讯协议

Android端向测控小车发送数据协议格式如表1所示。

数据帧由5 个字节构成,前2 个字节是固定值,即包头,第3 个字节是主指令,后2 个字节是副指令,副指令是属于主指令的功能指令,主指令功能包括:

① 停止: “0x01”,副指令为“0x00”,“0x00”;

② 前进: “0x02”,副指令为小车速度,即PWM设置值;

③ 后退: “0x03”,副指令为小车速度,即PWM设置值;

④ 左转: “0x04”,副指令为小车速度,即PWM设置值;

⑤ 右转: “0x05”,副指令为小车速度,即PWM设置值;

⑥ 自动循迹: “0x05”,副指令为小车速度,即PWM设置值。

测控小车向Android端发送的指令协议格式如表2 所示,长度根据传感节点的数量而定,包括: 包头、包尾、小车状态、测距值和各传感节点状态值等字段。

4 Android测控端

Android控制端由运行在Android移动设备上的APP应用程序来实现,该APP利用蓝牙串口协议SPP与测控小车进行无线通讯[9],实现对测控小车的控制,包括: 方向的手动控制、重力感应、避障和自动寻迹; 同时,Android移动设备能够实时地接收、存储和显示测控小车发送来的传感节点数据。

Android应用对蓝牙串口数据输入、输出处理流程如图4 所示。

Android应用程序以Client的角色主动连接蓝牙模块HM -10,Android的蓝牙串口服务( SPP) 具有其唯一的UUID和MAC地址。在主线程中用Bluetooth Adapter适配器对象注册Broadcast Receiver广播接收者来获取蓝牙状态并实现设备的搜索和配对; 在与HM - 10 配对后,建立Android服务组件在后台监听蓝牙数据,验证接收到的数据后,对数据帧进行解封,根据约定的协议,将数据存入本机的SQLite数据库[10],同时显示在Activity界面上。以同样的方法向测控小车发送指令,实现全双工串行通讯。

5 实验测试

在Android 2. 3 以上的系统中运行测控小车的APP应用程序,程序界面如图5 所示。实验室环境下,在小车以外布设3 个CC2530 网络节点,在小车车身上安装1 个协调器节点。结果表明,使用此方案可以对测控小车进行流畅的控制,小车可以手动和自动运行,测控小车能够在运动状态下保障节点数据的正确汇聚和传输,节点状态界面每隔1 s刷新显示无线传感网络中各监测节点采集到的数据。

6 结束语

利用无线传感网节点实现环境状态的采集,构建可以自组网、多跳、便于扩展的传感数据通讯网络; 采用基于IAP15F2K61S2 单片机的测控小车作为数据汇聚网关,实现小车控制、循迹、测距和双串口通讯等功能; 通过蓝牙通讯方式完成Android系统对测控小车的控制、测控数据交换和存储显示。文中提出的方案适用于工业控制、消防安全和探测等工作环境,具有一定的应用价值。

参考文献

[1]冯艳红,何加铭,杨任尔,等.基于Android蓝牙技术的健康服务系统设计[J].无线电通信技术,2014,40(1):61-64.

[2]汤莉莉,马仟,黄伟.语音无线遥控智能小车设计[J].无线电工程,2014,44(12):66-69.

[3]马正华,宋磊,焦竹青,等.基于无线传感网的蔬菜工厂智能监控系统设计[J].自动化与仪表,2013(11):20-24.

[4]黄家露,杨方,张衍林.基于CC2430的温室无线传感器节点设计与应用[J].华中农业大学学报,2013,32(5):119-123.

[5]韦建新.超小型减摇鳍变参PID电控系统的实现与分析[J].船舶工程,2012,34(s2):284-286.

[6]汤莉莉,黄伟,王春波,等.基于Cortex-M3单片机的Wi Fi物联网小车的设计[J].无线电工程,2014,44(4):58-61.

[7]王筱珍,关艳如.基于Modbus协议的Android端工厂化养殖移动监测软件[J].测控技术,2014,33(1):115-117.

[8]马丹萍,李勇,梁勤欧.无线遥控智能小车的运动模拟及轨迹绘制[J].浙江师范大学学报(自然科学版),2015,38(1):116-120.

[9]刘哲源,王丽,师五喜.基于安卓平台的血压检测系统[J].单片机与嵌入式系统应用,2013(11):67-69.

上一篇:施工支洞下一篇:绿色建筑设计标识