物聯(lián)網(wǎng)
- 首頁(yè) >> 新聞資訊 >> 博客文章 >> 物聯(lián)網(wǎng)
藍(lán)牙遙控器PCBA設(shè)計(jì)開(kāi)發(fā)
在近年來(lái),藍(lán)牙遙控器伴隨著智能手機(jī)迅速地崛起,極大地該改變我們生活方式。手機(jī),不再是像以往那樣只為單純打電話(huà)、發(fā)短信,我們更多注重的是休閑娛樂(lè)功能,使得大多數(shù)人都離不開(kāi)手機(jī)。其中Android手機(jī)更是成為智能手機(jī)中的香餑餑,市場(chǎng)占比達(dá)到7成以上,Google將其開(kāi)源了,為眾多的廠(chǎng)商和開(kāi)發(fā)者提供一個(gè)很好的發(fā)展空間。對(duì)電腦來(lái)說(shuō),鼠標(biāo)看起來(lái)是必不可少的搭檔,但是,在許多場(chǎng)合,比如出差、旅游等場(chǎng)合,直接攜帶和使用鼠標(biāo)并不是十分便捷。本文設(shè)計(jì)一種手機(jī)藍(lán)牙控制器,通過(guò)這種橋梁使電腦和Android手機(jī)相連,可以直接通過(guò)手機(jī)來(lái)實(shí)現(xiàn)鼠標(biāo)的基本功能。
一、藍(lán)牙遙控器整體設(shè)計(jì)
要實(shí)現(xiàn)的功能主要有:1)帶有藍(lán)牙功能的手機(jī):一般來(lái)說(shuō),現(xiàn)在的手機(jī)基本都帶有藍(lán)牙功能。這個(gè)也就是通常所說(shuō)的客戶(hù)端,在上面設(shè)計(jì)一個(gè)APP,用來(lái)獲取想要電腦動(dòng)作的數(shù)據(jù),然后將這些數(shù)據(jù)通過(guò)藍(lán)牙發(fā)送出去給服務(wù)端。2)帶有藍(lán)牙接收功能的硬件部分:必須要有一個(gè)從端,用來(lái)直接和手機(jī)對(duì)接的藍(lán)牙部分,直接接收手機(jī)發(fā)送過(guò)來(lái)的數(shù)據(jù);再將這些數(shù)據(jù)轉(zhuǎn)發(fā)給控制器,用控制器來(lái)解析數(shù)據(jù)。3)控制器部分:用來(lái)解析由藍(lán)牙模塊傳送過(guò)來(lái)的數(shù)據(jù),并且這部分還必須和電腦端相連,通過(guò)USB通信協(xié)議將這些數(shù)據(jù)發(fā)送到電腦端,實(shí)時(shí)與電腦端直接通信,達(dá)到我們的控制目的。4)個(gè)人電腦:這個(gè)就是我們想要控制部分。整個(gè)結(jié)構(gòu)如圖1所示。
二、藍(lán)牙遙控器系統(tǒng)硬件設(shè)計(jì)
如果直接用無(wú)線(xiàn)鼠標(biāo)的藍(lán)牙適配器,這樣在硬件部分最為直接和簡(jiǎn)便,完全就是將手機(jī)替換了無(wú)線(xiàn)鼠標(biāo)了。但是實(shí)現(xiàn)起來(lái)很不容易,一般每一個(gè)無(wú)線(xiàn)鼠標(biāo)為了排出其他藍(lán)牙設(shè)備的干擾都有一個(gè)特定的藍(lán)牙適配器,也就是說(shuō),他們是一對(duì)一的關(guān)系,需要知道藍(lán)牙適配器和特定鼠標(biāo)的通信協(xié)議。
如果是直接用一個(gè)通用的USB適配器,再來(lái)與電腦通信,電腦USB端已經(jīng)實(shí)現(xiàn)了L2CAP、SDP、RFCOMM通信協(xié)議,但是在這種協(xié)議之下,要有自己的電腦客戶(hù)端驅(qū)動(dòng)程序。本設(shè)計(jì)采用軟硬結(jié)合,用藍(lán)牙模塊+控制器實(shí)現(xiàn)無(wú)線(xiàn)鼠標(biāo)適配器功能,使功能實(shí)現(xiàn)起來(lái)更為簡(jiǎn)單和可靠。
2.1藍(lán)牙模塊設(shè)計(jì)
藍(lán)牙模塊作為一個(gè)從設(shè)備和手機(jī)相連,并且擁有串口將數(shù)據(jù)傳回給控制器。本次設(shè)計(jì)要用到的藍(lán)牙模塊沒(méi)有要求很?chē)?yán)格,速率上說(shuō),設(shè)置波特率115200之后,對(duì)于傳輸小量的數(shù)據(jù)已經(jīng)完全夠用了。功率也不會(huì)像可穿戴設(shè)備那樣要求很苛刻。有效距離20米之內(nèi)。所以在性能和價(jià)格對(duì)比之下,選擇了擁有主從模式的HC-05,功能夠全、價(jià)格便宜。PIO8管腳的LED燈會(huì)顯示出當(dāng)前藍(lán)牙所處的狀態(tài),一閃一閃就是正常未連接狀態(tài),閃兩次就是藍(lán)牙已經(jīng)成功被連接上了。
微控制器作為一個(gè)數(shù)據(jù)的中轉(zhuǎn)站,最簡(jiǎn)單的是采用51單片機(jī)來(lái)處理,但是,單片機(jī)里面資源不過(guò)多,處理數(shù)據(jù)速度不夠快。所以選用嵌入式芯片:STM32F103RCT6作為控制器芯片。包括,從串口中斷一幀一幀讀出HC-05串口傳回的數(shù)據(jù),然后取出里面的位置、按鍵等信息,在和電腦建立USB通信之后,將數(shù)據(jù)發(fā)送出去,完成控制過(guò)程。該芯片的作用是利用串口中斷1接收來(lái)自藍(lán)牙串口的數(shù)據(jù),并將數(shù)據(jù)通過(guò)USB發(fā)送給電腦,USB接口D-、D+分別接上該芯片的PA11、PA12管腳,右邊接上電腦的USB輸出接口;藍(lán)牙串口輸出RXD、TXD分別接上該芯片的PA9、PA10。
三、藍(lán)牙遙控器軟件設(shè)計(jì)
Android軟件設(shè)計(jì)平臺(tái)目前來(lái)說(shuō)有好幾種,Google官方推出的開(kāi)發(fā)平臺(tái)有Eclipse、Android studio。這里使用的Android軟件平臺(tái)是:Eclipse。手機(jī)客戶(hù)端是關(guān)鍵的一環(huán),首先要和藍(lán)牙模塊建立數(shù)據(jù)通路,相互之間可以無(wú)阻地傳輸數(shù)據(jù),然后,實(shí)時(shí)獲取手指在手機(jī)屏幕移動(dòng)的距離和各個(gè)按鍵的狀態(tài),并發(fā)給藍(lán)牙模塊。
界面設(shè)計(jì)思路是:首先要有幾個(gè)頁(yè)面可以切換,在連接藍(lán)牙模塊之后,我們隨時(shí)可以切換到鼠標(biāo)控制或是PPT翻頁(yè)界面,故在設(shè)計(jì)界面上要做到切換界面的同時(shí),完全不改變藍(lán)牙的連接狀態(tài)。為了使界面更美觀(guān),選用Fragment+Tab來(lái)做主界面。Tab作用是定位并切換Activity,就像微信下面的切換一樣。整個(gè)主界面上用了3個(gè)界面,分別是mou semov.xml(鼠標(biāo)滑動(dòng)布局)、pptlayout.xml(PPT翻頁(yè)滑動(dòng)布局)、settinglayout.xml(設(shè)置頁(yè)面布局)。
功能性設(shè)計(jì):切換到設(shè)置界面,立即獲取Android系統(tǒng)的藍(lán)牙實(shí)例,再接著調(diào)用藍(lán)牙適配器里面的連接其他藍(lán)牙設(shè)備的方法,利用這種方法連接上目標(biāo)設(shè)備之后,獲取到目標(biāo)藍(lán)牙地址,用該地址建立socket通路,socket的通信方式是直接用數(shù)據(jù)流來(lái)讀和寫(xiě)數(shù)據(jù)的,當(dāng)建立好socket通路之后,直接就可以把數(shù)據(jù)轉(zhuǎn)為Byte[]字節(jié)數(shù)組的形式,再發(fā)送給藍(lán)牙模塊。
藍(lán)牙建立連接:藍(lán)牙建立連接,必須要先調(diào)取系統(tǒng)的藍(lán)牙服務(wù),在A(yíng)ndroid中,如果要調(diào)取有關(guān)安全的服務(wù),都要在A(yíng)ndroidManifest.xml文件中,申請(qǐng)系統(tǒng)的權(quán)限,獲得權(quán)限之后才能操作。
鼠標(biāo)程序:鼠標(biāo)移動(dòng)的程序一是獲取當(dāng)前手指在屏幕移動(dòng)的距離以及鼠標(biāo)左右中按鍵狀態(tài),二是將數(shù)據(jù)打包發(fā)送出去,三是界面美化。
四、STM32程序設(shè)計(jì)
STM32程序的作用是獲取從手機(jī)傳過(guò)來(lái)的數(shù)據(jù),并解析出來(lái),之后通過(guò)USB通信協(xié)議將數(shù)據(jù)發(fā)送到電腦端,電腦就會(huì)根據(jù)你給的數(shù)據(jù)做出相應(yīng)的動(dòng)作。
首先是收取數(shù)據(jù),STM32和單片機(jī)一樣都是用串口中斷來(lái)收取外部數(shù)據(jù),這樣既不會(huì)耗費(fèi)太多資源,又能實(shí)時(shí)響應(yīng)。要想開(kāi)啟串口中斷,必須得對(duì)STM32內(nèi)部資源做一系列的配置和初始化,首先是系統(tǒng)時(shí)鐘的設(shè)置,直接可以調(diào)用工程里面SYSTEM>sys.c文件下的Stm32_Clock_Init()方法。初始化完成后一有數(shù)據(jù)過(guò)來(lái)直接就接收并存入uart的數(shù)據(jù)緩沖區(qū),讀出緩沖區(qū)的數(shù)據(jù)就能獲取到手機(jī)數(shù)據(jù)了。將數(shù)據(jù)發(fā)給電腦端的過(guò)程為:首先重置USB接口,然后配置USB中斷處理方式以及中斷優(yōu)先級(jí)、使能USB時(shí)鐘、初始化所用通信所需驅(qū)動(dòng);完成所有這些步驟之后就能在串口中斷程序中發(fā)送來(lái)自藍(lán)牙模塊的數(shù)據(jù)到電腦上。
總結(jié)
在市面上,比較多人用的TeamViewer,這款軟件比較多用于遠(yuǎn)程控制電腦,手機(jī)遠(yuǎn)程控制電腦也行;其實(shí)里面的原理大都是網(wǎng)絡(luò)通信方面的知識(shí),在各自連上互聯(lián)網(wǎng)的兩端建立數(shù)據(jù)通路之后,將被控制電腦端的圖像畫(huà)面?zhèn)骰氐娇刂贫?,控制端?dòng)作則通過(guò)數(shù)據(jù)幀打包之后發(fā)給被控制端,控制端解析之后就實(shí)現(xiàn)相應(yīng)的動(dòng)作。還有其他軟件如獵豹WIFI,可以通過(guò)局域網(wǎng)來(lái)控制電腦,這個(gè)原理和TeamViewer一樣。大多都是純軟件的實(shí)現(xiàn),不同于本文的設(shè)計(jì)實(shí)現(xiàn)原理。可以進(jìn)一步考慮用手機(jī)端實(shí)現(xiàn)鍵盤(pán)的某些功能,比如Enter鍵、上下左右按鍵、Esc按鍵等。
以上就是我們深圳市組創(chuàng)微電子有限公司為您介紹的藍(lán)牙遙控器控制板開(kāi)發(fā)示例。如果您有藍(lán)牙遙控器PCBA開(kāi)發(fā)需求,可以放心交給我們。我們代理多種單片機(jī)、語(yǔ)音芯片、雙模藍(lán)牙IC、wifi芯片。品牌有松翰單片機(jī)、應(yīng)廣單片機(jī)、杰理藍(lán)牙、安凱藍(lán)牙、全志、瑞昱(realtek)。我們的技術(shù)服務(wù)范圍有:PCB設(shè)計(jì)、單片機(jī)開(kāi)發(fā)、藍(lán)牙方案、軟硬件定制開(kāi)發(fā)、APP開(kāi)發(fā)、小程序開(kāi)發(fā)、微信公眾號(hào)開(kāi)發(fā)等。還可以承接智能電子產(chǎn)品方案設(shè)計(jì)、生活電器開(kāi)發(fā)、美容儀器研發(fā)、物聯(lián)網(wǎng)平臺(tái)應(yīng)用、智能家居控制系統(tǒng)、TWS耳機(jī)、藍(lán)牙耳機(jī)音箱開(kāi)發(fā)、兒童益智玩具方案開(kāi)發(fā)、電子教育產(chǎn)品方案設(shè)計(jì)等。
- 返回頂部