当前位置:首页 > 消费电子 > 消费电子
[导读]  Android 操作系统是Google 基于开源的Linux 操作系统开发的移动操作平台,由操作系统、中间件、用户界面和应用软件组成,是专门为移动终端打造的开放和完整的移动操作系

  Android 操作系统是Google 基于开源的Linux 操作系统开发的移动操作平台,由操作系统、中间件、用户界面和应用软件组成,是专门为移动终端打造的开放和完整的移动操作系统。Android 软件平台包含Java Application、Application Framework、Libraries、Runtime 与LinuxOS 等层。用户可根据产品的不同需求对系统进行裁剪,从而适应多样的产品需求,Android 系统就如同积木一样通过组合不同的软硬件实现不同的应用产品。蓝牙的出现为移动设备的互联提供了一个方便快捷的选择,Android 设备和以单片机为处理器的控制器联接使两者的功能得到了互补。

  1 系统架构

  基于蓝牙与Android 设备的控制系统由Android 设备和下位机组成。Android设备(Android 智能手机或Android 平板)安装有专门编制的软件。下位机采用ATMEL 公司高效的RISC 内核的ATMEGA 8 为核心,并集成蓝牙串行模块为通信信道。Android 设备通过蓝牙将数据发送至下位机,下位机根据接收到数据,完成相应的控制功能,并将处理结果上传,实现实时监测、实时控制功能。下位机只负责数据的采集和实现控制功能,数据的存储和处理在Android 设备上实现。

  2 下位机设计

  2.1 控制模块的设计

  下位机由ATMEAG8、数字温度传感器、电机驱动电路等组成,其中CPU 部分电路如图1 所示。下位机处理器串口连接蓝牙模块。数字温度传感器将当前温度直接转换成数字信号。蓝牙模块设置为从工作模式。

  

 

  图1 CPU 电路原理图

  系统上电后蓝牙模块处于等待连接状态, 当Android 设备第一次发出连接请求时需要输入蓝牙模块的内置密码,以后再连接时则不需要输入密码,只有密码匹配成功才能后成功建立蓝牙连接。蓝牙模块为Android 设备和ATMEAG8 的通信信道,实现Android 设备和下位机的双向数据连接。用户通过Android 设备向下位机发送命令,下位机接收到命令后,控制相应的执行模块,实现设定的控制功能。K1 和K2 为低电平,电机两端电压为0V,电机停止;K1 为高电平,K2为低电平电机两端为5V,电机正向转动;K1 为低电平,K2 为高电平电机两端为-5V,电机反向转动;K1 和K2 不能同时为高电平,电机驱动电路如图2 所示

  

 

  图2 电机驱动电路原理图

  2.2 蓝牙模块

  蓝牙模块型号为IDS-BM4A, 模块有主/ 从两种工作模式,通过PIO2 电平来选择模块的工作,PIO2 为高电平,模块工作在从模式。模块可以有两种应用方式,方式1 :从模块上电即开始工作,用户可以通过Android 设备查找模块,模块设备名称为”SPP”, 查到设备后选择连接,电脑端将提示输入密码,此时输入“0000”,电脑将与模块建立透明连接。方式2 :需要两个蓝牙模块,一个设置为主模式,一个设置为从模式,分别与两个MCU 连接,上电后主从模块会自动配对连接,连接成功后主从模块将建立透明数据传输,两个设备之间可以直接互发数据。

  工作状态指示:模块PIO0 用来连接LED,指示当前工作方式。

  主模式:未连接,LED 间隔1 秒钟快速闪烁2次;已连接,LED 常亮。

  从模式:未连接,LED 快速闪烁;已连接,LED 常亮。

  连接状态指示:模块PIO1 为连接状态指示,连接成功PIO1 为高电平,连接断开PIO1 为低电平。

  波特率设定表:

  

 

  3 Android 设备软件设计

  Android2.2 版本以上才能很好的支持蓝牙功能,Android 上的应用程序一般采用Java 语言开发,编程环境一般采用Eclipse。[!--empirenews.page--]

  Android 应用程序需要使用蓝牙功能, 必须在AndroidManifest.xml 中要申请两个权限:BLUETOOTH_ADMIN 和BLUETOOTH。具体格式如下:

  

  me="android.permission.BLUETOOTH"/>

  BLUETOOTH_ADMIN 权限允许Android 应用程序启动发现设备或者进行蓝牙功能的设置;BLUETOOTH 权限是Android 应用程序执行蓝牙通信必须具有的权限,例如接受连接和传送数据。大多数应用程序都需要这个权限,才能查找当地的蓝牙设备。

  由于需要和下位机的蓝牙模块连接,在应用程序中需要实现主设备功能。具体的连接流程是:

  (1)在应用程序中检查设备的蓝牙功能是否开启,如果未开启,则打开蓝牙功能;

  (2)查找设备附近等待连接的蓝牙设备,显示查找到的蓝牙设备的物理地址(以前没有连接过的设备)或蓝牙设备的名称;

  (3)选择想要连接的蓝牙设备,如果是第一次连接这个目标设备系统会自动发起一个配对过程,弹出输入连接密码的对话框,输入“0000”,等待对方校验密码,完成配对,然后进行连接。

  (4)应用程序接收到连接成功,就可以通过生成的BluetoothServerSocke 和下位机进行数据传输。需要连接的蓝牙模块是蓝牙串口,因此应用程序中定义的UUID 必须符合蓝牙串口的UUID,这样连接才会被接受。因为accept() 调用是一个阻塞的调用,应用程序所有响应在调用返回之前会被阻塞,因此一定不能在主线程中进行调用, 通常是在一个新的线程中做所有的工作从而避免应用程序主线程的阻塞。主要代码如下;

  (5)关闭server socket,释放serversocket 和它占用的资源,结束应用程序。

  4 结束语

  本文提出了基于蓝牙与Android 设备的无线控制系统模型,分析了蓝牙网络的一般结构, 采用通用的蓝牙模块实现了无线终端设计,给出了Android 设备的蓝牙串行通讯软件框架。凭借蓝牙的传输高效并且快速等特点,该系统具有很好的灵活性,能广泛应用于工业现场控制等多个领域,尤其是一些需要数据传输又不能很方便的布设通讯电缆的场合,具有广阔的发展空间。

  主要代码

  

 

  

 

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

