深圳市组创微电子有限公司
咨询电话
0755-8299 4126

物联网

蓝牙遥控器PCBA设计开发


在近年来,蓝牙遥控器伴随着智能手机迅速地崛起,极大地该改变我们生活方式。手机,不再是像以往那样只为单纯打电话、发短信,我们更多注重的是休闲娱乐功能,使得大多数人都离不开手机。其中Android手机更是成为智能手机中的香饽饽,市场占比达到7成以上,Google将其开源了,为众多的厂商和开发者提供一个很好的发展空间。对电脑来说,鼠标看起来是必不可少的搭档,但是,在许多场合,比如出差、旅游等场合,直接携带和使用鼠标并不是十分便捷。本文设计一种手机蓝牙控制器,通过这种桥梁使电脑和Android手机相连,可以直接通过手机来实现鼠标的基本功能。

一、蓝牙遥控器整体设计

要实现的功能主要有:1)带有蓝牙功能的手机:一般来说,现在的手机基本都带有蓝牙功能。这个也就是通常所说的客户端,在上面设计一个APP,用来获取想要电脑动作的数据,然后将这些数据通过蓝牙发送出去给服务端。2)带有蓝牙接收功能的硬件部分:必须要有一个从端,用来直接和手机对接的蓝牙部分,直接接收手机发送过来的数据;再将这些数据转发给控制器,用控制器来解析数据。3)控制器部分:用来解析由蓝牙模块传送过来的数据,并且这部分还必须和电脑端相连,通过USB通信协议将这些数据发送到电脑端,实时与电脑端直接通信,达到我们的控制目的。4)个人电脑:这个就是我们想要控制部分。整个结构如图1所示。

图 1 蓝牙遥控器系统结构框图


二、蓝牙遥控器系统硬件设计

如果直接用无线鼠标的蓝牙适配器,这样在硬件部分最为直接和简便,完全就是将手机替换了无线鼠标了。但是实现起来很不容易,一般每一个无线鼠标为了排出其他蓝牙设备的干扰都有一个特定的蓝牙适配器,也就是说,他们是一对一的关系,需要知道蓝牙适配器和特定鼠标的通信协议。

如果是直接用一个通用的USB适配器,再来与电脑通信,电脑USB端已经实现了L2CAP、SDP、RFCOMM通信协议,但是在这种协议之下,要有自己的电脑客户端驱动程序。本设计采用软硬结合,用蓝牙模块+控制器实现无线鼠标适配器功能,使功能实现起来更为简单和可靠。

2.1蓝牙模块设计

蓝牙模块作为一个从设备和手机相连,并且拥有串口将数据传回给控制器。本次设计要用到的蓝牙模块没有要求很严格,速率上说,设置波特率115200之后,对于传输小量的数据已经完全够用了。功率也不会像可穿戴设备那样要求很苛刻。有效距离20米之内。所以在性能和价格对比之下,选择了拥有主从模式的HC-05,功能够全、价格便宜。PIO8管脚的LED灯会显示出当前蓝牙所处的状态,一闪一闪就是正常未连接状态,闪两次就是蓝牙已经成功被连接上了。

微控制器作为一个数据的中转站,最简单的是采用51单片机来处理,但是,单片机里面资源不过多,处理数据速度不够快。所以选用嵌入式芯片:STM32F103RCT6作为控制器芯片。包括,从串口中断一帧一帧读出HC-05串口传回的数据,然后取出里面的位置、按键等信息,在和电脑建立USB通信之后,将数据发送出去,完成控制过程。该芯片的作用是利用串口中断1接收来自蓝牙串口的数据,并将数据通过USB发送给电脑,USB接口D-、D+分别接上该芯片的PA11、PA12管脚,右边接上电脑的USB输出接口;蓝牙串口输出RXD、TXD分别接上该芯片的PA9、PA10。

三、蓝牙遥控器软件设计

