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