规模升级,共探无线技术新趋势

关键字: 蓝牙 UPF测试

【2025年8月19日, 德国慕尼黑讯】全球功率系统和物联网领域的半导体领导者英飞凌科技股份公司(FSE代码:IFX / OTCQX代码:IFNNY)近日宣布,其AIROC™ CYW20829低功耗蓝牙® 微控制器(MC...

关键字: 蓝牙 人机接口 MCU

我创建了一个设备,使用M5StickC PLUS2的加速度计在连接蓝牙midi的乐器上播放音乐。虽然使用倾斜输入很难进行精细控制,但通过在不同类型的和弦之间切换和改变音质,很容易产生有趣的表演。

关键字: M5StickC PLUS2 加速度计 蓝牙

其他电脑(比如安卓手机/平板电脑)的屏幕坏了,你可能想在安排维修之前紧急访问一些东西。你可以使用android的USB OTG功能(是的,几乎每个android都支持这个功能,你可以将鼠标和键盘连接到它)。

关键字: USB 鼠标 Android 树莓派

芯片堪称蓝牙模块的 “心脏”,决定着其运算能力与整体性能。优质的芯片能保障蓝牙模块高效稳定地运行。以低功耗蓝牙模块为例,Nordic、Ti 等厂商的芯片表现出色。亿佰特的低功耗蓝牙模块多采用优质的 CC2541 芯片,该...

关键字: 芯片 蓝牙 运算能力

在物联网技术飞速发展的今天,无线连接方式成为设备交互的核心纽带。其中,蓝牙和 WiFi 作为应用最广泛的两种无线技术,常常被人们混淆。然而,它们在设计理念、技术特性和应用场景上存在本质区别,这些差异直接决定了它们在物联网...

关键字: 物联网 无线连接 蓝牙

颠覆设计领域的伦敦创新企业与Ceva合作,为Nothing和CMF子品牌音频产品线增强听觉体验,包括最新发布的Nothing Headphone (1)

关键字: 传感器 蓝牙 SoC

聚焦于Matter、蓝牙、Wi-Fi、LPWAN、AI/ML五大热门无线协议与技术。为年度盛会Works With大会赋能先行

关键字: 物联网 Matter 蓝牙 Wi-Fi

蓝牙技术联盟近日正式实施蓝牙TM核心规范一年两次的发布周期机制。这一调整将确保更快速、一致地提供已开发的功能,从而加速蓝牙生态系统的创新步伐,推动技术持续优化。现在,开发者和制造商能够更及时获取最新蓝牙技术进展,为无线创...

关键字: 蓝牙 无线
关闭