Android软件设计平台目前来说有好几种,Google官方推出的开发平台有Eclipse、Android studio。这里使用的Android软件平台是:Eclipse。手机客户端是关键的一环,首先要和蓝牙模块建立数据通路,相互之间可以无阻地传输数据,然后,实时获取手指在手机屏幕移动的距离和各个按键的状态,并发给蓝牙模块。

界面设计思路是:首先要有几个页面可以切换,在连接蓝牙模块之后,我们随时可以切换到鼠标控制或是PPT翻页界面,故在设计界面上要做到切换界面的同时,完全不改变蓝牙的连接状态。为了使界面更美观,选用Fragment+Tab来做主界面。Tab作用是定位并切换Activity,就像微信下面的切换一样。整个主界面上用了3个界面,分别是mou semov.xml(鼠标滑动布局)、pptlayout.xml(PPT翻页滑动布局)、settinglayout.xml(设置页面布局)。

功能性设计:切换到设置界面,立即获取Android系统的蓝牙实例,再接着调用蓝牙适配器里面的连接其他蓝牙设备的方法,利用这种方法连接上目标设备之后,获取到目标蓝牙地址,用该地址建立socket通路,socket的通信方式是直接用数据流来读和写数据的,当建立好socket通路之后,直接就可以把数据转为Byte[]字节数组的形式,再发送给蓝牙模块。

蓝牙建立连接:蓝牙建立连接,必须要先调取系统的蓝牙服务,在Android中,如果要调取有关安全的服务,都要在AndroidManifest.xml文件中,申请系统的权限,获得权限之后才能操作。

鼠标程序:鼠标移动的程序一是获取当前手指在屏幕移动的距离以及鼠标左右中按键状态,二是将数据打包发送出去,三是界面美化。

四、STM32程序设计

STM32程序的作用是获取从手机传过来的数据,并解析出来,之后通过USB通信协议将数据发送到电脑端,电脑就会根据你给的数据做出相应的动作。

首先是收取数据,STM32和单片机一样都是用串口中断来收取外部数据,这样既不会耗费太多资源,又能实时响应。要想开启串口中断,必须得对STM32内部资源做一系列的配置和初始化,首先是系统时钟的设置,直接可以调用工程里面SYSTEM>sys.c文件下的Stm32_Clock_Init()方法。初始化完成后一有数据过来直接就接收并存入uart的数据缓冲区,读出缓冲区的数据就能获取到手机数据了。将数据发给电脑端的过程为:首先重置USB接口,然后配置USB中断处理方式以及中断优先级、使能USB时钟、初始化所用通信所需驱动;完成所有这些步骤之后就能在串口中断程序中发送来自蓝牙模块的数据到电脑上。

总结

在市面上,比较多人用的TeamViewer,这款软件比较多用于远程控制电脑,手机远程控制电脑也行;其实里面的原理大都是网络通信方面的知识,在各自连上互联网的两端建立数据通路之后,将被控制电脑端的图像画面传回到控制端,控制端动作则通过数据帧打包之后发给被控制端,控制端解析之后就实现相应的动作。还有其他软件如猎豹WIFI,可以通过局域网来控制电脑,这个原理和TeamViewer一样。大多都是纯软件的实现,不同于本文的设计实现原理。可以进一步考虑用手机端实现键盘的某些功能,比如Enter键、上下左右按键、Esc按键等。

以上就是我们深圳市组创微电子有限公司为您介绍的蓝牙遥控器控制板开发示例。如果您有蓝牙遥控器PCBA开发需求,可以放心交给我们。我们代理多种单片机、语音芯片、双模蓝牙IC、wifi芯片。品牌有松翰单片机、应广单片机、杰理蓝牙、安凯蓝牙、全志、瑞昱(realtek)。我们的技术服务范围有:PCB设计、单片机开发、蓝牙方案、软硬件定制开发、APP开发、小程序开发、微信公众号开发等。还可以承接智能电子产品方案设计、生活电器开发、美容仪器研发、物联网平台应用、智能家居控制系统、TWS耳机、蓝牙耳机音箱开发、儿童益智玩具方案开发、电子教育产品方案设计等。


  • 返回顶部